@lign1022 马上开售~

q1215200171 发布的帖子
-
轻算力也能玩大模型,V821成功对接DeepSeek和豆包视觉大模型
全志推出的最新大模型套件,可以无缝切换各种主流大模型。各大模型官方提供的接入示例多是python、java等语言实现,而全志的套件使用纯C语言实现,内存资源占用少,可方便应用在全志平台Tina Linux系统和Tina RTOS系统上。
目前,该套件已集成到V821 SDK中,会于2月底随V821 SDK V1.1发出,届时欢迎各位开发者升级体验。
全志生态的小伙伴们成功在全志A733和T527的SoC平台上实现了DeepSeek-R1-Distill-Qwen-1.5B模型的部署,充分验证了高算力平台在端侧部署AI推理上的潜力。今天我们带来一款全志新的视觉芯片V821,通过网络接入的方式打通DeepSeek-R1满血版模型和豆包视觉大模型,并展示其语言和视觉交互的能力和多样性。
相较于大模型的端侧部署,云端大模型对端侧硬件算力、存储资源等要求较低,以极佳的成本代价就可以体验到模型最佳的性能表现,覆盖更多的场景形态。本地设备将文字,语音,图像等相关数据通过网络上传,凭借云端大模型对数据的分析和推理海量数据的分析和推理能力,并结合网络搜索的信息,更好地,更加准确地,更加快速地做出判断和反馈,大幅提升应答速度和输出的准确率。
全志本次在V821平台上基于豆包视觉大模型和DeepSeek语言大模型API实现了完整的大模型接入套件,让V821具备了语言交互及图像识别等丰富能力,让开发者更容易实现大模型的应用,极大的方便了基于V821的智能产品的开发与拓展。
V821豆包视觉大模型实时采集图像进行物品识别示例:
下面的视频展示V821接入DeepSeek语言大模型,支持多轮对话+流式输出功能:
通过以上的两段演示可以发现,在有了接入套件所提供的便利后,云端部署的大模型的运行达到了“满血”状态,无论是物品识别还是多轮持续对话都有很快的输出,确保在微型化设备算力资源受限的情况下,也能流畅自然地使用大模型,实现本地设备与云端AI结合。
V821是一颗高集成度的低功耗WiFi视觉SOC,集成了高性能ISP和H.264、JPEG编码单元,同时内置了WiFi,因此可以很方便的接入AI视觉大模型,快速实现微型化、高清视频、云端AI结合、低功耗一体化的视觉产品落地。
V821简要规格如下:
- 通用算力:CPU RISC-V 1GHz + MCU RISC-V 600MHz
- 视频输入:1x2lane/2x1lane MIPI-CSI + 支持一路并口CSI
- 视频引擎:支持H.264最大3072x3072;MJPEG最大8192x8192;支持双目1920x1080@15fps + 640x480@15fps
- WiFi(内置):WiFi4 单频2.4GHz + 低功耗版本保活功耗180uA(DTIM10)
- 其他接口:支持一路音频输出/一路音频输入 + 3xSPI / 3xTWI / 4xUART / 12xPWM / 2xSDIO
全志推出的最新大模型套件,可以无缝切换各种主流大模型。各大模型官方提供的接入示例多是python、java等语言实现,而全志的套件使用纯C语言实现,内存资源占用少,可方便应用在全志平台Tina Linux系统和Tina RTOS系统上。目前,该套件已集成到V821 SDK中,会于2月底随V821 SDK V1.1发出,届时欢迎各位开发者升级体验。
使用全志提供的大模型接入套件,只需要简单的2个步骤即可接入豆包视觉大模型。
步骤1:调用lm_init函数进行初始化大模型
typedef struct { const char *url; const char *model; const char *api_key; } lm_config; int lm_init(lm_config *config, lm_handle *handle);
初始化需要填充大模型的URL、模型、API key参数。参数的获取可在各大模型官网进行注册账号后获得,具体可参考各大模型官方的说明文档,本文接入的是豆包视觉大模型,可参考以下链接获取参数信息:https://www.volcengine.com/docs/82379/1362931
步骤2:调用lm_generate函数访问大模型
typedef int (*lm_outputcallback)(char* token, void* user_data); typedef struct { char *content; prompt_image *img; } lm_prompt; int lm_generate(lm_handle handle, lm_prompt *prompt, lm_outputcallback cb, void *user_data);
prompt为输入的提示词,其带有两个参数,content表示输入的文本,img为输入的图片数据;cb为用户注册的回调函数,当接收到云端大模型返回数据时会回调该函数将token信息输出。
按照以上部署方式使用该套件到V821上,还可以支持DeepSeek的多轮对话和流式输出。所谓“多轮对话”(Multi-turn Dialogue)是指大模型在与用户交互时,能够理解并记住对话历史,并根据上下文信息持续生成符合逻辑的连贯回复的能力,而流式输出是在云端大模型生成token回应时能够实时输出,支持多轮对话与流式输出的能力使得对话不再是孤立的“一问一答”,而是更接近人类自然交流的连续互动。
全方位拥抱大模型生态,已成为多产品线全面革新的主旋律。AI大模型的普及为产品落地带来了更多元的玩法,全志将针对各产品线不同应用场景的独特需求,深度挖掘本地算力潜能,巧妙融合先进云端技术方案,为用户带来更智能便捷的交互体验,提升工作效率,营造智慧生活,逐步推动AI从前沿科技走向大众生活,用智能硬件助力AI惠民愿景的落地生根。
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
11.20更新:
遇到以下相同情况
- 执行命令设置全局保存密码
git config --global credential.helper store
- 执行命令输入密码
git clone https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git
- 使用repo拉取sdk
repo init -u https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git -b master -m tina-v853-open.xml
由于repo更新,目前不支持通过repo输入密码,请先使用git命令输入保存密码
-
回复: sdk 链接失效了吗?
- 执行命令设置全局保存密码
git config --global credential.helper store
- 执行命令输入密码
git clone https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git
- 使用repo拉取sdk
repo init -u https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git -b master -m tina-v853-open.xml
由于repo更新,目前不支持通过repo输入密码,请先使用git命令输入保存密码
-
成本400元,DIY一个高刷新率热成像相机
在市面上开源的热成像作品中,有一部分颜值高,但分辨率太低;也有一部分把分辨率提高了,但使用起来却不太流畅。
基于此,作者本人结合二者的优势,设计了一款热成像相机——LiThermal,成本算下来只要400出头,还具备了万全的功能。
- 拍照
- 录像
- 查看相册
- 查看温度最大值、最小值、中心值
- 温度统计图
- 修改调色板
- 重定向后台管理页面,电脑访问
这款热成像相机不仅拥有高分辨率及丝滑流畅的拍摄,在主控全志T113的加持下,UI界面的几乎所有动画都能达到90Hz刷新率,并支持随意的动画打断,最重要的是,作者将热成像相机的软硬件全部开源了出来!
热成像相机开机动画演示
PCB温度检测演示
远距相机检测演示热成像相机功能
相机不仅支持高清拍照功能,而且在拍照的同时能够即时捕捉并显示全屏范围内的温度数据,为用户提供直观的温度分布视图,拍摄后的照片和视频都可以在相册中查看。
此外,该设备还提供了温度数据的最大值、最小值以及中心值的查看功能,帮助快速识别温度异常区域,为了更直观地展示温度变化趋势,设备还贴心配备了温度统计图功能。
为了满足不同用户的需求,设备还支持自定义调色板,根据个人偏好或特定应用场景调整色彩显示方案,重定向后台管理页面的功能,可以通过电脑访问后台管理系统,实现更高级的设置和数据管理操作。
系统配置
作者直接为相机在全志Tina Linux系统上基于LVGL8设计一套全新的UI界面,并顺利的在2.4寸的320x240分辨率TFT LCD屏幕上以最高94.3 Hz的刷新率流畅运行。
在热成像方面,该设备表现尤为突出,刷新率达到了25Hz,能够实时捕捉温度变化,测温范围也覆盖到0-106.4 ℃,零下的条件下作者未进行测试,但问题不大,基本满足了多种应用场景的需求。传感器方面,设备采用了160*120分辨率的传感器,确保了温度数据的精确捕捉。
- 主控:全志T113
- 存储:SIP 128MB
- 屏幕:2.4寸 TFT LCD, 320x240 @ 94.3 Hz
- 热成像刷新率:25Hz
- 测温范围:0-106.4 ℃ (零下没试过,据说可以测到-20 ℃)
- 传感器分辨率:160*120
- 操作系统:全志Tina Linux,基于OpenWRT
- GUI:LVGL8
开源资料&复刻
本文与热成像相机相关的所有内容均转载自原作者本人立创开源硬件平台的工程页面,软硬件资料均开源,感兴趣的小伙伴可以复制下方链接或者戳文末的“阅读原文”阅读了解。
项目作者:小李电子实验室
项目名称:热成像相机热成像相机软硬件开源:https://oshwhub.com/lxu0423/lithermal-thermal-imaging-camera
Github开源链接:https://github.com/diylxy/LiThermal
视频版介绍:https://www.bilibili.com/video/BV1e4xeeCEGL以上链接中包含硬件设计文件,程序源代码和编译工具链,可以根据这些资料完整复刻本作品,达到视频中的效果。
复刻注意事项:本作品难度较大,想要完整复刻需要能够焊接0402元件和0.3毫米间距的QFP引脚,并且需要有一定Linux系统使用经验和计算机网络基础,请做好心理准备。
-
8月全志芯片开源项目分享合集
T113环境温湿度采集与监控板
作者:lin_xiaoyan
开源项目地址:https://oshwhub.com/lin_xiaoyan/cw32-low-power-car-ink-display-screen
本项目的基本原理是由下位机采集温湿度信息到监控端,并由T113读取SHT30高精度温湿度芯片,UI采用高仿HomeAssistant的样式显示室内温湿度情况,同时通过网络获取天气、室外温湿度,Lottie动画图标显示当前天气情况和室外温湿度参数,可谓可视化拉满。
T113监控端跑的Tina-Linux系统,Gui使用LVGL,采用10.1寸超大屏,采用高斯模糊(毛玻璃特效)背景,有高大上的动画时钟显示,它可以是天气时钟,也可以是家庭中控,通过TCP通信(后续改成MQTT),可以进行智能家居控制。
在PCB设计时对一些功能进行取舍,去掉了TV功能和TP(电阻触摸)功能,在传输完成后上位机会进行休眠,休眠功耗仅达uA级。
全志T113-S3自稳PX4飞控
作者:光轮电子
开源项目地址:https://www.bilibili.com/video/BV1mDYMe2E2i
使用全志T113-S3处理器制作的PX4飞控,飞控板载主控、IMU、磁力计、气压计以及其它常见的元件,并由T113直接输出PWM控制飞行器,PCB孔距30x30,可以与市面上常见的四合一电调搭配使用。
远程通信方面,T113通过USB直接与WiFi模块连接,接收机则是连接串口通过SBUS和T113直接连接,收到指令信号后由4路PWM直接给电机控制输出,以实现自稳飞行的功能。
太极派LVGL版USB口袋显示屏
作者:新范者1986
开源项目地址:https://github.com/chuanjinpang/win10_idd_xfz1986_usb_graphic_driver_display
上一期开源项目T113太极派的搬运工,作者在上面适配了开源软件参考,可以仅连接一根USB线,实现养宠物、qq放入、视频播放、歌词流动等副屏功能,最重要的是,该显示屏支持多屏同时连接,不受hdmi口限制。
副屏使用全志t113-s3为主控,分辩率480*480,支持win10/win11系统的扩展屏,支持电容屏触,电容屏hid触摸屏软件开发中 。
该项目有开源了windows驱动、lvgl界面app应用、tina Linux内核驱动的源码。
linux-card
作者:syske
开源项目地址:https://oshwhub.com/syske/7L5S3cM12t8euqRi6ylftf59yqr5j7Js
作者本人的第一块全志F1C200S的实验板,踩了很多坑,更新了六个版本的PCB才所完美解决所有的问题,板子成功驱动、u-boot编译运行成功、linux成功运行。
板子本身并没有什么很突出的亮点,但很适合作为初学者小白进行Linux开发板设计学习的第一块开发板,成本25元就可以完整走一趟板子的设计、打板、焊接、编译、烧录,直到完全熟悉整个PCB制作过程。
-
大佬手搓了一个轻量级操作系统YiYiYa OS
作者:evilbinary(鸭佬)
YiYiYa操作系统是一个朴实无华的操作系统,追求快速开发,最小实现,同时遵循SOLID原则。编码简洁明了,非常适合学习操作系统的同学。目前既有宏内核,也逐步实现了微内核架构,未来将会是混合内核。
目前YiYiYa OS支持很多种架构和平台,包括ARM-Cortex A7系列的V3s、T113-S3等芯片、ARM9内核的F1C系列芯片以及部分RISC-V内核芯片,所有移植教程及方法都在Github上公开。
系统架构
架构从上而下分层设计,同一层从左到右为模块。越下层与用户离得远,就会变得越通用越公共。分层设计便于扩展,方便维护,每一层的职责单一,让每一层依赖都是固定,不会胡乱调用(实现低耦合)。同时高层依赖底层,依赖接口,不依赖具体细节实现,底层的改动不至于影响太大,这就是基本的设计原则。
应用层
应用层直接和用户操作打交道。有图形界面和shell命令交互。此层面对用户开发应用和常用库,对应源码目录为app。
应用层
应用层直接和用户操作打交道。有图形界面和shell命令交互。此层面对用户开发应用和常用库,对应源码目录为app。
接口层(C标准库)
接口层为操作系统内核向外核提供的基本功能。通过libc和libmusl可选,实现基本的标准库,方便开发者直接移植代码或者适配应用app。
内核层
内核层则为核心领域业务。每一小个模块都提供基本的功能。按各自的职责划分,分别对应与传统内核层则为核心领域业务。每一小个模块都提供基本的功能。按各自的职责划分,分别对应与传统操作系统的内存管理、进程通信、文件系统、进程通信、等等。在演进操作系统时候,可以修改这里,对应源码目录为kernel。
基础设施层(公共层和硬件层)
将硬件CPU相关和平台模块相关的单独作为公用库使用。目录为arch、platform、libs/kernel。
在移植适配的时候基本上和这些模块打交道比较多,同时单独一个库可以提高内核代码复用性,内核有专门的内核库,以便增加代码安全,减少出错。
- 支持荔枝派系列开发板,全志V3s,F1C200S,T113-S3等芯片,RISC-V的支持在规划中
- 支持uboot引导内核,同时支持不需要uboot引导模式
- 支持lcd屏幕,st7789、st7735、通用40pin rgb屏幕
- 支持vfs,fat32文件格式
- 支持elf文件,ipc管道等
- 支持ahci、gpio、i2c、spi驱动等
系统移植教程
作者本人及团队自制的开源掌机FunKey所采用的操作系统就是基于Linux内核和YiYiYa OS,YiYiYa OS内提供了丰富的桌面系统和游戏开发框架,其非常简易的移植过程,也让开发者可以轻松地运用YiYiYa OS裸机开发自己的设备。
以基于T113-S3开发的FunKey掌机为例,在进行平台移植时,需要在新增的duck/platform目录下添加gpio.h头文件以及编写 init.c 包含基本的串口功能,然后再执行以下三个步骤,就可以轻松运行起YiYiYa OS:
克隆项目
git clone https://github.com/evilbinary/YiYiYa.git make pull
安装构建工具
pip install yymake
编译
ya -m debug -p t113-s3 -r t113-s3
#其它功能及开源资料获取
整体来说,YiYiYa操作系统非常轻量,支持POSIX操作系统标准协议,同时还支持扩展,方便使用其他语言开发模块。在应用层,可以通过libc/libmusl标准库和常用的库开发应用;在内核层可以调用基本内核模块的功能和共用库,开发者可以在DIY过程中自行选择。
本文所有内容均转载自原作者本人的Github仓库,除了YiYiYa OS外还有很多有趣有用的开发工具,感兴趣的小伙伴可以复制下方链接获取。
evilbinary Github:https://github.com/evilbinary
-
7月全志芯片开源项目分享合辑
Barkas D1-H小电脑
作者:Chrithon
开源项目地址:https://oshwhub.com/chrithon/barkasd1-h-original-barkasb1000
一块适用于Sipeed Lichee RV(全志D1-H)的小电脑底板。拥有GPIO、USB接口和独立的UART接口。
该板子搭载了6个GPIO口,以及可供用户连接各种USB设备(如U盘等),可用于如小彩灯控制等各种应用。板子上的UART串口可以使用户使用USB转串口设备通过串口访问小电脑。只需要打开支持串口访问的ssh工具并找到相对应的端口编号(Windows下是COMX,Linux下是ttyUSBX)即可访问该板子。
固件可以直接使用主线Buildroot,然后使用“make nezha_defconfig”编译并编译烧录,也可以直接使用Ubuntu镜像找到Sipeed Lichee RV Dock那一栏下载。
H616复古手机
作者:HongLin
开源项目地址:https://oshwhub.com/honglin/First_CRT_SmartPhone
这款复古手机其实是一个脑洞向的作品,整体采用模块化的设计,具备安卓手机常用的绝大多数功能,可以拍视频、打电话、玩游戏、上网......甜点特性是可以通过换内存卡的方式进入Linux系统(Linux系统下没有CVBS驱动),还支持HDMI视频输出。
对于开源社区的贡献就在于,只需要基于这款复古手机进行简单修改,就可以获得一款配置电池的Linux开发板或者自带摇杆鼠标的PDA手持终端。
虽是一款娱乐向的DIY产品,但作者本人也面面俱到的配上了和复古手机相关的原理图设计、硬件电路设计、安卓系统移植、外壳设计等详尽教程。
XR32F429开发板
作者:cnchens
开源项目地址:https://oshwhub.com/chenrunyu/xr32f429coreboard
XR32F429 基于主频最高可达 192MHz 的高性能 ARM Cortex-M4F 32 位 RISC 内核。Cortex-M4F 内核具有一个浮点单元 (FPU) 单精度,它包含所有 ARM 单精度数据处理指令和数据类型。它还实现了一个内存保护单元 (MPU),可实现应用程序安全性
本开发板是基于XR32F429芯片设计的开发板,外设接口十分简单,只有一个TF卡和GPIO排针用于扩展功能,它支持集成的 832KB SRAM 和 2MB 闪存 ROM,还包括许多外设,包括 UART、TWI、SPI、I2S、DMIC、PWM、IrDA (T/R)、CSI、SDIO 和辅助 ADC。
FunKey-A32G开源掌机
作者:morinaka
开源项目地址:https://oshwhub.com/morinaka/funkey-3-2-cun-gba-mori-0603-wei-yan-zheng-you-wen-ti
FunKey-A32G开源掌机,是一款基于全志V3S芯片设计的掌机,使用funkey-OS开源系统,可以运行FC SFC GB GBA 等复古游戏平台。
在尺寸的选择上掌机使用了分辨率480*320的3.2寸IPS屏幕,GBA外壳全贴合IPS外壳,可以不用切除限位条,但GBA音量开关、GBA导电胶、GBA按键等GBA外观配件自行购买。
固件目前有无撕裂的测试版,可供暂时游玩,并且在未来还会开源60帧版本的固件提升掌机游戏体验。
-
用旧世代的显像管技术做一款安卓智能手机,全开源
这款复古手机其实是一个脑洞向的作品,整体采用模块化的设计,具备安卓手机常用的绝大多数功能,可以拍视频、打电话、玩游戏、上网......甜点特性是可以通过换内存卡的方式进入Linux系统(Linux系统下没有CVBS驱动),还支持HDMI视频输出。
对于开源社区的贡献就在于,只需要基于这款复古手机进行简单修改,就可以获得一款配置电池的Linux开发板或者自带摇杆鼠标的PDA手持终端。
虽是一款娱乐向的DIY产品,但作者本人也面面俱到的配上了和复古手机相关的原理图设计、硬件电路设计、安卓系统移植、外壳设计等详尽教程。
硬件设计
复古手机的整体设计分为主板、显像管本体、键盘面三大部分,为了避开BGA的过孔和按键的焊盘干涉,键盘面和主板需要合一起,组成八层板(6+2),组合完的电路板和显像管本体就可以构建出一个最小系统。
主板上有需要实现安卓手机基本功能的大多数硬件元件,包括上网打电话所需的4G模块,可拍视频的USB相机等等,但是没有GPS和陀螺仪、地磁计,故无法实现导航。
- 主控:全志H616
- 存储:2GB DDR3
- 上网:Air720UH / 724模块(Cat.1),最快速度10M,可以看720P视频
- 输入:带按键摇杆鼠标+42键键盘
- 拍照:USB相机
- 电池:2800mAH锂电池,12V升压模块
想要驱动显像管工作,就需要产生AV信号,那么本就是应用与电视盒子产品的H616就成了不二之选。本就支持CVBS信号输出的H616搭配12V电源就可以顺利驱动显像管的工作,实现复古手机的核心功能。
选用H616同时也带来一个问题,它本身不带射频、基带,和专用的手机SoC不同,它天生就不能打电话和流量上网。为了解决这个问题同时节约经费,还需要再搭配一款4G通信模块。
软件系统
与怕冷的LCD、成本高的OLED不同,显像管自身就是一个发着温暖红光的热源,成熟的技术和复古的外观由内向外散发着可靠的气息,使我忍不住想赋予它一个现代的灵魂——安卓系统。
安卓系统没有驱动,要打驱动不像windows那样点点鼠标就完事了,要配置JAVA环境安装JDK和GCC修改驱动程序编译整个安卓才行,做完整套的功能适配就会得到一个40G的源码包和动辄12个小时的编译时间。
需要注意的是,编译用机器至少需要12G内存,并自行修改源码/设备树,烧录固件时需要自备TF卡读卡器和8G卡一张,检查插入的TF卡是否与选择的盘符一致,单击“恢复卡”按钮,开始格式TF卡。
然后选择固件,选择启动卡。
进入系统以后,你可以下载GBA模拟器、老版本微信支付宝、BiliBili开启愉快的互联网冲浪!
外观结构
整体的设计思路都是比较模块化的,少掉4G模块只会影响上网和打电话,少掉摄像头只会失去拍照,少掉外观件只会影响视觉效果,开发者可以根据源文件随意添加修改。
安装各个部分外壳主要靠胶水,音量、AB键依靠外置模块、飞线。
为了让复古手机更加炫酷,作者还在右侧增加了一个由水平仪制作的氛围灯,它是由灯板上焊接LED做成的。该零件又依附在大外壳上面。中间那条红色的线就是电源线,一端给LEDs供电,另一端从主板上取电。
开源资料获取
本文与复古智能手机相关的所有内容均转载自原作者本人立创开源硬件平台的工程页面,软硬件资料均开源,感兴趣的小伙伴可以复制下方链接或者戳文末的“阅读原文”阅读了解。
复古手机软硬件开源:https://oshwhub.com/honglin/First_CRT_SmartPhone
视频版介绍:https://www.bilibili.com/video/BV1Ey41187Gp -
AI赋能无惧黑光,全志V85X智影AI ISP全新升级
当下,视频产品飞速迭代发展,从最早的VGA到720P、1080P,再到2K、4K,每一次技术升级,都大大提升了视觉产品的用户体验。其中,除了分辨率的持续升级,人们对夜视效果视觉体验的追求也从未停歇。夜幕降临光线不足时,当前主流视觉产品常常只能依靠红外、白光等外部补光方式实现黑白图像或彩色画面,颜色丢失/光线污染严重影响客户体验;而随着视觉Soc和AI NPU的深度结合,“黑光全彩技术”全新面世,它提高了产品感光极限,优化了产品在暗光环境下的彩色成像水平,给用户提供了优于人眼视觉的体验。
全志针对这一技术升级与市场需求,在「V85X系列」芯片上推出了自研的新一代AI ISP 智慧图像处理引擎——「全志智影」。「全志智影」通过海量数据训练以及结合SOC平台的模型深度优化,它不仅可以在各类复杂低照场景下提升成像效果,实现黑光全彩,还可以为低照下AI检测处理(如人形、人脸等)提供更优质量的输入来提升检测识别率,在降低误触发等痛点功能上起到关键作用。
「全志智影AI ISP」对比自身及业界传统ISP,可以在同等Sensor/镜头下提升2~4倍的感光度,优化低照度亮度/颜色/拖影表现。如下效果对比图,搭配背照式1/2.7 Sensor+F1.0光圈黑光全彩;此外,基于该技术搭配传统Sensor+普通镜头,在低照效果下同样有明显提升,该技术可广泛应用于安防、车载、泛视觉等各类场景,为这些场景下的用户体验提供升级优化的解决方案。
与此同时,「全志智影AI ISP」针对终端产品在落地开发及量产过程中遇到的典型需求问题进行了深度优化,具备如下三大技术特点:
(1)系统低消耗,多目易拓展
可在最低128MB 16bit DDR3下实现1080P~1440P的处理及搭配客户应用量产,「全志智影AI ISP」搭配的降噪模型仅有百KB级别大小,无需更换Flash类型便可支持。同时引擎架构可支持双摄,以及未来三摄,便于未来多摄产品升级迭代。
(2)系统低功耗
相比于原有消费类安防产品红外黑白画面需要外挂红外灯板的成本和功耗(1W~2W),「全志智影AI ISP」在同等规格图像处理上只增加了200~400mW(取决于产品分辨率及帧率),在实现全彩画面的同时,节省红外补光的成本和功耗,还可进一步延长例如低功耗电池摄像机/可视门铃等至少0.5倍到1倍工作录像时长(具体倍数取决于夜晚红外触发次数),大幅度提升用户对整机体验。
(3)毫秒级冷启动
冷启动「全志智影AI ISP」出图到内存中,时间在500ms内;快启智影2.0即将在Q3发布,在原来基础上进一步提升出图速度,同时搭配新一代图像传感器组成AOV(AlwaysOnVideo)及预录(Pre-roll )方案,实现低功耗产品全天候亮如白昼、持久续航。
目前,V85X平台SDK已搭配全志最新「全志智影AI ISP」发布,同时提供稳定、易用的SDK软件开发包,以支撑视觉产品的快速升级及量产。
「全志智影AI ISP」技术的全新发布,不仅是一次技术的突破,也是对传统成像技术的一次体验升级,更是全志AI技术在端侧落地的出色产品体现,它将让我们在黑暗光线条件下能看得更远、更清晰。未来,全志将基于「全志智影AI ISP」技术持续优化迭代,进一步提升AI ISP在低照度降噪效果,探索拓宽AI ISP在图像效果增强的更多可能性,并在后续不断推出更优秀的视觉芯片方案,为千行百业的智慧视觉带来无限可能。
-
全志V853芯片配套辅助驾驶算法介绍
全志V853处理器,是专为智慧视觉领域设计的AI处理器,配备了高效的NPU算力和丰富的外设接口,能够提供稳定的AI边缘计算支持;同时,基于V853处理器这一性能优势,全志还为客户提供了一整套完整的智能辅助驾驶算法,包括:
- 高级辅助驾驶(ADAS)
- 盲区检测(BSD)
- 驾驶员监控(DMS)
- ……
可为 智能座舱、行车记录仪、智能后视镜、倒车影像、360°行车监控等智慧车载场景及产品提供稳定可靠的视觉技术解决方案。
高级辅助驾驶算法(ADAS)
ADAS是通过车载摄像头、雷达等传感器对行车时道路环境信息进行实时采集和处理的算法系统。结合 全志V853 内置的 NPU 加速模型进行系统的推理运算与分析,可以快速辅助机动车或驾驶员做出相应判断和预警,从而提高行车的舒适性与安全性。ADAS算法中包括:
前车启停监测(FVSA)
- 支持仅对前车进行检测,不受周围其他车辆干扰
- 夜间准确率超过95%
- 低系统资源占用
车道偏离警告(LDW)
- 支持多类型车道线识别
- 支持自动校准路线轨迹
- 支持夜间及恶劣气候条件下识别
前方碰撞警告(FCW)
- 支持仅对前车进行检测,不受周围其他车辆干扰
- 支持实时前车距离检测
交通标志牌识别(TSR)
- 支持多类型交通标志识别
- 支持50m长距离识别
信号灯识别(TLR)
- 支持多形态信号灯识别
- 支持夜间及恶劣气候条件下识别
盲区检测算法(BSD)
BSD 算法通常需要多个摄像头实时监测车辆两侧和后方的盲区,全志 V853 支持多路摄像头接口,可以很好地同时处理来自多个摄像头的数据。通过 NPU 高效执行图像处理和目标检测算法,实时对盲区内的机动车、行人等关键目标进行精准识别,对驾驶员行为做出预警。
- 支持各类机动车动静态识别,如:小汽车、大卡车、叉车、摩托车等
- 支持各类行人动静态识别
- 支持环车360°盲区检测
驾驶员监控算法(DMS)
DMS算法是行车记录仪中至关重要的一个应用。它通过对驾驶员的面部特征、眼睛运动、头部姿态等进行实时分析,能够判断驾驶员的疲劳程度、分心状态等,并及时发出预警,提醒驾驶员注意行车安全。
- 支持多种危险驾驶行为预警,
包括:睡觉、转头、低头、打哈欠、打电话等 - 支持多角度姿态识别
- 支持RS232串行端口输出预警信息
- 支持多国语言预警
全志技术团队结合CPU和NPU进行了深度性能优化,可以实现毫秒级算法快速冷启动和低算力占用。部分场景算力资源占用情况:
同时,算法使用了大批量的素材对算法进行深度训练,并进行了长时间的道路实测。其中仅亚裔人种的DMS算法人脸训练素材就超过了128000份,令算法更适合亚洲道路行车场景。
目前,全志V853智慧视觉专用处理器凭借优秀的AI智能算法支持和性能表现,为众多客户完成了产品落地;未来,随着全志V系列芯片的不断升级完善,将进一步夯实在智慧车载视觉领域的技术实力和市场地位,全志也会持续以创新的技术和产品,为全球客户提供核心算力支撑,助力更多智慧车载产品的量产提速,让人们更高效便捷的享受智慧出行美好体验。
-
用T113做了块多功能卡片电脑,成本只要60块
FunnyPi-T113是一款基于全志T113-S3/D1S处理器的完全开源多功能开发板,设计FunnyPi最初的目的是想借此T113卡片电脑来满足日常学习,并结合T113高效能和低功耗的特点,来满足像语音助手,智能家居屏幕、桌面摆件屏、博客服务器等嵌入式应用的开发需求。
- 全志T113-S3/D1s主控
- 支持WIFI和蓝牙,屏幕连接
- Type-C正反插切换otg和uart
- 适配全志Tina-Linux
- 支持快启
作为面向初学者学习使用的多功能开发板,作者本人也面面俱到的配上了FunnyPi开发板的硬件选型、原理图设计、软件系统移植、快速点灯等详尽教程。
硬件设计
FunnyPi开发板内置了丰富的外设接口,包括USB、GPIO、I2C、SPI、UART等,方便用户连接各种传感器、执行器和其他外围设备,同时板载了标准RGB接口、PMIC芯片、串口转USB芯片等,方便开发者进行DIY开发。
此外,这款开发板还具有强大的网络功能,支持板载WIFI和蓝牙模块,可实现无线网络连接和数据传输。最重要的一点是,本开发板所有阻容使用0603封装且将绝大部分元件放在了正面,非常方便手焊!
- 成本:约60(嘉立创四层沉金免费)
- 主控:T113-S3/D1s
- WIFI+BT模组:RTL8723BS
- 串口转USB:CH343P
- 背光驱动:RY3730
- 芯片供电:EA303
设计FunnyPi最初的目的是想满足日常学习,并且可用做语音助手,智能家居屏幕、桌面摆件屏、博客服务器等,所以选择了丰富的接口设计方案。
为了方便统筹需要使用的硬件接口,将相关功能引脚做好分类。
软件适配
作者本人给FunnyPi适配了Tina Linux,并十分详尽地介绍了在开发板上搭建环境的教程,内容包括Tina Linux移植、Uboot配置、debug串口配置、点灯教程、WiFi蓝牙通信适配等,可以满足小白开发者的快速上手。
- Tina SDK开发环境搭建
- Tina SDK的目录结构
- 添加软件包
- 如何创建自己的开发板
- Uboot
- 修改debug串口
- 添加心跳灯
- 使用ADB来传输文件
- 适配WIFI
- 适配蓝牙
软件适配教程网址:https://www.yuque.com/flose-kgkgb/yxurbe/nbdi5d1cd63zg5r6?singleDoc#
其它功能及开源资料获取
整体来说,FunnyPi是一款功能十分全面的低成本开发板,很适合初学者来使用学习,本文与扩展板硬件相关的所有内容均转载自原作者flose本人立创开源硬件平台的工程页面和个人网站,软硬件资料均开源,感兴趣的小伙伴可以复制下方链接或者戳文末的“阅读原文”阅读了解。
立创开源平台链接:https://oshwhub.com/flose/funnypi-quanzhi-t113-s3-card-computer
FunnyPi开源网站:https://www.yuque.com/flose-kgkgb/yxurbe/nbdi5d1cd63zg5r6?singleDoc#
-
Funkey游戏机新作,基于T113的全新版本
不同于配置高端、性能强劲的Windows、安卓掌机,有一部分的爱好者往往对拥有复古外形的开源掌机更加感兴趣。作为开源掌机的热门产品,小巧便携的FunKeys掌机是各位开源爱好者争相复刻的对象。因热爱开源掌机DIY而聚集的“双核掌机开发组”开发者团队,就以FunKeys掌机为目标,开源设计了一款基于全志T113-S3芯片的全新双核FunKey开源掌机。
项目组: 双核掌机开发组
项目名称: T113-S3-FunKeys
过往项目:V3s掌机
项目组说: 双核FunKey掌机的发布不仅是我们团队的努力成果,更是开源社区的共同成就。我们鼓励更多的开发者加入到我们的项目中来,共同探索掌上游戏的无限可能性!这不是项目组团队成员第一次采用全志的主控方案进行开源掌机DIY,过往也有使用V3s、F1C100S等主控方案来设计的开源掌机,FunKey掌机采用的T113-S3芯片主控,进一步提升了屏幕分辨率、运行流畅度以及可支持模拟器的数量。同时,这些掌机都拥有开放式硬件和软件架构,开发者可以尽情发挥创造力,定制自己的设备硬件以及游戏体验。
硬件设计简介
FunKey掌机采用左右布局的硬件设计,将方向键和功能键放在掌机的两侧,中间是一块分辨率480x320的3.5寸IPS屏幕,外围还配置了Type-C、SD卡、耳机孔等常见接口。
相较于上一代掌机,本代的FunKey掌机在硬件上进行了处理器的更换、全新的外观设计以及大容量电池的更换等配置升级处理。
双核处理器
FunKey掌机首次搭载全志T113-S3处理器,提供更强大的计算性能和图形渲染能力,让游戏体验更加流畅。
全新外观设计
作者团队重新设计了掌机的外观,采用了更加时尚、符合人体工程学的设计,外壳尺寸采用更符合比例的设计,开发者在DIY时可以修改外壳尺寸以及自行选择打印材料,使得握持手感更加舒适,操作上手更加顺畅。
更大容量电池
为了满足用户长时间游戏的需求,作者团队默认增加了电池容量,延长了掌机的续航时间,DIY的时候也可以自行选择合适尺寸的更大容量电池,让玩家可以更加尽兴地享受游戏乐趣。
- 全志T113-S3主控,双核A7,内存128M,支持硬件解码,和D1s Pin to Pin,支持相互替换
- 480x320的3.5寸IPS屏幕,带触摸
- RTL8723 WIFI模块,用于连接网络
- AXP209电源管理芯片PMU
- 板载一个USB Type-C接口
- 板载一个耳机接口
- 板载齿轮电位器-B103-10K
- 2.54mm的1*3Pin直针
作者团队将硬件设计文件在立创开源硬件平台和掌机复刻群中开源,包括了外壳、主板、屏幕、按键、电池等关键部件,让任何感兴趣的小伙伴都可以查看、修改和制造这台掌机。
软件系统及模拟器适配
除了硬件,作者的开源团队还致力于开发一系列开源软件,包括操作系统、游戏引擎、开发工具等,FunKey操作系统基于Linux内核和YiYiYa OS,并提供了丰富的游戏开发框架,让开发者可以轻松地开发自己的游戏并在掌机上运行。
运行模拟器效果
掌机支持的模拟器大概有二十多种,在开发者交流群中开源的掌机固件里面大多内置了不同版本的模拟器,可以直接使用,其它类型的模拟器也可以自行添加到SD卡中使用。
FunKey支持的常见模拟器有GB、FC、SFC、MD、GBA、PS1等,这些模拟器经测试是兼容性较好、运行也很流畅的几款,配合工程中的SPI屏幕超频固件,预计能获得更好的体验。
YiYiYa系统移植
YiYiYa操作系统是一个朴实无华的操作系统,追求快速开发,最小实现,同时遵循SOLID原则。编码简洁明了,非常适合学习操作系统的同学。目前既有宏内核,也逐步实现了微s内核架构,未来将会是混合内核。
整体来说,YiYiYa操作系统非常轻量,支持POSIX操作系统标准协议,同时还支持扩展,方便使用其他语言开发模块。在应用层,可以通过libc/libmusl标准库和常用的库开发应用;在内核层可以调用基本内核模块的功能和共用库,开发者可以在DIY过程中自行选择。
开源资料获取
本文所有内容均转载自原作者本人的B站视频账号及立创开源硬件平台的工程页面,文章内所提到的FunKey掌机硬件设计、3D打印外壳和软件系统已经开源在如下的几个帖子内,感兴趣的小伙伴可以复制下方链接或者戳文末的“阅读原文”获取。
-
4月全志芯片开源项目分享合辑
FunnyPi-全志T113-S3卡片电脑
作者:flose
开源项目地址:https://oshwhub.com/flose/funnypi-quanzhi-t113-s3-card-computer
FunnyPi-T113是一款基于全志T113-S3/D1S处理器的完全开源多功能开发板,设计FunnyPi最初的目的是想满足日常学习,结合T113高效能和低功耗的特点,来满足做语音助手,智能家居屏幕、桌面摆件屏、博客服务器等嵌入式应用的开发需求。
FunnyPi开发板内置了丰富的外设接口,包括USB、GPIO、I2C、SPI、UART等,方便用户连接各种传感器、执行器和其他外围设备,同时板载了标准RGB接口、WiFi模组、PMIC芯片、串口转USB芯片等,方便开发者进行DIY开发。
此外,这款开发板适配全志Tina-Linux,支持快启,最重要的一点是,本开发板所有阻容使用0603封装且将绝大部分元件放在了正面,非常方便手焊!
基于全志T113的串口助手
作者:huerli
开源项目地址:https://oshwhub.com/huerli/chuan-kou-zhu-shou
本项目是基于全志T113-S3制作的无线串口调试器,上位机由Qt制作的串口助手客户端、下位机数据采集转发装置组成,配有无线WiFi蓝牙模组,可以对下位机采集到的数据显示以及对于数据绘制波形。
上位机信号的转换使用的是CH343P,对串口3输出TTL信号的调试信息转换成USB差分信号,当然也可以不焊CH343P,用TTL转USB工具直接于电脑连接。电源管理方面使用的是IP5306来进行锂电池充放电管理,并由单节4.2V锂电池进行供电。屏幕则是使用比较常见的十寸RGB565,同样支持RGB666,触摸IC使用GT911。
上位机由Awboot+Linux+Buildroot组成,作者本人开源了交叉编译器、Awboot源码、串口助手qt界面源码等内容,并详细介绍了开发环境搭建及qt界面配置等教程。
T113智能家居86盒(圆屏版)
作者:萨纳兰的黄昏
开源项目地址:https://oshwhub.com/planevina/t11386-box-revision
如上,你所见到的这款圆滚滚的小玩意,就是魔改了一款在前几期的文章中我们所介绍过的,一款方形的T113-S3智能家居86盒,原项目因其验证过的原理图和PCB(√),可初始化的屏幕(√),详尽的SDK和保姆级的部署教程(√),从而受到了不少开发者的关注,其中也包括一些爱整活的小伙伴。
萨纳兰的黄昏在86盒的原作者FanHuaCloud大佬加持下,又给86盒挖了个新坑,为了解决之前所驱动的圆屏只能播放MJPEG并且帧率较低的尴尬问题,集圆屏加一体化驱动板+外壳+炫酷LVGL UI于一身的圆形86盒横空出世,并命名其为——T113太极派。
目前的版本是插电使用的超薄版本 ,后续可能会增加带扩展版的支持电池的充电版本,其最主要的特点是作者为这款圆形的太极派专门给它建模做了一个极其轻薄的CNC外壳,触摸屏直径是71.8mm,外壳直径为74mm。树脂版外壳厚度为13mm,CNC版外壳厚度为10mm。
T113 MIPI触摸屏核心板
作者:搞事情团队
开源项目地址:https://oshwhub.com/gao-shi-qing-tuan-dui/t113_mipi
此核心板尺寸小巧,板载资源极其丰富,元件均在一面,背面可直接与大显3寸MIPI液晶屏通过FPC排线相连。板载CH340,MPU6050,HUB,NANDFlash,麦克风,XR829-WIFI。仅用一根Typc线便可调试此核心板,非常方便。调试串口,ADB接口,音频接口及USB,GPIO均已用引出。扩展性极强。板载资源均已调试通过。
-
回复: H616的SDK可以在本论坛下载到吗
@shenhao618 市面上有很多Pi都是基于H616开发的哦,我们欢迎大家到全志在线讨论相关的内容,SDK的话可以联系你购买商家的客服或者代理获取
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
@shenhao618 市面上有很多Pi都是基于H616开发的哦,我们欢迎大家到全志在线讨论相关的内容,SDK的话可以联系你购买商家的客服或者代理获取
-
3月全志芯片开源项目分享合集
GPT语音对话猫猫
作者:KJ
开源项目地址:https://oshwhub.com/kjpig/esp32-chat-meowGPT语音对话猫猫有两个不同的硬件版本,其中一个使用Linux系统来进行功能实现的硬件版本,是采用了基于全志H3芯片的香橙派Zero开发板。
这个版本由一个基本的Linux派和语音扩展模板组成,非常简单。语音扩展模块提供了一个基本的麦克风输入和一个功放,同时提供锂电池充放电系统,达到便携的目的,通过修改语音扩展板的PCB理论可以支持绝大多数的派,选择香橙派主要是因为其尺寸迷你,价格性能也不错。
连接上语音扩展模块化后,将音箱连接ChatGPT,与之对话,就可以充当一个能聊天的语音助手。再借助ChatGPT的函数调用功能,可以做出类似小爱同学智能音箱那样控制实体设备的功能。
AXP2101全功能专业电源管理模块
作者:mondraker
开源项目链接:https://oshwhub.com/mondraker/axp2101_2023-11-18_20-15-19AXP2101作为PMIC被广泛使用在LilyGO、M5Stack等创客圈口碑较好的企业产品中,并且有由大佬维护的GitHub库,包含Linux驱动,arduino库,espidf例程,Micropython例程,plantformIO例程等等......作者本人也是选用AXP2101来对过往基于AXP202/AXP173芯片所开发的项目进行换代升级。
硬件部分的升级主要体现在:为方便PCB电路板的设计与焊接,增加成功率,本设计采用模块化思想,将AXP202外围电路封装为一个邮票孔模块焊接在主板上,将可用户自定义的管脚全部引出,极大简化了芯片外围(只有电感与电容),增加了多路电源,布线简单,芯片封装缩小,融合ACIN与VBUS为一个输入。
软件与寄存器部分的升级主要体现在:内置的电量计量算法通过内置的库仑计与电压计等等准确计算出电池电量,存在REG A4中(直接读寄存器就能读出来,不需要任何转化),更高的可选的充电电流(充电模式可定制线性充电与开关充电),各方面的功能都有了更精细的配置等。
Bomb Pi Zero
作者:Bomb Studio
开源项目地址:https://oshwhub.com/bomb-studio/bomb-pi-zero本项目这是基于 Yuzuki Chameleon 修改的更小的H616开发板,在原工程基础上完全重置pcb,重新layout,以缩小整块pcb,外形类似树莓派Zero板型,并适配嘉立创的盘中孔工艺。
为了缩小体积,作者把emmc放在开发板背面,并在背面用丝印标注了GPIO管脚定义。为了方便焊接,螺丝孔周围没有铜,再也不用担心螺丝孔上锡了,并且修改Type-C口的CC脚电阻,原电路可能会在使用CC线或者有emark的线缆时出现问题。
其他电路没有修改,功能完全相同。开发板板载4个USB Type C 接口,分别为3个HOST和一个OTG,支持USB摄像头与采集卡输入。H616支持HDMI显示,板载一个 HDMI接口;同时板载XR829 蓝牙/WIFI模组和引出RJ45百兆接口;板载eMMC与TF卡槽;40 Pin GPIO,可以扩展 SPI LCD 显示屏,千兆以太网,麦克风阵列,CAN收发器,温湿度传感器,加速度传感器等等。
-
回复: 【视频】八分钟,教你下载 D1-H Tina SDK(现已失效)
该贴视频演示下载方法现已不适用于全志在线SDK开放的芯片,最新的SDK下载方式请浏览以下帖子
全志在线开源芯片 新 SDK 平台下载方法汇总:https://bbs.aw-ol.com/topic/4023/
内附各芯片SDK下载方式,以及达成下载前置要求的方法
-
2月全志芯片开源项目分享合集
1、项目名称:全志T113-S3智能家居86屏
作者:FanHuaCloud
作者的上一个作品的V3s的随身终端,由于硬件解码一直无法完成适配,于是作者找了另一块性能更强,接口更丰富的T113-S3来替代,并将其应用在智能家居场景中的86型智能触控屏解决方案上,最终完成了这款全能智能家居86屏。
项目选用4寸RGB接口86屏幕,分辨率480*480。板载WIFI模块、SPI Nand,支持从SPI Nand启动系统。双USB接口以及通过PH2.0扩展了2个串口,几乎用上了T113的全部引脚。
它不仅仅是一个普通的智能家居86盒,必要时它也可以化身智能手表,或者是一个能随身携带的MP4,甚至可以是一个能玩植物大战僵尸的触屏游戏掌机!
最最重要的是,本项目支持全志提供的Tina Linux SDK,文档齐全,在经过一段时间的调整后,项目已经完全可以量产。
开源项目地址:https://oshwhub.com/fanhuacloud/t113-s3-86panel
#2、项目名称:赛博魔杖
作者:realTix
这是一个万全的解决方案!只需要花80元再动动手,就可以将哈利波特的魔杖与人工智能结合到一起!它就是用全志V851s做的赛博魔杖!
魔杖本身的电路设计部分,其实并不复杂,其基础硬件主要包含:全志 V851s,BMI088,HLK-B40,并主要使用使用蓝牙串口透传模块通信。
它可以通过手势识别,控制一切你想控制的电子设备(灯、空调),也可开原神。当前识别字符为字母 A~Z,也有数字 0~9等更多的模型,该手势识别是使用Keras训练手势识别模型,转为TFlite模型,再通过谷歌提供的 TFlite C API 运行模型。
3、项目名称:ConcoPi-基于F1C100S的小终端
作者:CoNi2960
使用全志F1C100S/F1C200S设计的小板子,板载无线联网模块,CP2102串口通信,USB接口,0.42寸OLED小屏幕,spi接口,板子很迷你,看上去比较精致。
外设丰富,带音频输入输出并有两个屏幕接口,正面有一块迷你小屏幕,背面可以自行配置不同规格屏幕(需要修改内核里的驱动)。
焊接背面按键后,可以有MP3/无线遥控器/游戏机功能,但阻容封装基本上是0402,密度较大,且TF卡槽比较矮,注意插拔时候不要用力弯折卡,否则容易损坏,比较考验动手能力。
可以运行荔枝派官方固件,也可以自行根据需要编译制作镜像文件。
开源项目地址:https://oshwhub.com/zoulidezhanghao/concopi-small-f1c100s-based-terminal
4、项目名称:全志V3S M.2模块开发板
作者:黑色向日葵
作者为方便快速扩展和适配自己的创作需求,做了一款m2接口的V3S核心板,以方便后期制作底板时无需考虑核心布线,只要注重需求变更开发功能适配的底板即可。
板子虽小,但功能资源还是十分丰富的。开发板板载无线模块、TF卡、Flash、串口芯片、USB并引出了除WiFi引脚之外的所有引脚,方便使用spi、进行单板调试、使用usb扩展芯片扩展usb接口等需求场景。
打板验证,使用荔枝派V3s系统完美运行。
开源项目地址:https://oshwhub.com/lihongxin123/quan-zhi-v3s
-
回复: 请问哪里找到R128芯片的架构图
@hert6666 全志R128芯片 RTOS 异构多核通信:https://r128.docs.aw-ol.com/sdk_base/amp/
-
用39块钱的V851se视觉开发板做了个小相机,还可以物品识别、自动追焦!
用39块钱的V851se视觉开发板做了个小相机。
可以进行物品识别、自动追焦!
这个超低成本的小相机是在V851se上移植使用全志在线开源版本的Tina Linux与OpenCV框架开启摄像头拍照捕获视频,并结合NPU实现Mobilenet v2目标分类识别以及运动追踪等功能......并最终实现功能完整的智能小相机。
ISP适配
可以适配V851se的Tina5.0升级到了21.05版本的OpenWrt,相较于商业量产版本的Tina Linux 支持更多新的软件包,不过可惜的是MPP包没有移植到Tina5.0,所以想使用摄像头就需要另辟蹊径。
虽然Tina5.0并没有移植MPP包,但也内置了一个libAWispApi包,支持在用户层对接 ISP,但是很可惜这个包也没有适配V85x系列,这里就需要自行适配。
其实适配很简单,SDK 已经提供了lib只是没提供编译支持,我们需要前往以下文件夹中新建一个v851se文件夹:
openwrt/package/allwinner/vision/libAWIspApi/machinfo
然后再新建文件build.mk写入如下配置:
ISP_DIR:=isp600
然后在menuconfig中勾选上这个包,并进行如下配置:
Allwinner ---> Vision ---> <*> camerademo........................................ camerademo test sensor ---> [*] Enabel vin isp support
编译系统然后烧录系统,运行命令 camerademo ,可以看到是正常拍摄照片的
OpenCV适配
OpenCV在打包好的固件中已经默认适配好了,如果不想了解如何适配OpenCV可以直接前往点击链接获取资料并跳过这部分
OpenCV默认不支持开启RAW Sensor,不过现在需要配置为OpenCV开启RAW Sensor抓图,然后通过OpenCV送图到之前适配的libAWispApi库进行 ISP 处理。
在这里增加一个函数作为 RAW Sensor 抓图的处理。
#ifdef __USE_VIN_ISP__ bool CvCaptureCAM_V4L::RAWSensor() { struct v4l2_control ctrl; struct v4l2_queryctrl qc_ctrl; memset(&ctrl, 0, sizeof(struct v4l2_control)); memset(&qc_ctrl, 0, sizeof(struct v4l2_queryctrl)); ctrl.id = V4L2_CID_SENSOR_TYPE; qc_ctrl.id = V4L2_CID_SENSOR_TYPE; if (-1 == ioctl (deviceHandle, VIDIOC_QUERYCTRL, &qc_ctrl)){ fprintf(stderr, "V4L2: %s QUERY V4L2_CID_SENSOR_TYPE failed\n", deviceName.c_str()); return false; } if (-1 == ioctl(deviceHandle, VIDIOC_G_CTRL, &ctrl)) { fprintf(stderr, "V4L2: %s G_CTRL V4L2_CID_SENSOR_TYPE failed\n", deviceName.c_str()); return false; } return ctrl.value == V4L2_SENSOR_TYPE_RAW; } #endif
这段代码的功能是检查V4L2摄像头设备的传感器类型是否为RAW格式。它使用了V4L2的ioctl函数来查询和获取传感器类型信息。
然后在OpenCV的捕获流函数:
bool CvCaptureCAM_V4L::streaming(bool startStream)
添加 ISP 处理
#ifdef __USE_VIN_ISP__ RawSensor = RAWSensor(); if (startStream && RawSensor) { int VideoIndex = -1; sscanf(deviceName.c_str(), "/dev/video%d", &VideoIndex); IspPort = CreateAWIspApi(); IspId = -1; IspId = IspPort->ispGetIspId(VideoIndex); if (IspId >= 0) IspPort->ispStart(IspId); } else if (RawSensor && IspId >= 0 && IspPort) { IspPort->ispStop(IspId); DestroyAWIspApi(IspPort); IspPort = NULL; IspId = -1; } #endif
这段代码主要用于控制图像信号处理(ISP)的启动和停止。根据条件的不同,可以选择在开始视频流捕获时启动ISP流处理,或者在停止视频流捕获时停止ISP流处理,以便对视频数据进行处理和增强。
至于其他包括编译脚本的修改,全局变量定义等操作,可以参考原文链接中的补丁文件。
在执行完以上步骤后,可以快速测试摄像头输出demo:
OpenCV ---> <*> opencv....................................................... opencv libs [*] Enabel sunxi vin isp support <*> opencv_camera.............................opencv_camera and display image
MobileNet V2
MobileNet V2是一种轻量级的卷积神经网络,它专为移动设备和嵌入式设备上的实时图像分类和目标检测任务设计。
MobileNet V2的关键特点包括使用深度可分离卷积来减少计算量和参数数量,引入带线性瓶颈的倒残差结构以增加非线性表示能力,以及提供宽度乘数参数以适应不同计算资源限制。这些特点使得MobileNet V2成为资源受限的移动设备上的理想选择。
首先对输入图像进行预处理,以适应MobileNet V2 SSD模型的输入要求。通过通道格式转换、图像大小调整和数据填充等操作,将输入图像转换为适合模型输入的格式。
void get_input_data(const cv::Mat& sample, uint8_t* input_data, int input_h, int input_w, const float* mean, const float* scale){ cv::Mat img; if (sample.channels() == 1) cv::cvtColor(sample, img, cv::COLOR_GRAY2RGB); else cv::cvtColor(sample, img, cv::COLOR_BGR2RGB); cv::resize(img, img, cv::Size(input_h, input_w)); uint8_t* img_data = img.data; /* nhwc to nchw */ for (int h = 0; h < input_h; h++) { for (int w = 0; w < input_w; w++) { for (int c = 0; c < 3; c++) { int in_index = h * input_w * 3 + w * 3 + c; int out_index = c * input_h * input_w + h * input_w + w; input_data[out_index] = (uint8_t)(img_data[in_index]); //uint8
关键步骤是要实现非极大值抑制算法(NMS),用于去除高度重叠的框,只保留得分最高的那个框。算法通过计算框之间的交集面积和设置的阈值来进行筛选,并将保留的框的索引存储在picked向量中。
// 非极大值抑制算法(NMS) static void nms_sorted_bboxes(const std::vector<Bbox_t>& bboxs, std::vector<int>& picked, float nms_threshold) { picked.clear(); const int n = bboxs.size(); // 创建存储每个框面积的向量 std::vector<float> areas(n); // 计算每个框的面积并存储 for (int i = 0; i < n; i++){ areas[i] = (bboxs[i].xmax - bboxs[i].xmin) * (bboxs[i].ymax - bboxs[i].ymin);
通过一系列操作,包括转换为向量、计算缩放比例、创建存储检测结果的向量等,将输出数据转换为检测结果,并按照置信度从高到低排序。然后应用非极大值抑制算法对检测结果进行筛选,最后将筛选后的目标框位置、大小和类别置信度等信息绘制在图像上。
// 按照分数对框进行排序 std::sort(BBox.begin(), BBox.end(), comp); // 应用非极大值抑制算法,获取保留的框的索引 std::vector<int> keep_index; nms_sorted_bboxes(BBox, keep_index, iou_threshold); // 创建存储框位置的向量 std::vector<cv::Rect> bbox_per_frame; // 遍历保留的框,绘制框和标签 for(int i = 0; i < keep_index.size(); i++) { int left = BBox[keep_index[i]].xmin; int top = BBox[keep_index[i]].ymin; int right = BBox[keep_index[i]].xmax; int bottom = BBox[keep_index[i]].ymax; cv::rectangle(bgr, cv::Point(left, top), cv::Point(right, bottom), cv::Scalar(0, 0, 255), 1); char text[256]; sprintf(text, "%s %.1f%%", class_names[BBox[keep_index[i]].cls_idx], BBox[keep_index[i]].score * 100); cv::putText(bgr, text, cv::Point(left, top), cv::FONT_HERSHEY_COMPLEX, 1, cv::Scalar(0, 255, 255), 1, 8, 0); bbox_per_frame.emplace_back(left, top, width, height); }
NPU开发流程
V851se芯片内置一颗NPU,其处理性能为最大0.5TOPS并有128KB内部高速缓存用于高速数据交换,NPU 开发完整的流程如下图所示:
模型训练
在模型训练阶段,用户根据需求和实际情况选择合适的框架(如Caffe、TensorFlow 等)使用数据集进行训练得到符合需求的模型,此模型可称为预训练模型。也可直接使用已经训练好的模型。V851s 的 NPU 支持包括分类、检测、跟踪、人脸、姿态估计、分割、深度、语音、像素处理等各个场景90 多个公开模型。
signal函数
在模型转化阶段,通过Acuity Toolkit把预训练模型和少量训练数据转换为NPU可用的模型NBG文件。一般步骤如下:
1、模型导入,生成网络结构文件、网络权重文件、输入描述文件和输出描述文件。
2、模型量化,生成量化描述文件和熵值文件,可改用不同的量化方式。
3、仿真推理,可逐一对比float和其他量化精度的仿真结果的相似度,评估量化后的精度是否满足要求。
4、模型导出,生成端侧代码和*.nb 文件,可编辑输出描述文件的配置,配置是否添加后处理节点等。开源资料获取
本文所有内容均转载自原作者本人的个人论坛,文章内所提到的源代码、固件等开发资料均开源在作者的个人网站和Github上,
-
花费200元,我用雪糕棒手搓了一台可UI交互的视觉循迹小车
常见的视觉循迹小车都具备有路径识别、轨迹跟踪、转向避障、自主决策等基本功能,如果不采用红外避障的方案,那么想要完全满足以上这些功能,摄像头、电机、传感器这类关键部件缺一不可,由此一来小车成本也就难以控制了。
但如果,有这样一款视觉循迹小车,它可以完全自己手搓,并用成本极低的雪糕棒来搭建车体架构,不仅保留了传统循迹小车具备的所有功能,还额外适配上一块小屏幕并配上UI界面用于升级人机交互方式。
更重要的是,它的器件成本被压缩到200元左右,这样的视觉循迹小车能让你心动吗~
核桃派视觉循迹小车简介
核桃派H616视觉循迹小车的循迹功能和人机交互界面整体代码由Python+Qt实现,它通过摄像头获取周围环境的图像信息,并利用图像处理算法识别出特定的标记或路径,然后根据标记或路径的形状和方向信息,自动控制小车的行驶方向和速度,以实现沿着预定轨迹自动行驶的目的。
手搓一台视觉循迹小车所需要用到的基础硬件材料如下:
1、核桃派H616开发板+LCD屏幕≈178元;
2、四个电机+车轮≈16元;
3、电机驱动模块≈4元;
4、摄像头≈50元;
5、移动电源≈20元;
6、雪糕棒若干≈4元(也可以≈不要钱);循迹功能实现
要让小车实现循迹自运动的操作,其实也可以说是一个在教小车如何精准识别线路并做出判断的过程,想要小车的摄像头实现对路线的准确判断,就需要用到一个目前循迹小车最广泛采用的技术手段——二值化。
二值化是图像分割的一种方法,用于将图像中的像素点矩阵的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
在二值化过程中,将大于某个临界灰度值的像素灰度设为灰度极大值(通常是255),将小于这个值的像素灰度设为灰度极小值(通常是0),从而实现二值化。
# 根据不同模式,用不同的hsv上下限值 upper_hsv = (180,255,100) lower_hsv = (0,0,0) grayImage = cv2.inRange(hsvImage, np.array(lower_hsv), np.array( upper_hsv)) # 颜色二值化
二值化图像后,整个画面会被区分为黑白分明的两种颜色,之后就需要进行路线轮廓的描绘以及质心的标注,这个操作的目的是让小车知道该往左拐还是往右拐,进而控制两边车轮的速度。
- 获取最大轮廓
# 获取所有轮廓,画出所有轮廓 contours, hierarchy = cv2.findContours(grayImage, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) areas = [cv2.contourArea(c) for c in contours]] cv2.drawContours(rgbImage,contours, -1,(0,255,0),3)
- 计算质心
# 计算面积最大轮廓的质心 areas = [cv2.contourArea(c) for c in contours] try: M = cv2.moments(contours[areas.index(max(areas))]) except: pass M10=M.get("m10") M01=M.get("m01") M00=M.get("m00") if M00 <= 0 : continue cX = int(M10 / M00) cY = int(M01 / M00) # 绘制质心 cv2.circle(rgbImage, (cX, cY), 15, (255, 0, 255), -1)
在绘制轮廓与质心后就需要进行质心坐标的判断,这里的原理很简单,就是质心偏左就往左转,质心偏右就往右转,在判断的同时通过电机来控制两边车轮的速度进而控制小车的行驶方向。
根据质心的位置计算车轮速度的控制参数postion,根据具体的计算公式可以得知,postion的取值范围为-50到+50,其中0代表质心在正中间,+越大质心越往左,-越大质心越往右,则进行下面的速度计算和控制,否则将速度设置为0,再根据postion和delta_sum的值以及其他参数的调整,计算并控制左右车轮的速度。
# 车轮速度控制 if self.flag_start.status() == True : # -50 ~ +50 :0为正中间,+越大则越往左,-越大则越往右, postion = int(int(center_x - cX) / int(center_x / 50)) # postion += self.delta_sum step = self.postion_last - postion self.delta_sum += (postion - step)*0.01 if self.delta_sum > 100: self.delta_sum = 100 elif self.delta_sum < -100: self.delta_sum = -100 if abs(postion) < 5 : self.delta_sum = 0 # print("self.delta_sum", self.delta_sum) self.postion_last = postion speed_l = 50 - postion - int(self.delta_sum) speed_r = 50 + postion + int(self.delta_sum) motor.L.speed(speed_l) motor.R.speed(speed_r) self._slider_l.setValue(speed_l) self._slider_r.setValue(speed_r)
人机交互界面
核桃派H616开发板上预装了PyQt,所以可以使用Qt自带的设计器软件来画窗口,在设计好后通过命令一键转化为Python代码,再去核桃派的开发文档复制一段显示案例的代码,就可以轻松在电脑上预览到刚刚的窗口画面。
为了在远程服务器上运行图形界面应用程序,通过设置os.environ["DISPLAY"] = ":0.0"允许Thonny远程运行。
# 允许Thonny远程运行 import os os.environ["DISPLAY"] = ":0.0"
定义了一个名为event_press的函数,用于处理QPushButton按钮的released事件。当按钮被释放时,切换work.flag_start的状态,并根据状态改变按钮的文本。
def event_press(): if work.flag_start.status(): work.flag_start.disable() ui.pushButton.setText("点击开始") else : work.flag_start.enable() ui.pushButton.setText("点击结束")
为了处理三个不同按钮的released事件,定义了change_to_mode三个函数,这些函数用于将work.flag_mode的模式设置为不同的值。
def change_to_mode0(): work.flag_mode.set_mod( 0 ) def change_to_mode1(): work.flag_mode.set_mod( 1 ) def change_to_mode2(): work.flag_mode.set_mod( 2 ) ui.pushButton.released.connect(event_press) ui.pushButton_auto.released.connect(change_to_mode0) ui.pushButton_black.released.connect(change_to_mode1) ui.pushButton_white.released.connect(change_to_mode2)
以上这些代码片段是构成一个由PyQt所创建GUI的关键部分。它通过创建一个窗口,并在窗口中显示了一些UI元素,同时定义了一些事件处理函数,这个应用程序根据用户的操作来控制某些功能,并使用定时器来让解释器每隔一段时间运行一次,以保持界面响应性能,最后进入主循环等待事件的触发和处理。
开源资料获取
本文所有内容均转载自原作者本人的B站视频账号及核桃派论坛开源文章,文章内所提到的小车部件和源代码均公开在帖子和视频中,感兴趣的小伙伴可以复制下方链接或者戳文末的“阅读原文”获取。
-
我用V851s做了一个魔法棒,成本80元,可以通过手势识别控制一切电子设备
本项目作者: realTiX
项目名称: 赛博魔杖
芯片平台: 全志V851s, BMI088,HLK-B40这是一个可以直接启动原神的魔法棒~
原神,启动!
这是一个万全的解决方案!只需要花80元再动动手,就可以将哈利波特的魔杖与人工智能结合到一起!它就是用全志V851s做的赛博魔杖!
这个魔法手杖有啥亮点
手势识别“控万物”
它可以通过手势识别,控制一切你想控制的电子设备(灯、空调),也可开原神。
主要是通过识别手势画出来的字符控制,当前识别字符为字母 A~Z,也有数字 0~9等更多的模型。
控制的过程中,你也可以高喊一句阿瓦达!
关于手势控制精度,您可以参照开源代码仓库训练精度更高(当前准确率为 92%),可识别字符(当前为字母 A~Z,数字 0~9)更多的模型。
成本低,易复刻,有技术含量
总成本包含外壳只需要80元,如果你想要一个更好看的外壳,也可以自己替。
蓝牙通信
本魔杖使用蓝牙串口透传模块通信,可以用这个功能开启原神。
你可以参照代码仓库中的通信协议自行扩充本魔杖功能以及依此协议开发其他蓝牙终端,以达到遥控更多带有蓝牙的终端设备的目的。
硬件部分
这是魔杖本身的电路设计部分,其实并不复杂:
其基础硬件主要包含:全志 V851s,BMI088,HLK-B40。
魔杖如何轻松开关灯?多亏了这个开灯器打配合!看看它的电路吧:
整体配合效果就是这样的:
硬件设计参考:Yuzukilizard 柚木PI 迷你 AIoT 开发板
软件部分
通过本章节,你会了解到——AI手势识别功能是如何做到的。
1、软件构成
使用Keras训练手势识别模型,转为 TFlite 模型。
再通过谷歌提供的 TFlite C API 运行模型。
2、代码仓库
代码仓库顺序如下:
- bmi088 获取挥棒手势数据
- Keras 挥棒手势识别模型训练
- V851s 赛博魔杖
- 蓝牙控制的简易舵机开关灯装置_HLK-B40
- 原神 蓝牙安卓启动器
1、在工程附件中可下载固件文件(文末有入口)。
2、将 TF 卡 通过读卡器连接电脑。
3、使用 全志提供的 PhoenixCard 软件。
4、按下图步骤下载固件到 TF 卡中。
5、固件下载完成后,插入 TF 卡槽中。
6、魔杖初次开机需要半分钟(正常开机会闪三下灯)。非初次则需要 8 秒时间开机,如果开机很久都没闪灯,请重启或检查硬件(可插入数据线连接电脑,重启魔杖并使用 MobaXterm 查看串口打印信息以确定原因)。
7、开机后进入陀螺仪初始化,期间会亮灯。也就是说,加上开机亮灯,会亮 4 次。
8、注意,本魔杖 Type-C 口正反插分别为 USB-OTG 和 串口,请插上去后查看电脑驱动,以确定哪一方向为串口。
9、开灯器固件在代码仓库下载源码,可自行编译或直接下载固件,参考 STC 51单片机程序下载方法。搞定了这一步,就要开始组装魔杖了!
组装
①组装魔杖:在工程附件中可下载 3D 外壳文件,制作出来后按下图方式嵌入电路板及电池。
②组装开灯器:同上,有设计文件,制作出来后,按下图组装开灯器,注意红外头需引出。
不觉得很酷吗,科技并带着乐趣
蓝牙连接
以上操作完成并正常开机后,就可以尝试连接蓝牙了。
使用海凌科官网提供的 HLK-B40 软件 连接到蓝牙模块,
按照下图内容修改参数设置:
上图是魔杖的蓝牙模块配置,开灯器的蓝牙模块配置图略,魔杖和开灯器一个作主机一个做从机就行 了
同样使用海凌科官网提供的 HLK-B40 软件连接到蓝牙模块,按照下图内容修改参数 设置:
上图需要注意的点为透传相关 UUID。
三个 UUID 需要改成同一个才能和手机 APP 正常通信,否则手机只能连接模块但无法收发数据。
接着在代码仓库下载源码,自行编译,或直接下载 apk。
注意!手机 app 需要打开权限,否则无法正常使用。
此 APP 不联网,定位权限是使用蓝牙的前提,不会泄露您的任何信息。
开源项目资料获取
需要【软硬件资料+视频演示文件】,请“复制链接”进入开源页查看:https://oshwhub.com/realtix/cyber-wand-v851s_bmi088_keras
PS:空调也能控制,再也不用为满屋子找不到空调遥控器而发愁啦~
本文转载了「立创开源硬件平台」的用户创作,如有侵权,请联系删除
原文链接:https://mp.weixin.qq.com/s/-jUd17vBvcNGdUSbRAQDxg
项目链接:https://oshwhub.com/realtix/cyber-wand-v851s_bmi088_keras -
1月全志芯片开源项目分享合辑
1、柚子爱AI相机(YuzuAI-YuzuMaix-AIoT-V831)
开源项目地址:https://oshwhub.com/armbian-pythoniot/yuzumaix-v831
本项目于去年4月首次发布,是基于V831的AI相机开源项目,经过几个版本的迭代,最终运用了叠层的设计来实现AI摄像头+掌控板的奇葩组合。
开发板主控是全志V831,采用Arm Cortex-A7 + 0.25T NPU的内核,集成64MB DDR,支持Linux 4.9 Tina系统。固件可以借用Sipeed的M2Dock,软件、外设兼容MaixPy3,也可以自己编译BSP。
项目整体引用YuzukiIRC的主体设计,经过几个版本的迭代后,AI相机的设计最终确定为将屏幕和摄像头分为上下两板的布局,并在有屏幕的一端设计了类似掌机的操作交互按键,扇出的背面引脚负责连接的另一块开发板则负责相机的使用。上层板设计最简单的功能,只有S1和S2两个按键以及类似掌机布局的几个功能按键,一个复位键,再加上LCD屏。目前AI相机成品已经在某宝上售卖。
2、retroPalm V3s掌机
开源项目地址:https://oshwhub.com/curtainzero/gc_v3s
一改往日横版掌机的风格,retroPalm采用了竖版外形进行外观设计,在键位布局和操作功能上也是参考了Funkeys的风格来进行布局,并将无声按键换成锅仔片按键,将方向摇杆换成十字键,操作手感更加丝滑。
掌机主控本代掌机采用了开源掌机使用最广泛的主控全志V3s,并选用了一块MCU作为协处理器,屏幕尺寸是被广泛使用的2.8寸TFT液晶LCD屏,分辨率均为320X240。
掌机的PCB文件和固件都完全开源,硬件上还支持WiFi蓝牙的通信方式不过暂未支持,震动马达和加速度计的驱动适配也尚未完全,如果希望节省DIY成本的小伙伴可以先不贴这些区域的元件。
3、V3S-PI 基于全志V3S的随身终端
开源项目地址:https://oshwhub.com/expert/zi-zhi-planck-pi
本项目是基于全志V3S的随身终端(类似MP4),命名为V3S-PI,开发板使用四层板制作,全板采用0603电容电阻,相较于0402,制作更为方便,同时成本可压缩至100以内。
V3S-PI是基于全志V3s设计的开发板,V3s单核Cortex-A7带有硬件浮点计算,且芯片内封64Mbyte DDR2,无需再外挂DDR2芯片,极大程度上为开发板的走线设计降低了难度。
V3s芯片包含专用视频引擎以提供高级多媒体应用程序和服务,开发板设计之初就预留了屏幕、音频等接口,作者本人给这块开发板增加适配的外设以及功能有将近10个:获取天气、连耳机播放音乐、10M/100M以太网接口、连wifi、接入SD卡、调整屏幕亮度、按键控制、外接其他设备、1转4USB HUB......
4、TinyVision V851se
开源项目地址:https://oshwhub.com/gloomyghost/tinyvision
TinyVision是一款异构视觉AI开发套件,主控芯片使用全志V851se,芯片内置0.5Tops算力,可用于AI视觉IPC摄像头,内置100M ephy可以支持路由设备功能。
开发板在外设功能的增加上采用了硬件堆叠的方式,V851se开发板配套有相同尺寸大小的显示屏+WiFi模块,可以用来进行显示输出和无线网络传输等功能,未来也会针对V851se的接口特点适配上AI摄像头等功能模块。
-
【吃灰开发板复活】DIY全志V3s随身终端屏幕适配,LVGL以及各种外设驱动移植教程
在上周的文章中介绍了一款因作者想要学习Linux而动手DIY的终端设备V3S-PI,
《梦回2004!我用全志V3s做了个成本100元,功能媲美MP4的随身终端》:https://bbs.aw-ol.com/topic/4940/
并详细解析了项目的硬件设计部分,本文将着重介绍项目的软件适配部分,并挑选其中几个普适性较强的外设功能来进行介绍。
V3S-PI是基于全志V3s设计的开发板,V3s芯片包含专用视频引擎以提供高级多媒体应用程序和服务,开发板设计之初就预留了屏幕、音频等接口,作者本人给这块开发板增加适配的外设以及功能有将近10个:获取天气、连耳机播放音乐、10M/100M以太网接口、连wifi、接入SD卡、调整屏幕亮度、按键控制、外接其他设备、1转4USB HUB......
而在适配了屏幕,移植了LVGL以及各种外设驱动后,开发板摇身一变成为功能可以媲美MP4的随身终端。
2.4寸LCD彩屏适配
LCD彩屏使用SPI接口与主控连接,由于各家屏幕初始化代码不同,所以st7735r.c文件在原来的基础上,我们只需修改st7735r_pipe_enable这个函数中的代码即可。
- 软件部分采用TinyDRM,与传统的fbtft相比,不再是固定帧率刷新。
- 采用DRM架构,可以与新架构程序更快集成。
修改完成的代码参考下方文件,设备树配置参考:
&spi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins>; display@0 { compatible = "jianda,jd-t18003-t01"; reg = <0>; spi-max-frequency = <95000000>; backlight = <&panel_backlight>; dc-gpios = <&pio 4 9 0>; // PE9 reset-gpios = <&pio 4 8 0>; // PE8 rotation = <0>; }; };
除spi外,需要添加一个背光节点,这样就可以在用户层操作背光:
panel_backlight: panel-backlight { compatible = "gpio-backlight"; gpios = <&pio 4 7 GPIO_ACTIVE_HIGH>; // PE7 default-on; status = "okay"; };
顺利适配好屏幕后移植上LVGL,可以在刷FB的图层刷出来700帧的高刷。
libcurl获取天气信息方式
为了丰富功能,作者还通过libcurl库实现了获取天气信息的功能,通过回调函数处理获取到的JSON数据,并使用lvgl库显示天气信息。
这里需要用到一个回调函数,用于解析获取到的JSON格式的天气信息。它首先使用cJSON库对获取到的数据进行解析,并找到对应的天气信息字段。
// 解析json数据 cJSON * json = cJSON_ParseWithLength(ptr, size * nmemb); if(!json) { goto end; } json = cJSON_GetObjectItem(json, "now"); if(!json) { goto end; } cJSON * temp = cJSON_GetObjectItem(json, "temp"); cJSON * humidity = cJSON_GetObjectItem(json, "humidity"); cJSON * text = cJSON_GetObjectItem(json, "text"); cJSON * pressure = cJSON_GetObjectItem(json, "pressure");
然后使用其它函数进行线程锁定,以防止多线程冲突,接着利用LVGL库的相关函数将天气信息设置到对应的标签上。
pthread_mutex_lock(&mutex); if(cJSON_IsString(text)) { lv_label_set_text_fmt(label1, "当前天气\n%s", text->valuestring); } if(cJSON_IsString(pressure)) { lv_label_set_text_fmt(label2, "气压\n%s hPa", pressure->valuestring); } if(cJSON_IsString(temp)) { lv_label_set_text_fmt(label3, "室外温度\n%s ℃", temp->valuestring); } if(cJSON_IsString(humidity)) { lv_label_set_text_fmt(label4, "湿度\n%s %%", humidity->valuestring); } pthread_mutex_unlock(&mutex); cJSON_Delete(json); end: return size * nmemb;
get_now_weather函数首先定义一个URL字符串,其中包含了获取天气信息所需的地址和参数。然后通过curl_easy_init创建一个CURL对象,并配置相应的选项,如设置URL、禁止进度信息、忽略SSL证书校验、设置回调函数等。接着使用curl_easy_perform执行请求,并检查返回的结果。最后使用curl_easy_cleanup清理CURL对象。
char * url = "https://devapi.qweather.com/v7/weather/now?location=" LOCATION "&key=xxx"; CURL * curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L); // curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, now_weather_cb); curl_easy_setopt(curl, CURLOPT_ENCODING, "gzip");
需要根据实际情况修改URL字符串中的
LOCATION
和xxx
,并根据天气API的要求进行必要的参数配置和授权等操作。音频播放
Buildroot中集成了alsa,默认声卡会静音状态,打开终端,输入alsamixer,首先解除静音。
在当前界面,选中Headphone,然后按下M键 解除静音,然后使用键盘↑,调整音量到合适大小即可,界面可参考:
调整完成后,输入mpv 文件名 --no-video,插入耳机,即可实现音乐播放:
[root@buildroot ~]# mpv 2.flac --no-video Video --vid=1 [P] (mjpeg 500x500 1.000fps) (+) Audio --aid=1 (flac 2ch 48000Hz) File tags: Album: 西厢寻他 Title: 西厢寻他 Track: 1 AO: [alsa] 48000Hz stereo 2ch s32 A: 00:00:04 / 00:03:43 (2%) Exiting... (Quit)
命令提示符显示当前目录,编辑/etc/profile文件,添加一行,然后export /etc/profile重新加载配置即可:
export PS1='[\u@\h \w]\$ '
开源资料获取
在目前网上资料的基础上,作者自行移植了主线内核Uboot以及root。目前仅支持SD卡以及SPI Nor启动。本文所有内容均转载自原作者本人的B站视频账号及开源文章。
作者B站主页链接:https://space.bilibili.com/66212170
本项目所有资料均已开源,软硬件都开源了,其中软件开源了:UBoot、Kernel、Buildroot:测试镜像下载地址等……想获取资料自己DIY学习的伙伴,请点击下方图片跳转阅读或戳文末的“阅读原文”获取。
-
回复: 下载源码时卡在这里不动,请问下大佬必须要升级到lv2才能下载吗
@xieminghao sudo git config --global credential.helper store
-
梦回2004!我用全志V3s做了个成本100元,功能媲美MP4的随身终端
本项目是基于全志V3S的随身终端(类似MP4),命名为V3S-PI,开发板使用四层板制作,全板采用0603电容电阻,相较于0402,制作更为方便,同时成本可压缩至100以内。
项目简介
开发板选用全志V3S为主控,V3s单核Cortex-A7带有硬件浮点计算,且芯片内封64Mbyte DDR2,无需再外挂DDR2芯片,极大程度上为开发板的走线设计降低了难度。
开发板的外设以及功能有将近10个:获取天气、连耳机播放音乐、10M/100M以太网接口、连wifi、接入SD卡、调整屏幕亮度、按键控制、外接其他设备、1转4USB HUB......
由于开发板设计功能繁多,为了教会大家自己DIY开发板,作者将项目整体拆分为了6大部分,分别为项目特性、软件开源、硬件开源、软件方案、开源网址,来对开发板整体设计进行全面介绍和详细讲解电路原理。
项目特性
- 全志V3S主控,采用单核Cortex-A7,带硬件浮点
- 芯片内封64Mbyte DDR2,无需外挂DDR2
- 支持RTL8723BS 2.4G WIFI
- 通过CH334R扩展双USB口
- 耳机接口采用V3S内置声卡
- 支持10M/100M以太网接口
- 支持SDMMC接口,用于启动系统
- 支持CH340N 串口转USB,用于连接串口终端
- 支持LRADC,四个ADC按键
- 2.4寸LCD彩屏,使用SPI接口
- 2x8扩展接口,用于扩展I2C/UART
软件开源
在目前网上资料的基础上,作者自行移植了主线内核Uboot以及root。目前仅支持SD卡以及SPI Nor启动,SPI Nand启动请不要参考当前代码。
1、UBoot快速启动:
git clone https://gitee.com/fhcloud/uboot-v3s cd uboot-v3s make v3s_pi_defconfig make
输出的文件在源码根目录:
u-boot-sunxi-with-spl.bin
2、Linux快速启动:
git clone https://gitee.com/fhcloud/linux-v3s cd linux-v3s make v3s_pi_defconfig make
输出的内核文件在:
arch/arm/boot/zImage
输出的设备树请使用:
arch/arm/boot/dts/sun8i-v3s-pi.dtb
3、Buildroot快速启动:
git clone https://gitee.com/fhcloud/buildroot-v3s.git cd buildroot-v3s make v3s_pi_defconfig make
输出的文件在:
output/images/rootfs.tar
硬件开源
硬件采用四层板设计,下面会将电路拆分为11部分,逐一说明。
主控部分
本项目主控采用全志V3S,需要注意的是,R3/R5电阻需使用1%,同时,EPHY存在两组电压。
ADC按键
板载四个ADC按键,电压跨度为0.2V,通过分压电阻实现。
2x16 PIN扩展接口
此处通过排针,引出了8个扩展接口,包含了一个串口/一个I2C总线,可用于外接其他设备。
辅助供电
板载四组供电芯片,分别产生3.0V、3.3V、1.8V、1.2V,其中:
- 3.0V用于PLL以及AVCC模拟供电
- 3.3V负责芯片IO以及其他外设供电
- 1.8V用于内存供电
- 1.2V用于V3S核心主控供电。
- 三路DCDC最大输出电流2A。
WiFi模块
板载2.4G WIFI模块,使用RTL8723BS模块,V3S与WIFI模块之间采用SDIO接口连接,引出一个IPEX接口用于外接天线,R20-R27为SDIO和芯片要求的上拉电阻,C50/C51/C70为外围滤波电容,模块采用3.3V供电。
10/100M以太网接口
百兆以太网需要使用两组差分,分别为RX/TX差分。以太网PHY一般带自动翻转功能,所以RX/TX可以对调。V3S以太网使用电压驱动,只需在网口变压器中心抽头处加100NF电容到地即可。内部封装的电阻和2KV电容用于泄放主板的静电,防止高压打坏主控芯片。
R28/R29为LED限流电阻,SH1 SH2为外壳,直接接地即可。
2.4寸LCD彩屏
2.4寸彩屏通过SPI与主控进行通信,PE8接彩屏重置线。PE9接DC用于区分数据/指令。
LEDA为背光阳极,LEDK接Q1 MOS,用于主控控制背光开关,屏幕通过焊锡焊接到PCB板上。
CH340串口转USB
使用CH340N芯片,实现串口转USB,用于电脑连接终端。
R30/R31用于确保双头TYPEC线正常供电,D1为TVS,用于保护USB接口,此处使用3.3V供电,所以CH340N的VCC和V3需要连接到一起,同时增加100nf电容。
CH334R 1转4 USB HUB
通过CH334R芯片,实现一转四个USB Host口,此处采用统一供电,所以VDD33与V5连接到一起即可。
- XI XO输入12Mhz晶振
- DPU/DMU接上行USB口
耳机接口
耳机接口采用PJ-342接口,带音频和录音:
SD卡接口
SD卡接口用于插入MicroSD卡,R32-R36为SD卡上拉电阻,这里CLK不需要上拉,否则可能会影响SDIO通信。
软件设计
软件方案主要讲这8个部分:Linux内核、2.4寸LCD彩屏驱动、USB、以太网、无线网卡RTL8723BS、ADC按键、音频播放、libcurl。
Linux内核
内核采用Linux5.15.143主线内核,在其基础上,修改了部分代码,适配V3S大部分外设。
2.4寸 LCD裁判驱动
LCD彩屏使用SPI接口与主控连接,由于各家屏幕初始化代码不同,所以st7735r.c文件在原来的基础上,我们只需修改st7735r_pipe_enable这个函数中的代码即可。
- 软件部分采用TinyDRM,与传统的fbtft相比,不再是固定帧率刷新。
- 采用DRM架构,可以与新架构程序更快集成。
修改完成的代码参考下方文件,设备树配置参考:
&spi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins>; display@0 { compatible = "jianda,jd-t18003-t01"; reg = <0>; spi-max-frequency = <95000000>; backlight = <&panel_backlight>; dc-gpios = <&pio 4 9 0>; // PE9 reset-gpios = <&pio 4 8 0>; // PE8 rotation = <0>; }; };
除spi外,需要添加一个背光节点,这样就可以在用户层操作背光:
panel_backlight: panel-backlight { compatible = "gpio-backlight"; gpios = <&pio 4 7 GPIO_ACTIVE_HIGH>; // PE7 default-on; status = "okay"; };
USB接口
设备树配置参考:
&usb_otg { dr_mode = "host"; // peripheral status = "okay"; }; &usbphy { status = "okay"; };
除引用节点外,一定要添加ochi/echi,不然USB插入会没有反应:
soc { ehci0: usb@01c1a000 { compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci"; reg = <0x01c1a000 0x100>; interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>; resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; status = "okay"; }; ohci0: usb@01c1a400 { compatible = "allwinner,sun8i-v3s-ohci", "generic-ohci"; reg = <0x01c1a400 0x100>; interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>, <&ccu CLK_USB_OHCI0>; resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; status = "okay"; }; };
以太网
直接引用DTSI文件中的emac节点即可,设备树参考:
&emac { allwinner,leds-active-low; status = "okay"; };
无线网卡RTL8723BS
Linux下SDIO架构类似于USB,设备插入后,如果有对应驱动,会自动加载。
所以设备树中,我们只需要配置好MMC1接口,然后编译对应的驱动ko,在rootfs中加载即可。
&emac {&mmc1 { broken-cd; bus-width = <4>; vmmc-supply = <®_vcc3v3>; status = "okay"; }; allwinner,leds-active-low; status = "okay"; };
编译完成的ko文件在buildroot的overlay目录下面,可以参考下方资料:
r8723bs.ko就是编译完成的内核模块,此处的模块backport了5.19内核的驱动,相比于5.15的驱动更加稳定。
除ko文件外,此处还需要加载网卡固件,参考下方目录:
连接WIFI请参考下方脚本:
[root@buildroot ~]# cat conn.sh modprobe r8723bs.ko wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf udhcpc -i wlan0
配置文件请参考下方:
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="###############" psk="###############" }
音频播放
Buildroot中集成了alsa,默认声卡会静音状态,打开终端,输入alsamixer,首先解除静音。
在当前界面,选中Headphone,然后按下M键 解除静音,然后使用键盘↑,调整音量到合适大小即可,界面可参考:
调整完成后,输入mpv 文件名 --no-video,插入耳机,即可实现音乐播放:
[root@buildroot ~]# mpv 2.flac --no-video Video --vid=1 [P] (mjpeg 500x500 1.000fps) (+) Audio --aid=1 (flac 2ch 48000Hz) File tags: Album: 西厢寻他 Title: 西厢寻他 Track: 1 AO: [alsa] 48000Hz stereo 2ch s32 A: 00:00:04 / 00:03:43 (2%) Exiting... (Quit)
命令提示符显示当前目录,编辑/etc/profile文件,添加一行,然后export /etc/profile重新加载配置即可:
export PS1='[\u@\h \w]\$ '
开源资料获取
本项目所有资料均已开源,软硬件都开源了,想获取资料自己DIY学习的伙伴,请前往 https://oshwhub.com/fanhuacloud/v3s_lcd 获取。
-
将开发板设计拆解为10个部分,教你DIY一块F1C200S Linux开发板
本项目是基于全志F1C200S设计的开源屏幕开发板,设计的目标是提供一个低成本、超迷你且适合Linux开发的平台,特别是针对屏幕接口的支持。
项目简介
开发板板载16M nor flash,主控芯片采用F1C200S,内置64M DRAM。同时附带USB Host接口以及USB type-c口,以及CH340串口转USB芯片,用于开发调试使用。
硬件设计
由于芯片功能繁多,开发板设计也相对复杂,为了教会大家自己DIY开发板,作者将开发板设计的硬件部分按功能拆分为了10个不同的知识点,来对开发板整体设计进行全面介绍和详细讲解电路原理。
全志F1C200S主控
全志F1C200s是一款高度集成、低功耗的移动应用处理器,支持高清视频解码,包括H.264、H.263、MPEG 1/2/4等格式,同时还具备音频编解码器和I2S/PCM接口,适用于多媒体音视频设备。
芯片基于ARM 9架构,并SiP了DDR,这样的配置使其外围电路在设计时会非常简单,非常适合作为入门级的Linux开发板。该部分原理图如下图所示:
- SVREF用于给DRAM提供参考电压,该部分所需电压为VCC_DRAM/2
- 2VCC_DRAM为DRAM供电,电压为2.5V
- VCC_IO为GPIO供电,电压为3.3V
- VCC_CORE为核心供电,电压为1.2V
- AVCC为模拟供电,该部分非常重要,不接会导致USB Host无法枚举设备,同时需要注意该引脚供电范围为2.5V-3.1V,不可以使用3.3V供电,会导致内部电路损坏。
- X1为24M晶振,为芯片提供时钟信号,采用22pF负载电容。
SDMMC接口
SDMMC接口用于接入Micro SD卡,系统启动时,可以从SD卡中加载U-Boot,内核,RootFS,实现Linux启动。
如上图所示,相关线路说明如下所示:
- CLK: SDMMC时钟,每个时钟周期传输一个命令或数据位。频率可在0至25MHz之间变化。SD卡总线管理器可以自由产生0至25MHz的频率,没有任何限制
- CMD: 命令传输线,命令通过该CMD线串行传输
- D0~D3: 数据通过这些数据线传传输
- 按照SDMMC规范,SDMMC线路还需要增加10K上拉电阻,如果没有可以会影响数据传输,本原理图中R7-R11即上拉电阻。同时,为了保证电源质量,增加了C22滤波电容
- SHELL引脚为SDMMC连接器固定引脚,此处接地处理,CD引脚用于探测SD卡是否插入,这一块悬空未使用
CH340串口转USB
此电路用于用户连接系统调试中断使用,其功能为将TTL串口转换为USB接口,使得用户可以在电脑中连接该串口进行调试。
需要注意的是,由于F1C200S的UART0接口(PE0/PE1引脚)被触摸的I2C接口占用,所以本开发板将CH340的串口连接到了F1C200S的UART1(PA2/PA3引脚)上,后续编译U-Boot和内核时我们需要相应的修改代码。
如上图所示,该部分除了串口转USB外,还兼顾了系统的供电。
- 用户通过Type-C线缆连接该调试口后,将同时为开发板供电
- 板上的5.1K电阻用于双头Type-C线缆识别从机,为其供电
- 如果R12,R13不焊接会导致使用双头Type-C线时板子没有供电
- D2为TVS瞬态抑制二极管用于保护PCB板上元件,防止静电击穿原件
三路DC-DC接口
该部分主要为主控芯片提供供电,采用SY8089A1AAC,单路最大输出电流2A。
- SVREF用于给DRAM提供参考电压,该部分所需电压为VCC_DRAM/2
- 2VCC_DRAM为DRAM供电,电压为2.5V
- VCC_IO为GPIO供电,电压为3.3V
- VCC_CORE为核心供电,电压为1.2V
- AVCC为模拟供电,该部分非常重要,不接会导致USB Host无法枚举设备,同时需要注意该引脚供电范围为2.5V-3.1V,不可以使用3.3V供电,会导致内部电路损坏。
- X1为24M晶振,为芯片提供时钟信号,采用22pF负载电容。
在该模块中,我们使用了2520电感,与普通的电感相比,体积更小,但是2520电感在DCR(即直流电阻)参数上,会比普通的电感大一点,电感值的计算公式可以参考下方:
- L为计算出的电感容量
- Vout为降压芯片输出电压
- L为计算出的电感容量
- Vin为降压芯片输入电压
- Fsw为芯片开关频率,SY8089取1.5Mhz,也就是1500000Hz
- Iout,max为最大输出电流
如下图所示,本开发板电感值直接参考SY8089数据手册文档,折中后取1.5Uh:
芯片的反馈电阻控制着芯片的输出电压,可以参考下方公式计算:
- Rh为上端分压电阻阻值
- Rl为下端分压电阻阻值
- 0.6V指的是芯片的Vfb,也就是反馈电阻
- Vout即最终的电压输出值
- 在这里,我们需要确定Rl和Vout,然后将其代入公式,计算出Rh
- 为了最大限度地减少轻负载下的功耗,最好为 RH 和 RL 选择较大的电阻值。强烈建议 RL 使用 10k 到 200k 之间的值
AVCC 3V LDO
该部分用于AVCC 3V供电,使用XC6206 3V LDO,位号为U10,由于较为简单,此处不在详细说明。
SPI Nor Flash
Nor Flash为F1C200S芯片提供了第二种启动方式。
- 上电后,F1C200S首先从内部BROM (芯片内置,无法擦除)启动
- 首先检查 SD0 有没有插卡, 如果有插卡就读卡 8k偏移数据,是否是合法的启动数据, 如果是BROM 引导结束, 否则进入下一步
- 第二步:检测SPI0 NOR FLASH是否存在, 是否有合法的启动数据, 如果是BROM 引导结束, 否则进入下一步
- 第三步:检测SPI0 NAND FLASH 是否存在, 是否有合法的启动数据, 如果是BROM 引导结束, 否则进入下一步
- 最后,因为找不到任何可以引导的介质,系统会进入usb fel模式,此时可以使用USB烧录
此处SPI Nor Flash可以同时兼容Nand Flash,不过目前裸机资料基本上都是以SPI Nor Flash为基础,所以此处焊接了W25Q128JVEIQ 128Mbit(16Mbyte)SPI Nor Flash。
- R4为上拉电阻(F1C200S内部也存在上拉电阻,可以不焊),防止未供电时芯片错误写入数据
- C16为滤波电容
- SW2为FEL模式开关,将SPI_MISO短路到地后,F1C200S将无法检测到SPI Nor Flash,从而进入USB Fel模式,此时可以松开按键,烧录内容至SPI Nor Flash
- /WP为SPI Nor Flash保护引脚,低电平有效,有效时无法写入数据
- /HOLDor/RESET为SPI Nor Flash保持或者复位输入引脚。
- 最后,因为找不到任何可以引导的介质,系统会进入usb fel模式,此时可以使用USB烧录
外部IO接口
此处引出了未使用的IO,用户可连接其他设备,C35为滤波电容,用于保证电源质量,该部分引脚功能可以参考下图(来源:芯片数据手册14/15页):
USB OTG/USB TYPE-C
该部分连接到了芯片的DP/DM引脚,为芯片的USB接口。
USB Type-C用于USB Fel模式烧录系统,无供电输入/输出能力。
USB OTG处可用于连接其他USB设备,带5V输出,当然也可以接双头USB Type-A线缆用于USB Fel模式。
需要注意的是,开发板中没有连接ID线(ID线用于识别USB模式),所以在编写设备树时,我们需要强制指定USB模式为主机或从机。
背光驱动
该部分用于驱动RGB屏幕背光,标准40Pin RGB屏幕基本采用串联背光,由于本身开发板供电只有5V,所以我们需要使用背光驱动芯片升压到合适的电压,来驱动屏幕背光。
同时,背光驱动芯片采用恒流控制,可以避免电流过大导致背光LED烧毁,该部分原理图如下所示:
- C19 C20为滤波电容,C19电容的耐压需要特别考虑,一般的RGB屏背光电压基本在18V以上(白光LED压降3V*6串),过低的电容耐压会导致电容损坏
- BL_CTR为芯片背光控制引脚,此处直接接入了上拉,再开发时可以将BL_CTR引脚接入F1C200S的PWM引脚上,这样可以灵活控制屏幕亮度,同时,有恒流驱动的存在,控制亮度时,背光也不存在明显的频闪
- L1 为升压电路的电感,按照要求一般取10uh或22uh即可,不需要使用公式详细计算,但是需要注意电流不能超过电感额定电流
R5为芯片的反馈电阻,用于调节输出的电流,计算公式可参考下方:
此处我们选择20ma,所以R1=0.25/0.020(Ω) = 12.5Ω,就近取12Ω。
如上图,下方说明了LED为2并5串,额定电流为40ma,我们为了保险,选择了20ma,亮度会有所损失。
40Pin RGB/触摸接口
此处参考屏幕数据手册即可,由于F1C200S只支持RGB565,RGB666,此处使用RGB666,屏蔽了RGB三色的低2位,这样最终色彩影响比较小,同时,F1C200S内置色彩抖动,可以更加接近RGB888效果。
其中需要注意的是,CTP_SDA/CTP_SCL最好加上拉电阻,此处选用了内部上拉,所以并没有加电阻,该部分原理图如下所示:
开发环境搭建
使用VSCode的DeviceTree插件,我们可以实现设备树文件的代码高亮,编辑c语言代码。
安装VSCode后,我们开始安装设备树插件,再商店中搜索DeviceTree插件,点击安装安装即可:
同理,推荐读者同时安装中文汉化,搜索CN,参考下图安装即可,安装后按照要求重启VSCode即可使用。
打开安装好的Ubuntu 18.04虚拟机,将需要分区的SD卡插入电脑USB口,并右键点击VMware右下角的USB存储器图标,点击连接,将SD卡连入虚拟机。具体操作过程如下图所示:
点击桌面左下角图标,进入所有应用,然后搜索GPartd,可参考下图:
此时需要输入密码,输入用户密码,提权到root用户,如下图所示:
接着在右上角选择我们需要格式化的SD卡,默认为/dev/sda,这个是我们虚拟机的系统盘,我们需要切换到SD卡,此处一定要小心,sdb不一定是我们的sd卡。
完成切换后,右键点击如图所示位置,点击“卸载”,接着点击“删除”按钮删除SD卡中原有分区,最后点击确定,确认删除,具体过程可以参考下图。
接着开始创建分区,首先创建boot分区,用于u-boot读取设备树、内核等文件,我们需要在分区前方空出一定的空间,用于u-boot以及SPL程序存放,如下图所示,首先点击左上角按钮,创建新分区,然后按照下图创建boot分区。
此处为U-Boot以及SPL预留了1Mib的空间,完全足够存放这些程序。
接着创建rootfs分区,我们将剩下的空间全部作为rootfs,文件系统选择ext4,如下图所示:
最后点击保存,确认后生效,拔出SD卡备用,操作可参考下图:
开源资料获取
作者适配的U-Boot目前使用了master分支的U-Boot并给出了移植指南。由于后续master分支代码可能会存在更新,所以移植指南使用了最近的一个U-Boot版本来指导复刻打开发者进行修改和配置,编译出自己的U-Boot。
本项目所有资料均已开源,软硬件都开源了,其中软件开源了:UBoot、Kernel、Buildroot:测试镜像下载地址等……想获取资料自己DIY学习的伙伴可以前往获取
-
纵享丝滑!R128+LVGL驱动多尺寸RGB LCD屏幕流畅运行
新晋点屏神器,R128!各种屏幕都能点!
高刷、大屏、宽色域......通常来讲,显示器的配置越高,越能给使用者带来优于其它一般配置显示器的体验。但就某些特殊的使用场景来讲,选择配置合适的显示屏幕,才能更精准地匹配上实际的使用需求。
无论是工控监视设备、平板电脑、笔记本电脑等带屏产品,还是平时开发者在DIY掌机、小电脑、桌面机器人等电子设备时,都需要通过使用不同尺寸的RGB屏幕来满足特定的需求。
R128和LVGL的组合就为这一类的应用场景提供了解决方案的另一种选择,对内存及处理器性能的低要求,可以让LVGL很好的适配不同尺寸的RGB屏幕以及各种应用场景。
-
7寸方屏(1024x600)
-
4寸方屏(480x480)
-
4寸圆屏RGB(480x480)
R128适配RGB LCD配置
如动图展示,其中最大的屏幕是 7寸1024x600分辨率,lvgl测试不加触摸能跑60多帧,加触摸是58帧左右,4寸480x480分辨率的屏幕时,R128的lv_benchmark跑分显示可达247fps,实现伪高刷。
R128目前以支持移植百问网的7寸(1024x600)、4寸方屏(480x480)、4寸圆屏RGB(480x480)。
不同尺寸RGB屏幕的sys_config.fex配置有微小差异,以4寸方屏RGB配置代码为例:
4寸方屏(480x480) ;lcd_driver_name = "default_lcd" ;lcd_backlight = 150 ;lcd_if = 0 ;lcd_x = 480 ;lcd_y = 480 ;lcd_width = 70 ;lcd_height = 70 ;lcd_rb_swap = 1 ;lcd_dclk_freq = 9 ;lcd_pwm_used = 1 ;lcd_pwm_ch = 7 ;lcd_pwm_freq = 500000 ;lcd_pwm_pol = 1 ;lcd_hbp = 20 ;lcd_ht = 526 ;lcd_hspw = 6 ;lcd_vbp = 10 ;lcd_vt = 510 ;lcd_vspw = 4 ;lcd_lvds_if = 0 ;lcd_lvds_colordepth = 1 ;lcd_lvds_mode = 0 ;lcd_frm = 1 ;lcd_io_phase = 0x0000 ;lcd_gamma_en = 0 ;lcd_bright_curve_en = 0 ;lcd_cmap_en = 0 #触摸配置 4寸方屏(480x480) GT911 ;tp_max_x = 480 ;tp_max_y = 480 ;tp_addr = 0x14
LVGL配置修改以下内容:
/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/ #define LV_COLOR_DEPTH 32 /*这里可以改为16,因为de会自动转换到32位,最终显示还是32位色深*/ /*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/ #define LV_COLOR_16_SWAP 0 #ifndef USE_EVDEV # define USE_EVDEV 1 #endif
以上配置完成后,编译打包烧录,上电后屏幕背光亮起,屏幕为黑色,并且可以在 LOG 中看到 SPI 初始化的 LOG。
disp:[disp_device_attached_and_enable 230]attached ok, mgr0<-->dev0 disp:[disp_device_attached_and_enable 243]type:1,mode:0,fmt:rgb,bits:8bits,eotf:4,cs:0 dvi_hdmi:2, range:2 scan:0 ratio:8 [gt911][log] PRODUCT_ID=39:31:31:00:60:10 [gt911][log] verison=00 range_x=0 range_y=0 point_num=0 [gt911][log] PRODUCT_ID=39:31:31:00:60:10 [gt911][log] verison=42 range_x=480 range_y=480 point_num=5
开发资源
Gitee源码获取链接:https://gitee.com/weidongshan/100ask_r128_demos
GitHub源码获取链接:https://github.com/100askTeam/100ask_r128_demos更多关于项目的详情可以前往百问网R128综合项目开发案例界面了解:https://aw-r128.100ask.net/zh/rtos/demo/part1/chapter15.html
应用拓展
在其它规格及尺寸屏幕上的LVGL运行效果对比也可以参考以下文章,文章内将对比了LVGL运行在R128平台时,SPI与DBI在不同型号屏幕下的性能差异。
相关阅读:https://r128.docs.aw-ol.com/demo/spi_vs_dbi/
能进行虚拟光渲交互的智能家居中控,基于开源项目移植的NWatch智能手表,它们的产品形态其实类似,只是在屏幕的选择规格上有明显差异。
相关阅读:https://bbs.aw-ol.com/topic/4793/
相关阅读:https://bbs.aw-ol.com/topic/4563/
在原文链接演示的链接回复中,也可以发现有的开发者基于R128+LVGL的搭配实现了普通灯珠的点阵屏控制效果图,丰富的音视频接口为R128应对不同场景的需求提供了便利。
基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。
- DshanMCU-R128s2-R16N16模组:29.9元
- DshanMCU-R128s2-DEVKIT开发板:49.9元
R128开发板购买链接:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.46b0523cMfarLo&id=736154682975&ns=1&abbucket=5#detail
-
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
@mc964203886 配置一下 sudo git config --global credential.helper store
-
用R128复刻自平衡赛车机器人,还实现了三种不同的操控方式
经常翻车的朋友们都知道,能在翻车后快速摆正车身的车才是好车。
就像动画《四驱兄弟》中展现的那样,在比赛中需要跟着赛车一起跑圈,而且赛车如果被撞翻还需要重新用手扶正,所浪费的时间非常影响比赛结果。
如果小豪和小烈可以拥有一款能通过发挥R128的WiFi&蓝牙特性的平衡小车,从而能通过WiFi或蓝牙连接的方式进行控制,既可以自平衡和转向,又可以远程操控,那冠军岂不是手到擒来。
它,就是可以自平衡的赛车机器人——B_ROBOT_100ASK
项目简介
本项目基于jjrobots的开源项目B-ROBOT EVO2进行复刻,与原开源项目不一样的地方是,作者将原本适配的的Arduino控制板移植为DShanMCU-R128s2-DevKit开发板,与此同时还添加了一些功能,比如自平衡功能、WiFi&蓝牙控制、App控制以及语音控制功能,让平衡小车的操控乐趣更上一层楼。
硬件设计
本项目中的自平衡赛车机器人的硬件设计结构非常简单,硬件部分主要由R128开发板和几个驱动模块组成。
-
供电模块
自平衡机器人采用锂电池供电的方式,并利用mini360航模电池降压模块来将较进行电压的转化工作,以满足小车设备对电压方面的需求 -
电机驱动模块
自平衡机器人选用两个NEMA17步进电机,并选用DDRV8825步进电机驱动模块来负责与电机之间的控制信息传输。
DDRV8825步进电机驱动模块的体积小,驱动能力强,它只需要一个PWM波就能控制步进电机,同时基本上三个引脚就能完全控制步进电机。
通过该模块可以使小车快速反应R128下达的运动信息,驱动小车本身的轮子进行运动。
- 平衡模块
MPU6050是一种6轴运动跟踪传感器,它包含3轴陀螺仪、3轴加速度计、运动处理器和温度传感器。它可以通过I2C总线接口与微控制器进行通信,并且可以通过辅助I2C总线与其他传感器设备通信。
MPU6050的主要作用是帮助机器人实现姿态感知和运动控制,提高机器人的自主性和灵活性。
遥控手柄UI控制(LVGL)
作者本人还利用R128开发板来移植了一个酷炫的LVGL遥控手柄UI,通过手柄上的菜单栏UI可以选择不同的机器人基础参数设置和进行机器人操控。
在自平衡机器人启动后,可以通过面包板上的两个手柄去遥控机器人的前进后退和转弯,并且在屏幕上还会实时返回机器人的倾斜角度、速度、电量等状态。
实现APP控制
在机器人竞速中,必须要在准确性和速度之间找到平衡。为了更好的反馈给自平衡机器人设置不同参数下的运动状态,作者针对自平衡机器人进行了控制App的适配。
App可以实时显示电池状态和机器人的倾斜角度,操作者只需要通过App中的几个可视化按钮和滑动栏来实时修改其PID,以实现对机器人速度和状态的远程控制。
自平衡机器人的一般行为由一组参数定义:
// NORMAL MODE PARAMETERS #define MAX_THROTTLE 550 MAXIMUM VELOCITY #define MAX_STEERING 140 MAXIMUM SPINNING VELOCITY #define MAX_TARGET_ANGLE 14 MAXIMUM ANGLE REACHED WHEN MOVING // PRO MODE = MORE AGGRESSIVE (MAXIMUM SETTINGS) #define MAX_THROTTLE_PRO 860 MAXIMUM VELOCITY. PRO MODE #define MAX_STEERING_PRO 280 MAXIMUM SPINNING VELOCITY. PRO MODE #define MAX_TARGET_ANGLE_PRO 32 MAXIMUM ANGLE REACHED WHEN MOVING. PRO MODE #define KP 0.32 // 0.14 #define KD 0.050 // 0.028 #define KP_THROTTLE 0.075 //0.075 #define KI_THROTTLE 0.1 // 0.1 #define KP_POSITION 0.06 //0.055 #define KD_POSITION 0.45 //0.5 //#define KI_POSITION 0.02
比如:
-
高MAX_THROTTLE_PRO值会使机器人更快,但如果不能顺利恢复垂直位置,稳定性会降低。
-
高MAX_STEERING_PRO值会让机器人旋转得更快,但转弯时更难精确控制。
-
高MAX_TARGET_ANGLE_PRO值将使机器人减小其相对于地板的角度,但这会使恢复和转弯变得更加困难。
UDP 网络通信控制
这个功能的实现比较简单,利用R128本身自带的WiFi&蓝牙特性,来实现两块R128开发板(机器人自身携带&手上的操控端)的UDP网络通信控制。
源码获取
基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。
- DshanMCU-R128s2-R16N16模组:39.9元
- DshanMCU-R128s2-DEVKIT开发板:49.9元
R128开发板购买链接:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.46b0523cMfarLo&id=736154682975&ns=1&abbucket=5#detail
Gitee源码获取链接:https://gitee.com/weidongshan/100ask_r128_demos
GitHub源码获取链接:https://github.com/100askTeam/100ask_r128_demos更多关于项目的详情可以前往百问网R128综合项目开发案例界面了解:https://aw-r128.100ask.net
-
-
你相信光吗?开源一个能进行虚拟光渲交互的D1s智能家居中控
项目作者:是小叶呀~ @aldfaaa
一位除了不会的都会的“全栈”工程师,接触国产RISC-V芯片(全志D1-H)的最早的一批开发者,热衷于有意思的DIY项目,有主控芯片自己焊接的无畏精神与小米加步枪的节俭精神。
本文所介绍产品demo是在立创开源平台的开源作品**《全志D1s智能家居中控虚拟光渲交互(86盒)》**,项目选用RISC-V核心的全志D1s作为主控进行开发,并通过家庭WIFI内网,实现设备间MQTT通信,与其它开源单片机控制项目进行充分联动,旨在推广类似客制化键盘概念到智能家居领域,尝试打破各大厂商对物联网家居的包揽野心和APP的分散的局面,回归到注重用户体验的智能家居本心。
项目简介
项目整体形态以适配86盒安装为基础,使用全志RISC-V核心的D1s芯片作为主控,选择更契合广大房奴的户型的4.3寸长方形屏幕,屏显拉满输出RGB888,搭载全志系的芯之联XR829作为WIFI/BLE模块,多种方式联动。
在开发系统的选择上,作者基于全志最新公开的Melis 4.0实时操作系统进行本项目的开发,并针对Melis 4.0粗糙地适配了LVGL图形库,实现了在性能受限的嵌入式设备上的光照渲染核心技术,致敬homeassistant。
硬件设计
为了在结构上适配标准86盒安装,硬件设计方面不仅引出了D1s包括屏幕显示、网络、音频在内的大部分功能引脚,还为后续的DIY功能开发、与其它开源单片机控制项目进行充分联动预留了开发接口。
虽然功能繁多,但项目的硬件设计方面其实并没有什么难点,只是作者本人本着主控芯片自己焊接的无畏精神与小米加步枪的节俭精神,在星火计划里申请了第一板的PCB和物料。
然而...作者确实高估了焊接eQFP芯片的难度,焊接完成发现还是存在结构等小问题,总结完各种问题后不断改了三个版本的PCB,甚至拖到了全志D1s都已经上架到了立创SMT元件库中。
想要复刻的小伙伴需要注意以下几个方面:
- SMT的版本系需要手工焊接B5819
- 需要检查D1s元件是否反接, 不然会造成片内DDR无法校准的深坑
- 不接USB_ID也不会影响D1s烧录镜像到Flash
软件设计
智能家居中控采用Melis 4.0以及RT-Thread内核的梦幻联动作为操作系统,并基于此系统进行了LVGL的适配工作,并在LVGL图形库实现了在性能受限的嵌入式设备上的光照渲染核心技术。
作为本项目的最核心亮点,作者为这款86盒专门适配了一套自研"光渲"算法,让交互不再停留在常规的按钮点击,显示界面会通过亮暗两种形态来反馈用户的操作效果。
除了实时反馈通过传统开关带来的灯光亮灭变化,用户在使用时还可以通过触摸屏幕,App控制等方式来充当灯光及其它智能家居的开关,通过该智能家居中控操作实现真正的全屋智能,回归到注重用户体验的智能家居本心。
资料获取
开门见山地说项目内的亮点:
- 基于全志最新公开的Melis 4.0实时操作系统进行开发, 使用RTThread内核! 汝可知这其中的梦幻联动?
- 针对Melis 4.0粗糙地适配了LVGL图形库;
- 基于LVGL图形库实现了在性能受限的嵌入式设备上的光照渲染核心技术,致敬homeassistant;
- 搭载全志系的芯之联XR829作为WIFI/BLE模块;
- 选择4.3寸屏幕是因为长方形的更契合广大房奴的户型(自己家);
- 结构上适配标准86盒安装;
目前项目的整体功能还不算完善,项目作者本人也在初版demo的基础上不断增加更加智能化的功能,目前有以下三个计划:
- 计划接入阿里云的MQTT服务, 正在谋划中...
- 社区大佬正移植NES模拟器..
- 方案适用于各种带屏设备, 逼格即可拉满! 包括但不限于:Voron, Klipper....(RISC-V生态百废待兴!)
作者连同使用的开发系统一起打包了软件及硬件的源码,并熬了好个晚上填完了项目中的坑,本项目所有资料均已开源,想获取资料自己DIY学习的伙伴,请前往以下链接获取。
https://oshwhub.com/fanlingg/D1s-smart-home-control
-
全志客户服务平台智能客服使用指南
全志客户服务平台承载着为广大企业客户提供在线预览及下载技术文档、获取技术资源、快速查看FAQ、实时提交反馈问题等重要的功能。作为与客户交流并帮助客户解决问题的工具平台,客户服务平台从上线伊始,一直专注于打磨服务功能,致力于为客户带来良好的使用体验,并在使用的过程中吸取经验来提高为客户解决问题的效率。
近年来,全志科技基于市场需要和对产品趋势的理解,不断拓宽旗下芯片的产品线,各系列芯片的技术资源、开发文档、教学视频不断更新迭代,FAQ的数量也不断增长,在客户服务平台上架可供客户查阅的FAQ已有2000余条。
客户服务平台日益丰富的技术资源,虽提升了解决客户目标问题的可能性,却也为客户在实际使用中带来了检索困难,操作繁琐等不良体验。
全志科技长期坚持以客户为中心的理念,为更好的帮助客户快速定位和解决开发过程中遇到的问题,提升服务效率,全志客户服务平台对原有的文档检索及资料获取的流程进行优化,对智能客服功能作出了重要升级,客户现可以通过与智能客服对话的形式,来实现芯片文档获取、技术资源下载、FAQ快速检索等功能。
本文将为广大客户服务平台的用户演示通过智能客服快速查找技术文档,FAQ精准检索,以及一些新增功能的解释和使用方法介绍。
客户服务平台智能客服接入指南
智能客服功能部署在全志客户服务平台,全志客户服务平台主要面向所有全志芯片的代理商、方案商以及渠道合作伙伴、企业开发者,提供全面产品包下载与在线技术支持服务。
全志客户服务平台网址:https://open.allwinnertech.com
还未注册客户服务平台账号的客户可以先点击“立即注册”按钮进行注册,企业用户建议使用企业邮箱进行注册,用户名账号建议选用公司英文或拼音,后续该账号将作为公司主体的主账号用户名。需要注意的是,首次注册的新用户是未进行NDA认证的账号。
还未注册客户服务平台账号的客户可以先点击“立即注册”按钮进行注册,企业用户建议使用企业邮箱进行注册,用户名账号建议选用公司英文或拼音,后续该账号将作为公司主体的主账号用户名。需要注意的是,首次注册的新用户是未进行NDA认证的账号。
使用未进行NDA认证的客户账号在登录客户服务平台后,页面内不显示“在线咨询”按钮,客户可以先进行NDA认证,根据提示提交相关材料,通过认证后可正常使用智能客服功能。
账号登录成功后,点击页面左上方的马上认证跳转到NDA认证页面。按照要求填写公司证件号、地址,选择意向芯片平台、意向产品品类。该项关系到审核NDA资质的审核分配人员,请按你需要合作的芯片平台填写。
如果之前有全志客户经理已经与贵司对接,请填写【业务受理人】姓名,届时系统将按指定的受理人审核。
如果没有,也可以不用填写,选择意向芯片、意向品类即可,由系统为你分配审核人员。
按照全志的NDA模板填写了协议并条提交盖章签字后的附件,可点击【下一步】。
点击【上传已签订的NDA文件】,上传文件。点击【上传三证扫描附件或复印件】,上传企业的三证等资料,方便资料审核。
客户服务平台目前仅面向与全志合作、商务往来的企业,即全志的企业客户才能进行NDA认证,面向个人开发者群体的服务暂未开放,提交申请会被拒绝。
对于提交申请的企业主体开发者,即可在资质申请页看到当前状态,平台一般3-4个工作日完成审核。审核通过后,便可拥有该平台的使用及权限。
每个企业只有一个企业账号主体,若是开发者所在企业已经拥有企业主账号,则可以联系企业开发组的拥有者或管理员,添加到企业开发组中。企业主账号通过认证后,其申请者将为企业主账号的拥有者,且不可更改,相关配置也均与拥有者账号相关,故要求企业在申请企业NDA时,申请者的账号必须填写企业的账号,该账号不随人员变动而变动。
使用已进行NDA认证的客户账号在登录客户服务平台后,可以在“工作台”栏目页面的右下角看到“在线咨询”按钮的入口,点击按钮就会弹出智能客服的对话窗口,再次点击关闭窗口。
智能客服对话窗口包含以下几项内容:
(1)猜你想问:
平台设置的默认问题,可以通过该栏目对目标问题进行快速提问。猜你想问的栏目下默认设置了7个问题,可以快速获取全志客户服务平台的功能简介、编译工具链的介绍、V系列常见客户问题、芯片开发板购买链接等技术资源;(2)点击加载更多:
查看智能客服历史对话消息;(3)快捷短语:
平台设置的默认快捷短语,可以实现快捷回复以实现短语对应功能。快捷短语栏目下目前默认设置了查看V系列常见客户问题目录和查看V系列应用开发常见客户问题目录,客户可以通过该快捷短语了解开发常见问题的初级目录。(4)输入栏:
客户可以通过该板块输入文字与智能客服对话,在对话框内有默认设置的提问模板和提问示例,在不了解问题所属目录板块的时候,可以配合输入栏上方的快捷短语使用。技术资源&开发问题检索流程演示
目前可支持通过智能客服检索到的V系列常见客户问题数量为220条,全面覆盖八大不同板块类型,其中包含技术资源、开发文档、FAQ等内容。
V系列常见客户问题目录:
1、入门指南——7个相关词条
2、芯片规格及性能——6个相关词条
3、文档流程指引——6个相关词条
4、开发环境搭建——3个相关词条
5、SDK版本介绍——5个相关词条
6、BSP开发相关——26个相关词条
7、应用开发相关——144个相关词条- 多媒体系统——17个相关词条
- 音频相关——1个相关词条
- Camera相关——17个相关词条
- 图形系统相关——4个相关词条
- USB相关——6个相关词条
- NPU相关——20个相关词条
- 图像调试相关——12个相关词条
- 网络相关——35个相关词条
- 文件系统相关——3个相关词条
- 蓝牙相关——29个相关词条
8、系统开发相关——23个相关词条
- 系统配置——9个相关词条
- 系统调试——13个相关词条
- 休眠唤醒——1个相关词条
以下内容将为大家详细介绍在智能客服内检索目标技术资源及开发问题的步骤。
常规检索
以客户在使用V系列(V53x、V83x、V85x)Tina SDK开发环境下遇到的Camera曝光闪烁问题为例,来演示通过智能客服在客户服务平台上进行常规检索相关开发资源的流程。
步骤一: 点击在“猜你想问”设置的默认短语“V系列常见客户问题”,会弹出对应的V系列常见客户问题目录,各目录方块中的黑体字为目录名称,灰体字为该目录下的相关词条数量,点击对应词条即会弹出该词条下的相关问题;
步骤二: 这时候可以客户可以对自己遇到的问题进行分类,以本文的问题为例,Camera模块下遇到的问题应当归类到应用开发问题,点击“应用开发相关”卡片;
步骤三: 在“应用开发相关”下有10个相关的模块卡片,选择需要的“Camera相关”卡片;
步骤四: 点击后可以看到17个Camera相关的问题词条,在卡片内没有灰体字显示相关词条数量的卡片即为FAQ,选择需要的“Camera曝光闪烁排查指南”卡片;
步骤五: 点击后可以看到FAQ的相关内容,大部分FAQ会将问题的问题背景、问题表现、根本原因、解决方法、附件等内容进行详细的阐述,通过以上步骤即可正确找到所需要的FAQ。
步骤六: 点击下方的展开更多即可阅读FAQ详细内容。
以上几个步骤仅以客户视角进行开发技术问题的FAQ检索为例,同理,客户在使用智能客服的过程中,也可以通过相同的方法获取到预设在智能客服内部的其它技术资源, 例如V85x各封装型号规格差异的技术文档,V85x开源开发板的购买链接等内容。
快捷检索
若客户在遇到开发问题时,无法通过“V系列常见客户问题”下设置的默认目录来锁定问题,可以在智能客服搜索框直接输入关键词来查找相关FAQ,但该方法目前仅适用部分FAQ。还是以客户在使用V系列(V53x、V83x、V85x)Tina SDK开发环境下遇到的Camera曝光闪烁问题为例,来演示通过智能客服在客户服务平台上进行快捷检索相关FAQ的流程。
1、模糊搜索
在输入框输入关键词Camera后,在输入框上方会出现与Camera词条相关的FAQ,点击选择需要的“Camera曝光闪烁排查指南”即可。
2、固定模式检索
在输入框内有固定提问模板的提示,可以通过查看V系列常见客户问题目录的词条来实现固定模式的快捷检索,此方法适用于已熟悉智能客服目录配置的客户使用。
提问模板【V系列】+【客户问题目录词条】,提问示例:V系列入门指南
目录返回功能
在按照上一章的步骤检索到目标技术资源后,可能会出现已检索的技术资源未能解决问题或者还想继续检索一下其它技术资源的情况,那么以下就如何返回上一级目录和返回初始的V系列常见客户问题目录给出几个最快捷的方法。
FAQ末尾处返回上级目录
在每一条FAQ的末尾处都有一个“猜您可能还想了解”的菜单,菜单内会关联与该FAQ相似的其它FAQ方便客户快速检索,同时,菜单内的第一条链接也是返回上一级菜单的快捷短语。以下方图片为例,在检索到V85x系列平台各封装型号及功能对照表后,可以点击“芯片规格及性能”返回该FAQ的上级目录,或者点击其它链接跳转到对应的FAQ下。
次级目录下返回上级目录
点击每个次级目录下的最后一个方块按钮都可以快速返回上一级目录。
通过快捷短语返回初始目录
可以通过点击输入栏上方的快捷短语“回到V系列常见客户问题目录”,即可快速返回初始目录。
针对子目录较多且较为常用的“应用开发”及“系统开发”板块,智能客服也提供了通过快捷短语的返回目录的方式,点击相应的快捷短语即可返回相应目录。
全志客户服务平台网址:https://open.allwinnertech.com
-
小时候画在手腕上的表,我让他真正动了起来
小时候,我们总是充满想象力和创造力。
在那个年龄,我们没有真正的手表,但我们总是喜欢在纸上画出自己的手表,仿佛它真的能告诉我们时间。
为了弥补童年的遗憾,作者找到了一个智能手表的开源项目——NWatch,并把他移植到了R128开发板上。
项目简介
本项目基于ZakKemble的开源项目NWatch,与原作者的NWatch不一样的是,作者将其移植到DShanMCU-R128s2-DevKit开发板的同时相比于原作者添加了一些功能,比如优化屏幕刷新,使显示更流畅,以及添加蜂鸣器、旋转编码器、DHT11温湿度传感器。
硬件准备
本项目的基础用意是提供一个综合的示例进行学习参考,所以没有将所有硬件集成到一小块开发板上,而是采用面包板来实现手表功能效果,所需要用到的硬件有以下几个:
- DShanMCU-R128s2-DevKit开发板
- 0.96寸OLED(SSD1306)
- EC11旋转编码器模块
- 红外接收模块+红外遥控器
- 无源蜂鸣器模块
- DHT11温湿度模块
模块 接线 对应引脚 IIC OLED SCK PB00 SDA PB01 EC11 S1 PA24 S2 PA25 KEY PA29 蜂鸣器 BEEP DATA PA26 红外接收 IR DATA PA10 DHT11 DHT11 DATA PA6 软件系统
手表上的所有功能都伴有动画效果。
原作者对软件系统的代码花费了大量时间进行优化渲染,优化的内容就包括了将位图图像从闪存复制到RAM中的帧缓冲区,并通过 SPI 将帧缓冲区发送到 OLED,最终使得手表能够在几乎所有区域的显示中可以保持100+FPS。
一些主要的动画内容:
1.进入和退出睡眠模式时的 CRT 动画(类似于某些 Android 智能手机具有的 CRT 动画)。
2.主要时间数字切换时具有动画效果。
3.菜单有一个向左/向右滚动的动画,选择一个选项将会有当前菜单从屏幕上掉下来的动画效果。二次开发
打开以下文件进行修改:
R128-S2-SDK/board/r128s2/pro/configs/sys_config.fex
IIC引脚配置:
[twi1] twi1_sck = port:PB00<3><1><default><default> twi1_sda = port:PB01<3><1><default><default>
PWM配置:
[pwm6] pwm_used = 1 pwm_positive = port:PA26<4><0><2><default>
接下来添加100ask_r128_demos,首先clone仓库或者下载仓库压缩包到本地,并将仓库目录放在sdk的这个目录下面:
R128-S2-SDK/lichee/rtos-components/thirdparty/100ask_r128_demos
打开文件进行编辑
R128-S2-SDK/lichee/rtos-components/thirdparty/Makefile
在文件的最后面或最前一行加入下面的内容:
obj-$(CONFIG_COMPONENTS_100ASK_R128_DEMOS) += 100ask_r128_demos/
打开文件进行编辑
R128-S2-SDK/lichee/rtos-components/thirdparty/Kconfig
在文件的最后或最前一行加入下面的内容:
source components/common/thirdparty/100ask_r128_demos/Kconfig
源码获取
基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。
- DshanMCU-R128s2-R16N16模组:39.9元
- DshanMCU-R128s2-DEVKIT开发板:59.9元
R128开发板购买链接:https://m.tb.cn/h.5T4uATe?tk=S079W0vCt6v
Gitee源码获取链接:
https://gitee.com/weidongshan/100ask_r128_demos/tree/master/nwatch
GitHub源码获取链接:
https://github.com/100askTeam/100ask_r128_demos/tree/master/nwatch
如果你不想自己编译或者不需要二次开发,那么可以从下方获取固件:
Gitee处Releases获取:
https://gitee.com/weidongshan/100ask_r128_demos/releases/tag/v0.0.1
GitHub处Releases获取:
https://github.com/100askTeam/100ask_r128_demos/releases/tag/v0.0.1
烧写固件到DShanMCU-R128s2-DevKit在新窗口打开后开机会自动启动NWatch任务,如果没有自动启动在串口终端输入命令然后按回车即可nwatch_100ask 3。
更多关于项目的详情可以前往百问网R128综合项目开发案例界面了解。
-
【FAQ】全志R128芯片 如何解决打包时出现的ERROR: update_mbr failed?
打包出现:ERROR: update_mbr failed
24993+0 records in 24993+0 records out 6398208 bytes (6.4 MB) copied, 0.0271082 s, 236 MB/s ERROR: dl file rtos_riscv.fex size too large ERROR: filename = rtos_riscv.fex ERROR: dl_file_size = 1579 sector ERROR: part_size = 1000 sector ERROR: update mbr file fail ERROR: update_mbr failed
这是因为 rtos_riscv.fex 太大了,分区容量设置过小。
解决方法
- 确定打包使用的分区表
运行打包命令,找到打包使用发分区表。例如这里使用的是
sys_partition_xip.fex
- 编辑分区表
使用
cconfigs
命令进入目录,找到打包使用的分区表,编辑修改- 找到上面报错的行,修改
size
选项,单位是扇区。对于 NOR 方案请对齐。这里我们修改到7000
- 重新打包,正常通过
-
【开发板试用】新一期的全志XR806开发板免费试用,支持FreeRTOS+Openharmony
开发板数量:全志XR806开发板50块
申请方式:极术社区在线填表 aijishu.com/e/1120000000426896
系统推荐:FreeRTOS,全志在线免签NDA下载 https://xr806.docs.aw-ol.com/rtos/env/
活动时间:申请截止9.22,试用截止10.31
全志XR806开发板是一款基于XR806芯片设计,高度集成WiFi/BLE/常用外设,可供开发者进行方案评估、DIY或小规模产品研发,可广泛应用于智能家居、智能楼宇、智能城市和工业互联等领域。
-
兼容802.11b/g/n,集成TCP/IP协议栈及WLAN协议栈、支持完整网络服务协议
-
支持BLE 5.0,支持完整低功耗蓝牙服务GATT,SIG mesh完整协议栈
-
内置低功耗PMU,支持智能低功耗管理系统,多级唤醒源设置;支持WiFi超低功耗保活,广泛应用各类低功耗应用场景
-
丰富的io接口,板载15个可编程GPIO,支持常用外接接口,如SPI/UART/I2C/PWM/ADC/IrDA TX/RX
-
全安全架构,TrustZone/安全总线/安全Memory/安全eFuse/安全启动/安全Debug接口/Flash实时加解密
试用要求
在收到开发板一个月内,参与试用的开发者需要在极术社区或全志在线开发者社区发布基于XR806的应用文章(不包含开箱体验及基础烧录,点灯类体验文章),完成发文任务的极术社区会邮寄相应礼品,标题请以【XR806开发板试用】+自主标题命题。
优秀案例
FreeRTOS软件入门
XR806 是一颗高集成度无线应用MCU,其集成了ARMv8-M 内核、IEEE 802.11b/g/n Wi-Fi 子系统、BLE 5.0子系统、电源管理系统、高级别的安全系统以及丰富的外设接口,具有优秀的射频性能、稳定性、可靠性和超低功耗。
芯之联软件开发平台,具有丰富的组件和灵活的应用框架,可满足用户对Wi-Fi、BLE、低功耗、安全等多方面的需求,可协助用户快速开发智能产品应用,包括物联网(IoT)、智能家居、云连接等。
芯之联软件开发平台,具有丰富的组件和灵活的应用框架,可满足用户对Wi-Fi、BLE、低功耗、安全等多方面的需求,可协助用户快速开发智能产品应用,包括物联网(IoT)、智能家居、云连接等。
-
-
米尔T113-S3核心板,更适合工业HMI的智能方案
随着工业4.0的快速推进,人机交互应用的覆盖面也越来越广泛。像3D打印行业会专门为3D打印机配备上智能化的操作屏幕,汽车仪表盘和中控盘也开始往智能平板的方向发展,传统的工业HMI面板也在寻求升级转型。
为了更好的满足工业行业在生产操作过程中进行简单的编程和处理输入数据等智能化操作,满足企业对高清化、集成化和智能化交互需求,以入门级HMI方案为例,目前市场多以MCU+RGB屏+电阻触摸屏构成,米尔给出的T113方案相对MCU方案可以带来更多优势。
米尔T113-S3核心板MYC-YT113X采用6层PCB设计,将Nand Flash/eMMC、EEPROM、DC/DC电路集成在了大小为37mm×39mm开发板上。核心板与底板之间通过SMD焊接,引脚使用邮票孔封装,一共有140Pin。
图片
图片
MYC-YT113X核心板与该核心板配套的底板引出了大量的功能接口,几乎满足了T113-S3的所有功能需求。底板采用12V/2A直流供电,搭载了千兆以太网接口、1路USB2.0协议M.2 B型插座的5G/4G模块接口、板载1路USB2.0协议的WIFI模块、1路单通道LVDS显示接口、1路双通道LVDS显示接口、1路音频输入输出接口、2路USB HOST Type A、1路USB OTG Type-C接口、1路USB debug Type-C接口、1路Micro SD接口、1路兼容树莓派扩展接口。‘
米尔基于全志T113-S3设计的核心板,它的特色在于不仅限于性价比高,还在打破零售核心板100元界限的同时,具有双核Cortex-A7+HiFi4 DSP多核异构工业级处理器。此外,米尔T113-S3核心板的最低零售价仅79元,还分为Nand Flash和eMMC两种存储方式售卖:
256MB Nand Flash配置:79元
4GB eMMC配置:99元
购买开发板时米尔还会提供与开发板配套的Linux BSP源码以及丰富的软件开发手册。
更多关于开发板的详细信息可以前往【全志在线官网-应用方案】栏目:
https://www.aw-ol.com/solutions/9 -
小米机器狗二代来了,比上一代更瘦、更快、更强!NVIDIA主控+全志MR813+全志R329协处理器
能看、能听、能感知,CyberDog2确实如雷军所调侃的那样,它比从前“更狗了”。
在刚刚结束的秋季新品发布会上,小米发布了最新的仿生四足机器人CyberDog2,虽然没有在发布会现场进行实物展示,但通过预录制的演示视频,我们可以清楚地看到CyberDog2在增加了一款协处理器的情况下,可以完成更复杂的连续后空翻运动,更智能的识别以及追踪,更强烈的语音智能交互等上一代所不具备的功能。
作为时隔两年再次面世的迭代产品,采用了杜宾犬形态设计的CyberDog2无论是从外观形态、运动能力还是与用户的交互上来看,都较第一代更接近大家平时家养的宠物狗。它从内到外全面进化,支持手势互动,语音控制,人脸识别,AIoT 联动,融合跟随避障。还包含 12 个 CyberGear 微电机,AI 自研平衡动态算法,AI 多模态融合感知决策系统。
CyberDog2不仅保留了NVIDIA主控+全志MR813协处理器的组合,为了增强CyberDog2的人机交互体验,还新增加了在智能音箱市场被广泛使用的全志R329作为“小脑”来使用。
更智能
CyberDog2的主控Jetson Xavier NX核心模块是一台用于嵌入式和边缘系统的 AI 超级计算机,在常规功率下拥有21Tops的算力,2个 NVDLA 引擎深度学习加速器、7路VLIW视觉处理器,其性能已经初步具备了L3级别自动驾驶的算力需求。较高的算力足以支持复杂的智能交互,保证了CyberDog2可以毫无障碍地处理从传感器系统捕获的大量数据,使其能够更精准地进行机器狗的避障及路径选择。
我们所能看到的CyberDog2所可以做到的像地图构建、路径导航、紧急避障、路径规划、目标跟踪、连续后空翻等多项高仿真、高难度动作,除了有“大脑”完成的精确数据处理,也离不开CyberDog2身上所带有的传感器提供的有效保障。
更精准
相较于初代的四足机器人,CyberDog2的传感器数量从11组增加到了19组,除了Intel Realsense D450深度摄像头、TOF传感器、GPS模组等,还增加了激光雷达、UWB传感器等部件来组成新一代的融合感知系统。
得益于核心部件的升级,现如今的扫地机器人已经具备结构光、3D Tof、AI识别等多种组合避障方式,这些避障方式都与广泛使用在扫地机上的TG30激光雷达息息相关。‘’
扫地机器人身上这么多复杂的运动功能,全都交由CyberDog2的协处理器全志MR813进行控制。
MR813已经在扫地机器人产品上被小米、石头、追觅等知名厂商广泛应用,作为市面上主流的扫地机主控方案。作为CyberDog2的协处理器,MR813主要负责MPC算法的执行、运动控制、电源系统管理和OTA系统管理等工作,像运动平衡、倒地恢复等功能都由MR813在接收指令后去驱动机器狗身上的12个CyberGear微电机做出高精度的动作响应。
更强大
电机,就是将电压信号转化为转矩和转速,从而可以像赛车的马达一样驱动控制对象,是伺服系统的重要组成部分。一般来讲,电机越多,机器人的自由度就越高。搭载了12个CyberGear的CyberDog2就有12个四肢自由度,奔跑速度可以达到1.6m/s。
单个CyberGear的持续扭矩达到4N.m,峰值扭矩更是达到12N.m,而带有12个CyberGear的CyberDog2峰值扭矩可以达到37.85N.m,这个数值可以驱动整机重量约9KG的CyberDog2完成更加复杂的扭屁股、太空步和芭蕾舞步这样的动作。
CyberGear诞生的由来也带有一点喜剧色彩。雷军在发布会提到,此前有公司买CyberDog只是专门为了拆里面的微电机。因此随着CyberDog 2的发售,小米也发布了自研的CyberGear微电机,并单独将CyberGear微电机面向行业开售,而擅长交朋友的雷总也是给单个CyberGear微电机定价 499 元。
更仿生
除了在尺寸和重量方面的改变,CyberDog 2还实现了更仿生的手势互动、语音控制、人脸识别,并增加了与小爱音箱Play增强版相同的红外发射模组,化身智能的家庭管家,可以配合上语音交互来控制家电,实现AIoT 联动等智能交互方面的功能提升,做到了能看、能听、能感知,实现了从内到外的全面进化。
在对着机器狗做出特定的动作的时候,例如用手掌向左或向右平行移动,机器狗就会往相应的方向移动;在通过语音词唤醒机器狗的时候,机器狗头部会发出蓝色的呼吸灯,代表它已经在等待你的下一步指示。
不难看出,除了手机相机团队带来的动作识别功能,语音交互的功能其实来自于小爱同学智能音箱的赋能,CyberDog2的另一块协处理器就是被小爱同学、天猫精灵、小度等智能音箱广泛使用的全志R329。
雷军在发布会上表示,“推出CyberDog 2是为了推动行业快速发展,让科技更好地服务于人类”。高度开源是CyberDog平台的核心竞争力,目前已有包括清华大学、中科大等116家科研机构和高校参与了第一代CyberDog的452个研究项目,并发布了例如XR及数字孪生技术在混合显示环境中的融合应用,小米与高校或科研机构共同的目标就是希望机器人能够早日实现独立自主的操作,服务于日常生活。
CyberDog2在一代的基础上,创新性地开放了图形化编程界面,开放了超过100个功能接口,并开源了视觉算法和机器狗的图纸,为广大开发者提供了仿生四足机器人的底层开发平台。
但就目前来看,CyberDog平台还不适合普通用户日常使用,此次超过100个的功能接口的高度开源开放,是小米为了邀请更多的开发者加入共创项目,共同推动机器人产业的整体发展。
-
花费400元,DIY了一台A133平板电脑
项目作者:flyn
简介:DIY爱好者,在立创开源平台开源了个人的DIY项目4G手机MiniPhone以及焊接工具焊台、恒温加热台和多功能控制台。
这是一款基于全志A133处理器DIY的平板电脑,可运行android和linux系统。平板搭载一块7寸1024X600分辨率的触摸液晶屏以及3000mAh的电池,且内置双频wifi6/BT5.2通信模块,运行内存2GB,内置32GeMMC,可以外接TF卡。
本项目DIY成本共447.3元,花费清单如下:
硬件设计
平板的PCB设计遵循嘉立创4层板免费打样规则,采用了3313层压,1.2mm厚度,线宽线距3.5mil,过孔0.3/0.4,尺寸控制到10x10以内。
元件基本都设计在PCB的正面,可以方便手焊或者是贴片加工,背面是显示屏的fpc连接座,平板元器件参数如下:
- 尺寸:173x109x15mm
- 屏幕:7寸,1024x600分辨率
- 处理器:Allwinner A133 4核Cortex A53
- 内存:2G LPDDR3
- 存储:32G EMMC,可外扩TF卡
- 电池:3.7V 3000mAh锂电池
- 操作系统:Android 10
- WIFI:双频WiFi6
- 蓝牙:BT5.2
- 音频接口:3.5mm耳机接口
- 数据接口:USB2.0x1,USB OTGx1
- 充电接口:Type-C口
布线设计
为了能够在嘉立创免费打板,PCB采用了4层板的设计,而A133是没有内置DDR的,所以如何将A133扇出和DDR走线设计将是PCB设计中的两个难点。
A133封装是0.5pitch的BGA,需要扇出走3.5mil线宽线距,为了方便走线,有部分焊盘改成椭圆形,DDR尽量走3W,而且免费层压结构最接近的是3313结构,走50阻抗要求线宽6.16mil,4mil的话在阻抗上有偏差。
综上所述,层压设计为信号层-GND层-VCC层-信号层,DDR布线区域为信号-GND-信号-VCC。注意VCC-CPU和VCC-SYS等这些大电流的电压走线,要尽量粗和短,换层连接处多打过孔。
布线前最好能找到一些官方的硬件设计指南资料之类的,有助于避坑确保一板过,本项目就参考了Whycan哇酷开发者社区和全志在线开发者社区内的一些设计资料。
固件及测试
设计的初衷是做一个可以正常使用的平板,并且可以用来学习linux,故本次项目无需编写太多代码,直接烧入从论坛获取的其它平板的镜像文件即可使用。
拿到焊了部分元件的PCB板后,可以先通过DragonHD软件进行DDR测试。
验证开发板无问题后,可以使用PhoenixCard软件,将镜像文件烧入到TF卡中来启动,此时内置的EMMC尚未使用。
PCB在硬件上也是接出了调试口以及部分外设的GPIO,可以用来扩展模块学习。可用来调试和查看信息,Jtag口目前未使用,串口引脚如下图所示:
设置波特率115200即可通讯,接口因为尺寸原因用的是1.27间距的排座,后面有设计转接板转成2.54间距的插针,方便调试和使用。
外壳设计及组装
考虑到成本,也为了适应不同需求设计,外壳采用3D打印,且分为:外框、中间层、背板三部分。
- 外框采用PLA,具有较高的硬度;
- 中间层采用X树脂,SLA光敏树脂材料成本低;
- 背板如有散热要求可以用铝型材cnc,可直接贴在处理器和ddr上,想要低成本可以选择PLA或者SLA。
中间层扣在外框上作为PCB和显示屏的固定支架,觉得扣不牢的可以选择小螺丝继续固定。显示屏是直接卡在外框上的,背面和四周可以用双面胶粘住,注意装好后很难拆下来。请保证屏没有问题后再安装,这样设计的目的是让屏幕和外框齐平(建议外框颜色选择黑色和屏幕比较搭)。
平板结构比较简单,可以参考以下方式安装:
- 先将中间层卡在外框上,再将PCB板固定在中间层。
- 接好液晶屏的fpc排线,将液晶屏背面贴好双面胶后扣进外框。
- 连接好电池、扬声器、天线等并固定。
- 盖上后盖,拧紧螺丝。
使用体验
资料获取
本项目所有资料均已开源,需要【电路+代码+视频演示】源文件,并且想要自己DIY平板学习的伙伴,请戳文末的“阅读原文”获取。
工程地址:https://oshwhub.com/flyn/flPad
-
ClockWork - GameShell,组装起了万千极客的童年
对于热衷于复古游戏及开源掌机的极客玩家来说,开源硬件的普及,让更多极客可以有机会体验到亲手DIY掌机的乐趣,属于开源掌机的圈子也由此应运而生。
由一群复古游戏爱好者组成的Clockwork团队希望更进一步拓展开源掌机的拓展性和自定义性,推出了一款可以自行组装的模块化掌机——GameShell,该掌机一经发布,就在众筹网站上赢得了来自全球60多个国家和地区的极客爱好者超过30万美元的支持。
GameShell证明了复古的游戏掌机依然有广阔的市场,但事实上,GameShell并非传统意义上的游戏掌机。
模块化是GameShell最大的特点,它的每个部分都是独立并且可以自由搭配,而除此之外,它还是一个基于Linux的开源终端设备,你可以将它视作一款可编程的便携设备,也可以通过学习简单的编程来制作属于自己的游戏,它将发挥多大的功能,完全取决于极客爱好者的脑洞有多大。
可组装的模块化设计
GameShell的颜值很高,并且贴心的配置了白、黄、红三种配色,在造型上也参考了GBC的经典设计。与购买其它掌机产品不同,你与GameShell的第一次见面并不是它的完整体,而是像高达那样零散的部件,还需要你自己动手将它组装起来。
不同于乐高或者高达的拼装,GameShell的拼装没有复杂的拼接技巧以及严格的组装规则,拼装的说明书也十分简洁,且附带了为DIY极客提供的个性化开源3D打印模型文件和硬件原理图,套装里的实物部件则包含有主板、键盘、声音、显示、电池、外壳等掌机必要的模块,具体参数型号如下:
- ClockworkPi V3.1开发板,采用全志R16-J芯片为主控;
- ATmega168p可编程键盘;
- 320×240的2.7寸的RGB屏,最高支持60fps显示;
- 用来扩展L1、L2,R1、R2甚至更多按键的Lightkey 按键;
- 双扬声器;
- 1200mAh的可充电锂电池;
- 前后外壳;
- 32GB MicroSD卡;
- 其它必要的线材;
整体拼装并不复杂,只需要稍微注意以下部件之间的拼接,否则可能会导致线材链接的时候出现问题要重新来过,也可以按照拼装指南一步一步保证万无一失。
除了在外观设计上参考了GBC,在按键设计上也参考了任天堂红白机手柄的经典设计。从这台掌机的按钮上可以看到一些经典元素的结构,十字键和上方四个长方形按钮的设计,是任天堂第一代主机FC上手柄的方向键,有趣的是,任天堂红白机和GameShell都是使用的全志R16芯片作为主控。
组装好之后的机身后背的Lightkey略显突兀,有点破坏了掌机整体的美感。当然如果平时玩游戏时并不需要使用到额外的按键,也可以把它单独拆卸下来,这样并不会影响其它功能的使用,这也是模块化的优势所在,拆装自如,甚至还可以自己开发一些模块组装在一起。
模拟器及开源游戏引擎
GameShell在出厂时就自带了支持4.1x版本的Linux内核的Clockworkpi OS,并内置了一些基础的游戏,组装好之后可以直接使用或者通过Clockworkpi OS来DIY一款属于自己的游戏。
Clockworkpi OS与平时常见的安卓系统类似,在设置界面可以看到飞行模式、WIFI、音量、背景亮度、语言等设置内容。除此之外,Clockworkpi OS内置了PICO-8、TIC-80、Love2D 等各种可编程虚拟游戏平台,还支持包括 C、C++、Python、JAVA 等各种主流语言及脚本,极客爱好者可以轻易移植或创建各种自己梦想中的独立游戏和应用程序。
此外,GameShell还支持自行编写指令,单独调用Retroarch中的模拟器,可在线下载Bios,并可以自己更新模拟器版本,以在PS1中的运行一些经典的复古游戏为例,表现完美,画面、声音很流畅,基本不会出现问题,其他开源掌机模拟器GameBoy、NES等系列也可以支持,不过部分PGM街机需要超频才能流畅游玩。
拓展功能
开源掌机的最大魅力在于玩家可以按照自己的意愿随意定制自己的设备及系统。
在GameShell顶端有3.5mm耳机插口、mini HDMI插口以及Micro USB插口与开关键,而如果要进行文件传输,还支持AirPlay、Wifi、Tiny Cloud、Micro-USB等途径,有了这些资源接口的帮助,就可以轻松实现类似MP3/MP4甚至是一台小型电脑的功能。
GameShell本身由于硬件限制所以系统并没有自带播放器,有开发者大佬就在掌机上加入了Kodi播放器的安装教程,有了它就可以在掌机上实现流媒体播放,可以看电视听广播。
还有一位《clockwork-gameshell-开源掌机分享群》里的大佬将黄金矿工通过love2d移植出来到了GameShell上可以游玩,并无偿开源给每一位开发者使用。
对于一些极客爱好者来说,能够在如此小巧的设备上实现视频播放功能,无疑是一种挑战和成就感。除了影音功能,GameShell的最大亮点在于它是一款开源的个人电脑。它搭载了Linux操作系统,用户可以自由地定制和开发自己的游戏和应用程序。这为喜欢探索和创造的人提供了一个无限的创作空间,无论是开发游戏、编写代码还是设计应用程序,GameShell都可以满足用户的需求。
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
XR806 SDK 拉取
以
xr806_sdk
为例,讲述如何拉取 SDK。新建文件夹保存 SDK
使用
mkdir
命令新建文件夹,保存之后需要拉取的 SDK,然后cd
进入到刚才新建的文件夹中。$ mkdir xr806_sdk $ cd xr806_sdk
初始化 Repo 仓库
使用
repo init
命令初始化仓库,Tina-MR813-OPEN
的仓库地址是https://sdk.aw-ol.com/git_repo/XR806/manifest.git
需要执行命令:$ repo init -u https://sdk.aw-ol.com/git_repo/XR806/manifest.git -b master -m xr806_sdk.xml
如果提示
Username for 'https://sdk.aw-ol.com':
请输入 全志在线开发者论坛 的用户名和密码。(注:需要全志在线开发者论坛LV2等级以上用户才有权限拉取 SDK)拉取 SDK
使用命令
repo sync
拉取 SDK$ repo sync
由于 SDK 普遍较大,拉取可能需要一定的时间。
创建开发环境
使用命令
repo start
创建开发环境分支$ repo start xr806_sdk --all
至此,SDK 获取完毕。
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
MR813 SDK 拉取
以
Tina-MR813-OPEN
为例,讲述如何拉取 SDK。新建文件夹保存 SDK
使用
mkdir
命令新建文件夹,保存之后需要拉取的 SDK,然后cd
进入到刚才新建的文件夹中。$ mkdir Tina-MR813-OPEN $ cd Tina-MR813-OPEN
初始化 Repo 仓库
使用
repo init
命令初始化仓库,Tina-MR813-OPEN
的仓库地址是https://sdk.aw-ol.com/git_repo/MR813_Tina_OPEN/manifest.git
需要执行命令:$ repo init -u https://sdk.aw-ol.com/git_repo/MR813_Tina_OPEN/manifest.git -b master -m Tina-MR813-OPEN.xml
如果提示
Username for 'https://sdk.aw-ol.com':
请输入 全志在线开发者论坛 的用户名和密码。(注:需要全志在线开发者论坛LV2等级以上用户才有权限拉取 SDK)拉取 SDK
使用命令
repo sync
拉取 SDK$ repo sync
由于 SDK 普遍较大,拉取可能需要一定的时间。
创建开发环境
使用命令
repo start
创建开发环境分支$ repo start smartx-mr813-tina-v1.1 --all
至此,SDK 获取完毕。
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
R329 SDK 拉取
以
R329-Tina-jishu
为例,讲述如何拉取 SDK。新建文件夹保存 SDK
使用
mkdir
命令新建文件夹,保存之后需要拉取的 SDK,然后cd
进入到刚才新建的文件夹中。$ mkdir R329-Tina-jishu $ cd R329-Tina-jishu
初始化 Repo 仓库
使用
repo init
命令初始化仓库,R329-Tina-jishu
的仓库地址是https://sdk.aw-ol.com/git_repo/R329_Tina_jishu/manifest.git
需要执行命令:$ repo init -u https://sdk.aw-ol.com/git_repo/R329_Tina_jishu/manifest.git -b master -m R329-Tina-jishu.xml
如果提示
Username for 'https://sdk.aw-ol.com':
请输入 全志在线开发者论坛 的用户名和密码。(注:需要全志在线开发者论坛LV2等级以上用户才有权限拉取 SDK)拉取 SDK
使用命令
repo sync
拉取 SDK$ repo sync
由于 SDK 普遍较大,拉取可能需要一定的时间。
创建开发环境
使用命令
repo start
创建开发环境分支$ repo start smartx-r329-tina-jishu --all
至此,SDK 获取完毕。
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
V853 SDK 拉取
以
tina-v853-open
为例,讲述如何拉取 SDK。新建文件夹保存 SDK
使用
mkdir
命令新建文件夹,保存之后需要拉取的 SDK,然后cd
进入到刚才新建的文件夹中。$ mkdir tina-v853-open $ cd tina-v853-open
初始化 Repo 仓库
使用
repo init
命令初始化仓库,tina-d1-h
的仓库地址是https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git
需要执行命令:$ repo init -u https://sdk.aw-ol.com/git_repo/V853Tina_Open/manifest.git -b master -m tina-v853-open.xml
如果提示
Username for 'https://sdk.aw-ol.com':
请输入 全志在线开发者论坛 的用户名和密码。(注:需要全志在线开发者论坛LV2等级以上用户才有权限拉取 SDK)LV2 升级需要 49积分,获取积分方法如下:
① 1次主题帖发布(发帖):50积分
② 1次有效回帖:25积分
③ 1次点赞:6积分
④ 每日登录:6积分拉取 SDK
使用命令
repo sync
拉取 SDK$ repo sync
由于 SDK 普遍较大,拉取可能需要一定的时间。
创建开发环境
使用命令
repo start
创建开发环境分支$ repo start devboard-v853-tina-for-awol --all
至此,SDK 获取完毕。
通过此方式下载的V853 SDK在打上补丁后同样适用于V851s/V851se
具体实现方式步骤可以参考:https://bbs.aw-ol.com/topic/2513/
-
回复: 全志在线开源芯片 新 SDK 平台下载方法汇总
D1-H/D1s SDK 拉取
以
tina-d1-h
为例,讲述如何拉取 SDK。新建文件夹保存 SDK
使用
mkdir
命令新建文件夹,保存之后需要拉取的 SDK,然后cd
进入到刚才新建的文件夹中。$ mkdir tina-d1-h $ cd tina-d1-h
初始化 Repo 仓库
使用
repo init
命令初始化仓库,tina-d1-h
的仓库地址是https://sdk.aw-ol.com/git_repo/D1_Tina_Open/manifest.git
需要执行命令:$ repo init -u https://sdk.aw-ol.com/git_repo/D1_Tina_Open/manifest.git -b master -m tina-d1-h.xml
如果提示
Username for 'https://sdk.aw-ol.com':
请输入 全志在线开发者论坛 的用户名和密码。(注:需要全志在线开发者论坛LV2等级以上用户才有权限拉取 SDK)拉取 SDK
使用命令
repo sync
拉取 SDK$ repo sync
由于 SDK 普遍较大,拉取可能需要一定的时间。
创建开发环境
使用命令
repo start
创建开发环境分支$ repo start product-smartx-d1-h-tina-stable-v2.0 --all
至此,SDK 获取完毕。
-
全志在线开源芯片 新 SDK 平台下载方法汇总
1、新 SDK 平台下载 D1-H/D1s SDK
2、新 SDK 平台 SDK
3、新 SDK 平台下载 R329 SDK
4、新 SDK 平台下载 MR813 SDK
5、新 SDK 平台下载 XR806 SDK
注意!!!
注意!!!
在拉取任意一种SDK前,都需要【达到2级】且需要【先配置安装 Repo 工具】!!!
-> -> ->论坛升级LV2获取下载权限专用水帖 LV2 UPUPUP <- <- <- 回复该贴【两条】评论后请耐心等待管理员审核
GIT配置具体步骤如下
SDK 使用 Repo 工具管理,拉取 SDK 需要配置安装 Repo 工具。
Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.
Repo官网:git-repo
安装 Repo 工具
可以用包管理器进行安装:
# Debian/Ubuntu. $ sudo apt-get install repo # Gentoo. $ sudo emerge dev-vcs/repo
也可以手动单独安装:
$ mkdir -p ~/.bin $ PATH="${HOME}/.bin:${PATH}" $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo $ chmod a+rx ~/.bin/repo
国内镜像源安装:
$ mkdir -p ~/.bin $ PATH="${HOME}/.bin:${PATH}" $ curl https://mirrors.bfsu.edu.cn/git/git-repo > ~/.bin/repo $ chmod a+rx ~/.bin/repo
由于谷歌服务器位于国外,每次运行时Repo会检查更新导致下载较慢,国内用户可以配置镜像源。否则会像下图一样卡住不动然后失败。
更换镜像源
Repo 的运行过程中会尝试访问官方的 git 源更新自己,更换镜像源可以提高下载速度。将如下内容复制到你的
~/.bashrc
里$ echo export REPO_URL='https://mirrors.bfsu.edu.cn/git/git-repo' >> ~/.bashrc $ source ~/.bashrc
如果您使用的是 dash、hash、 zsh 等 shell,请参照 shell 的文档配置。
配置保存身份认证
新版本 git 默认加强了安全性,身份认证不会保存,导致拉取 repo 需要多次输入密码,可以用下列命令配置:
git config --global credential.helper store
常见问题
-
卡在
Downloading Repo source from https://gerrit.googlesource.com/git-repo
不动。- 国内网络较慢,参照上面的更换镜像源解决。
-
配置保存身份认证无效不启用
- 检查是否运行了
sudo git config --global credential.helper store
使用了sudo
后保存的信息会存储到root
用户下并非当前用户。
- 检查是否运行了
-
出现错误
fatal: cannot make directory: File exists
- 之前拉取了 repo 但是不完整,需要删除
.repo
文件夹重新拉取
- 之前拉取了 repo 但是不完整,需要删除
-
-
回复: D1-H 资源下载左边SDk目录展开没有
@cool_sir 更换获取方式了,详情见各个芯片的在线文档~
https://d1.docs.aw-ol.com/study/study_3getsdktoc/ -
请叫我电源管理大师!3块钱就能做一个AXP202电源管理模块
项目作者:mondraker
2022年度立创开源达人,也是一名刚刚本科毕业的自动化专业的大学生,在立创开源了“电源模块”和“雪花的专栏”两个工程专辑,愿望是持续给大家带来实用,好用和酷炫的开源作品。
本项目是来自立创开源平台的开源作品《AXP202【DIY设备电源管理迈入新时代】》,该开发板基于AXP173电源管理模块的升级版——AXP202芯片进行开发,方便开发者彻底摆脱苦苦寻找定制芯片的烦恼。该模块资料齐全,并且通过全功能验证,更重要的是具有超凡性价比,货源充足。
项目简介
该项目已经过长期验证,提供封装,3D文件等等,资料充足(包含IDF例程以及Arduino例程,中英文手册),并且这个邮票孔模组还可以在嘉立创免费下单打样,在打板的时候不选半孔工艺,收到板子后再手磨一下就可以使用了。
由于芯片功能繁多,本文将分为功能、硬件、软件以及相关资源链接四大部分进行开发板设计原理到使用场景的全方位介绍。
功能设计
在硬件设计时,电源部分一直是万事开头、重中之重。我发现在大家平时的制作里经常讨论的核心问题就是:
- 电源怎么设计
- 求一个体积小的LDO
- 求一个效率高的DCDC
- 求一个电池充电芯片
- 哪里有便宜的电源芯片
还有很多开发者经常遇到的问题:
- 外部输入电源和电池怎么实现高效可靠的电源通路管理
- 怎么实现长按开关机
- 怎么精确的检测电池电量
- 怎么获取电源实时状态
- 低功耗怎么办
有一个芯片——AXP202,他可以实现上述的所有功能,并且体积小、效率高、功耗低、价格香!
如果你还需要5V输出,那么使用模块IPSOUT脚+DCDC5V的buck电路即可轻松实现,输出能力取决于外部供电的输入能力,且芯片专门有一个EXTEN脚控制外部DCDC芯片的EN脚,节省NCU的功能引脚,太香了。
硬件设计
AXP202模组做成邮票孔模块类型可以方便大家直接使用,因为这种芯片外围的阻容设计都有一些故事。
为方便PCB电路板的设计与焊接,增加成功率,本设计采用模块化思想,将AXP202外围电路封装为一个邮票孔模块焊接在主板上,将可用户自定义的管脚全部引出,这样就可以方便的在主板上使用相应阻值的电阻来配置这些引脚。
为统一封装,本次设计使用了标准2.54mm间距LCC邮票孔,便于焊接,使用了4层PCB设计用以缩小封装体积,引出全部必要的功能。
开发板引出了所有的功能,芯片外部可设置的一些引脚可以使用跳帽设置,并且加入了一个5V的DCDC升压,用以基本测试,地线引出较少,可以自己酌情添加,或者根据要使用的主控芯片自己绘制一个测试板。
相较于普通的I2C模块,电源管理模块还要给主控芯片提供电源,除此之外,AXP202必须在开机状态下,一定要共地,否则两者之间是无法正常通信的。
本模块P2P兼容AXP209电源管理芯片,程序也兼容,只是AXP209比AXP202多了一个OTP解码器,代码中操作寄存器即可。
打板说明
下单打1mm(下面图是1.6mm的非常厚,仅用以演示),选择四层板,不需要半孔工艺,打板寄回来之后是卷边的,需要先用镊子把半孔里多余的铜抠出来,然后用800目左右砂纸磨掉就可以正常使用了。
软件部分
AXP20x库以及Arduino相关例程,均来自于Lewis He大佬,感谢大佬的开源(开源协议:MIT)
后续自己的例程都将围绕该库编写,自己添加了其它一些常用的寄存器与功能,比如LED指示灯的充电控制等等,以后的修改将同步更新至GitHub/Gitee。
- 该库同时兼容AXP173/192/202等
- 基本实现了芯片所有的功能
- 代码中有相关功能注释,可以配合官方寄存器文档进行学习与编写
- 代码中使用独立的I2C接口进行编写,移植至其他平台只需要写一个接口库即可,非常方便
本项目所有资料均已开源,想获取资料自己DIY学习的伙伴,https://oshwhub.com/mondraker/axp202-zeng-ge-yan-zheng
-
BliKVM v4,基于芒果派H616的KVM解决方案,开箱、连接,使用手把手演示视频
BLIKVM 是一款开源 KVM over IP 软件,可帮助您远程管理服务器或工作站,无论目标系统的健康状况如何,目前可与 Raspberry Pi CM4 硬件、Raspberry Pi HAT 或 PCIe 板配合使用。
还有一种更紧凑、可能更便宜的型号正在开发中,该型号会适配Mango Pi 的最小模组mCore-H616。
-
回复: 才发现根文件系统里没有vi,还有其他办法编辑文本吗?
@zznzzn 除了vi、vim,sed也可以操作文件读、写、删、替换等操作;也使用echo命令和cat命令将内容输出文件并查看内容。
-
【开源硬件】全志芯片系列优秀开源工程分享第三期
“全志芯片合集”
正式上线立创开源硬件平台
涵盖多系列全志芯片
开源智能家居、游戏掌机等
多个领域的开源应用工程
. . . . . .
Yuzuki Chameleon卡片电脑
Yuzuki Chameleon 变色龙,基于全志 H616 的树莓派A版型开发板,板载风扇槽,散热器固定孔,可以当机顶盒或者卡片电脑使用。
开发板板载4个USB Type C 接口,分别为3个HOST和一个OTG,支持USB摄像头与采集卡输入。H616支持HDMI显示,板载一个 HDMI接口;同时板载XR829 蓝牙/WIFI模组和引出RJ45百兆接口;板载eMMC与TF卡槽;40 Pin GPIO,可以扩展 SPI LCD 显示屏,千兆以太网,麦克风阵列,CAN收发器,温湿度传感器,加速度传感器等等。
系统支持Ubuntu20.04、Armbian、Tina、Android、Android TV10、Android TV10......
开源项目地址:
https://oshwhub.com/gloomyghost/yuzukih616H616Mini开发板
H616Mini开发板在设计上参考的是基于全志H616的Yuzuki Chameleon卡片电脑,不同的是改开发板采用核心板和扩展板的方式进行设计,两板通过BTB连接。
板载DDR3,EMMC,SD卡槽,USB,UART及WIFI芯片,通过TypeC接口引出USB以及Debug串口,方便查看调试信息。采用核心板加扩展板的形式方便插拔,可快速变更拓展板实现不同功能。
支持的系统和Yuzuki Chameleon卡片电脑相同,目前刷入香橙派Ubuntu固件,测试USB,HDMI等接口功能正常。
开源项目地址:https://oshwhub.com/gao-shi-qing-tuan-dui/h616mini
全志H6开发板
基于全志H3设计的小体积开发板。适用于全志H2,H3,H5。
开发板板载两颗DDR3 256M 内存,32G-eMMC,贴片TF卡和插卡可选。板载WIFI-AP6181。打板参为6层 1.6毫米板厚。阻抗选择JLC06161H-3313阻抗结构。
用全志测试软件增加散热的情况下最高DDR-CLK频率是336,需要降频使用,目前HDMI输出,TF卡,和USB测试成功。其他部分正在测试。
开源项目地址:https://oshwhub.com/dingcheng/quan-zhi-h5-mini-pc-v2-0
-
100ASK_V853-PRO开发板部署YOLOV5自定义模型
0.前言
本章讲述如何训练自定义数据集生成模型,部署到100ASK-V853-PRO开发板上。这里假设您已经搭建好YOLOV5-V6.0的环境,搭建环境参考:YOLOV5-V6.0环境搭建 。如果您没有阅读过100ASK-V853-PRO开发板支持yolov5模型部署文章,请先按照这篇文章进行操作。
下面操作仅演示如何去训练自定义模型、导出模型、转换模型、模型部署。注意:训练模型对于电脑需要有一定的要求,如果电脑性能较弱可能会导致训练效果较差,从而导致模型精度较低。
参考链接:Train Custom Data - Ultralytics YOLOv8 Docs 1
测试体验镜像:v853_linux_100ask_uart0.img(yolov5-100ask <模型文件> <测试图像>)
模型文件:network_binary.nb
yolov5-100ask应用包:yolov5-100ask.tar.gz1.下载数据标注工具
数据标注工具:[Releases · heartexlabs/labelImg · GitHub]
点击上述红框下载,下载完成后解压压缩包,双击打开labelImg.exe文件。
打开后等待运行,运行完成后会进入如下标注工作界面。
关于LabelImg更多的使用方法,请访问:https://github.com/heartexlabs/labelImg
由于LabelImg会预先提供一些类供您使用,需要手动删除这些类,使得您可以标注自己的数据集。步骤如下所示:
进入LabelImg程序目录中的data目录中,打开predefined_classes.txt文件,删除文件中所有预定义的类后保存并退出即可。
2.创建数据集目录
在任意工作目录中创建images文件夹和labels文件夹分别存放图像数据集和标注信息。这里我演示仅使用少量图像样本进行标注,在实际项目中需要采集足够的图像进行标注才拿满足模型的准确率和精度。
例如我在100ask-yolov5-image目录中创建有images文件夹和labels文件夹,如下所示,创建images文件,存放图像数据集,创建labels文件夹,该文件夹用于后续存放标注数据。
3.标注图像
打开LabelImg软件后,使用软件打开数据集图像文件夹,如下所示:
打开后,修改输出label的文件夹为我们创建的数据集目录下的labels文件夹
下面我演示标注过程,以百问网的开发板为例,标注三块开发板
当你点击Save后即表示标注完成,标注完成后后会在labels目录下生成classes.txt(类别)和图像中标注的类别即位置信息。
下面为LabelImg快捷键目录:
Ctrl + u Load all of the images from a directory Ctrl + r Change the default annotation target dir Ctrl + s Save Ctrl + d Copy the current label and rect box Ctrl + Shift + d Delete the current image Space Flag the current image as verified w Create a rect box d Next image a Previous image del Delete the selected rect box Ctrl++ Zoom in 经过标注大量的图像后,labels文件夹如下图所示
4.划分训练集和验证集
在模型训练中,需要有训练集和验证集。可以简单理解为网络使用训练集去训练,训练出来的网络使用验证集验证。在总数据集中训练集通常应占80%,验证集应占20%。所以将我们标注的数据集按比例进行分配。
在yolov5-6.0项目目录下创建100ask文件夹(该文件夹名可自定义),在100ask文件夹中创建train文件夹(存放训练集)和创建val文件夹(存放验证集)
在train文件夹中创建images文件夹和labels文件夹。其中images文件夹存放总数据集的80%的图像文件,labels文件夹存放与images中的文件对应的标注文件。
在val文件夹中创建images文件夹和labels文件夹。其中images文件夹存放总数据集的20%的图像文件,labels文件夹存放与images中的文件对应的标注文件。
5.创建数据集配置文件
进入yolov5-6.0\data目录下,创建data.yaml,文件内容如下所示:
train: 100ask\train\images # train images val: 100ask\val\images # val images nc: 3 # number of classes names: ['T113', 'K510', 'V853'] # class names
6.创建模型配置文件
进入models目录下,拷贝yolov5s.yaml文件,粘贴并models目录下重命名为100ask_my-model.yaml,例如:
修改100ask_my-model.yaml中类的数目为自己训练模型的类数目。
6.修改训练函数
打开yolov5-6.0项目文件夹中的train.py,修改数据配置文件路径,如下图红框所示:
parser.add_argument('--cfg', type=str, default='models/100ask_my-model.yaml', help='model.yaml path') parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path')
7.训练模型
在conda终端的激活yolov5环境,激活后进入yolov5-6.0项目文件夹。执行python train.py,如下图所示:
程序默认迭代300次,等待训练完成…
训练完成后结果会保存在runs\train\目录下最新一次的训练结果,如上图所示,此次训练的最好模型和最后训练的模型保存在以下目录中runs\train\exp7\weights
8.验证模型
修改val.py函数,修改如下
parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path') parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp7/weights/best.pt', help='model.pt path(s)')
class Model(nn.Module): def __init__(self, cfg='100ask_my-model.yaml', ch=3, nc=None, anchors=None): # model, input channels, number of classes
打开conda终端输入python val.py
执行完成后的结果保存在runs\val\exp文件下。
9.预测图像
在data目录中新建100ask-images文件夹存放待检测的图像和视频文件。
修改detect.py函数中,模型的路径与检测图像路径。
parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp7/weights/best.pt', help='model path(s)') parser.add_argument('--source', type=str, default=ROOT / 'data/100ask-images', help='file/dir/URL/glob, 0 for webcam')
检测效果如下图所示:
10.导出ONNX模型
修改export.py函数
parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path') parser.add_argument('--weights', type=str, default=ROOT / 'runs/train/exp7/weights/best.pt', help='weights path')
在conda终端输入:
python export.py --include onnx --dynamic
导出的模型会与输入的模型位于同一路径下,假设我输入的模型位于:runs\train\exp7\weights
11.简化模型
简化模型前需要用到onnxruntime依赖包,输入以下命令安装:
pip install onnxruntime==1.13.1 -i https://pypi.doubanio.com/simple/
简化命令如下:
python -m onnxsim <输入模型> <输出模型> --input-shape <输入图像尺寸>
例如:
输入模型路径为runs/train/exp7/weights/best.onnx,输出模型路径为runs/train/exp7/weights/best-sim.onnx
输入图像尺寸固定为640x640。
python -m onnxsim runs/train/exp7/weights/best.onnx runs/train/exp7/weights/best-sim.onnx --input-shape 1,3,640,640
13.查看模型
访问:https://netron.app/ 1
可以看到输入已经固定为640x640,可看到模型有 4 个输出节点,其中 ouput 节点为后处理解析后的节点;在实际测试的过程中,发现 NPU 量化操作后对后处理的运算非常不友好,输出数据偏差较大,所以我们可以将后处理部分放在 CPU 运行;因此在导入模型时保留 350,498, 646 三个后处理解析前的输出节点即可。
14.验证模型
模型需要修改为简化后的模型路径。
新建文件夹存放固定的输入图像尺寸。假设上述中我设置输入图像尺寸为640x640,那么此时我在data目录下新建100ask-images-640文件夹存放640x640的图像作为待测数据。
修改detect.py函数parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp7/weights/best-sim.onnx', help='model path(s)') parser.add_argument('--source', type=str, default=ROOT / 'data/100ask-images-640', help='file/dir/URL/glob, 0 for webcam')
在conda终端输入:
python detect.py
通过输出信息可知:检测结果存储在runs\detect\exp6
检测结果如下:
15.转换模型
15.1 创建工作目录
将简化后的best-sim.onnx模型传入配置到NPU模型转换工具的虚拟机中,创建模型工具目录,包含模型文件,量化文件夹data(存放量化图片),dataset.txt文件(存放量化图片的路径)。buntu@ubuntu2004:~/100ask-yolov5-test$ tree . ├── best-sim.onnx ├── data │ └── test01.jpg └── dataset.txt 1 directory, 5 files
工作目录如下所示:
15.2 导入模型
导入模型前需要知道我们要保留的输出节点,由之前查看到我们输出的三个后处理节点为:350,498,646 。pegasus import onnx --model best-sim.onnx --output-data best-sim.data --output-model best-sim.json --outputs "350 498 646"
导入生成两个文件,分别是是 yolov5s-sim.data 和 yolov5s-sim.json 文件,两个文件是 YOLO V5 网络对应的芯原内部格式表示文件,data 文件储存权重,cfg 文件储存模型。
15.3 生成 YML 文件
YML 文件对网络的输入和输出的超参数进行描述以及配置,这些参数包括,输入输出 tensor 的形状,归一化系数 (均值,零点),图像格式,tensor 的输出格式,后处理方式等等pegasus generate inputmeta --model best-sim.json --input-meta-output best-sim_inputmeta.yml
pegasus generate postprocess-file --model best-sim.json --postprocess-file-output best-sim_postprocess_file.yml
修改 best-sim_inputmeta.yml 文件中的的 scale 参数为 0.0039216(1/255),目的是对输入 tensor 进行归一化,和网络进行训练的时候是对应的。
修改过程如下图所示:
15.4 量化
生成量化表文件,使用非对称量化,uint8,修改 --batch-size 参数为你的 dataset.txt 里提供的图片数量。如果原始网络使用固定的batch_size,请使用固定的batch_size,如果原始网络使用可变batch_size,请将此参数设置为1。
pegasus quantize --model best-sim.json --model-data best-sim.data --batch-size 1 --device CPU --with-input-meta best-sim_inputmeta.yml --rebuild --model-quantize best-sim.quantize --quantizer asymmetric_affine --qtype uint8
15.5 预推理
利用前文的量化表执行预推理,得到推理 tensorpegasus inference --model best-sim.json --model-data best-sim.data --batch-size 1 --dtype quantized --model-quantize best-sim.quantize --device CPU --with-input-meta best-sim_inputmeta.yml --postprocess-file best-sim_postprocess_file.yml
15.6 导出模板代码与模型
输出的模型可以在 ovxilb/100ask-best-sim_nbg_unify 文件夹中找到network_binary.nb模型文件。
pegasus export ovxlib --model best-sim.json --model-data best-sim.data --dtype quantized --model-quantize best-sim.quantize --batch-size 1 --save-fused-graph --target-ide-project 'linux64' --with-input-meta best-sim_inputmeta.yml --output-path ovxilb/100ask-best-sim/100ask-simprj --pack-nbg-unify --postprocess-file best-sim_postprocessmeta.yml --optimize "VIP9000PICO_PID0XEE" --viv-sdk ${VIV_SDK}
可以进入下图所示目录中将network_binary.nb模型文件拷贝出来备用。
16.端侧部署
这里引用上一篇《100ASK-V853-PRO开发板支持yolov5模型部署》我们编写的yolov5端侧部署程序,这里进入端侧部署程序文件夹中拷贝一份新程序进行修改。主要修改vnn_post_process.cpp程序。16.1 修改draw_objects函数
修改draw_objects函数中的类名,这里我训练的模型的类别分别是T113、K510、V853类别名称需要yolov5-6.0项目data目录下data.yaml对应
16.2 修改generate_proposals函数
修改generate_proposals函数中的类类别数量为您类别数量。假设我训练的类别总共有T113、K510、V853,这3个类别,修改为3即可。修改后的文件如下所示:
16.3 编译
book@100ask:~/workspaces/tina-v853-open$ source build/envsetup.sh ... book@100ask:~/workspaces/tina-v853-open$ lunch ...1 ...
进入menuconfig选中yolov5-100ask配置,输入
make menuconfig
进入如下目录中
100ask NPU <*> yolov5-100ask… yolov5-100ask demo
编译并生成镜像
book@100ask:~/workspaces/tina-v853-open$ make ... book@100ask:~/workspaces/tina-v853-open$ pack
编译完成后使用全志烧写工具烧录镜像。
16.4 测试
主机端:传入640*640的图像文件和network_binary.nb模型文件
book@100ask:~/workspaces/testImg$ adb push test-100ask.jpg /mnt/UDISK test-100ask.jpg: 1 file pushed. 0.6 MB/s (51039 bytes in 0.078s) book@100ask:~/workspaces/testImg$ adb push network_binary.nb /mnt/UDISK network_binary.nb: 1 file pushed. 0.7 MB/s (7409024 bytes in 10.043s)
开发板端:
进入/mnt/UDISK/目录下
root@TinaLinux:/# cd /mnt/UDISK/ root@TinaLinux:/mnt/UDISK# ls lost+found network_binary.nb overlay test-100ask.jpg
运行yolov5检测程序
yolov5-100ask network_binary.nb test-100ask.jpg
执行完成后会在当前目录下生成输出文件yolov5_out.jpgroot@TinaLinux:/mnt/UDISK# ls
lost+found overlay yolov5_out.jpg
network_binary.nb test-100ask.jpg
主机端:拉取开发板端的输出图像yolov5_out.jpg
book@100ask:~/workspaces/testImg$ adb pull /mnt/UDISK/yolov5_out.jpg ./ /mnt/UDISK/yolov5_out.jpg: 1 file pulled. 0.8 MB/s (98685 bytes in 0.116s)
17.检测效果图
-
新的香橙派Zero3,比从前更强了一点
在树莓派涨价缺货潮中广受好评的香橙派,又迎来了它的新一代产品升级——Orange Pi Zero 3
作为香橙派经典品质的代表,Zero系列凭借其强劲的性能表现、小巧的外观以及高性价比一直拥有超高的人气,备受用户青睐。现在,官方在Zero 2的基础上进行了再度升级,全新推出的Zero 3配备了更强大的处理器全志H618以及更大、更多可选规格的内存,为用户提供更好的使用体验。
Orange Pi Zero 3搭载全志 H618 64位高性能四核Cortex-A53处理器,Arm Mali-G31 MP2 GPU,支持OpenGL ES 1.0/2.0/3.2,OpenCL 2.0,Vulkan 1.1等,拥有1GB /1.5GB/2GB/4GB四种内存规格可选,板载16MB SPI Flash,支持多种视频格式的编解码,Micro-HDMI输出支持4K显示,支持Android 12 TV,Debian11,Debian12,Ubuntu22.04,Ubuntu20.04等操作系统,可广泛应用于电视盒子、智能投屏设备等。
比起经典款Zero 2,Zero 3将处理器从H616升级到H618,运行内存从512MB/1GB两种可选升级到1GB /1.5GB/2GB/4GB四种可选,更大的运行内存令软件运行时有更快的速度和更好的流畅度。在外观上,Zero 3尺寸更小,仅有50mm*55mm,只有一张信用卡的2/3那么大,可以轻松塞到各种小巧的产品模具里。
Orange Pi Zero 3延续了Zero 2在接口设计方面的优势,提供了丰富多样的接口配置,优秀的拓展能力能够满足用户日常所有的外接需求。具体而言,Zero 3可以通过13Pin扩展口配合转接板扩展耳机、TV-Out、USB2.0、红外接收等功能,配备了千兆以太网、Micro HDMI、WiFi5和蓝牙5.0、3个USB 2.0 (其中两个从扩展板引出),采用Type-C 5V3A供电,另外板上的26Pin扩展功能口,进一步丰富了主板的功能接口,提升了开发的潜力。
价格上,依旧延续了香橙派高性价比的路线,1GB版本仅售99元,1.5GB版本为119元,2GB版本为149元,4GB版本为199元。在这个价格区间,Zero 3的表现是相当出众了。
很快,你就可以从以下渠道买到Orange Pi Zero 3:
- 天猫 - 香橙派电脑旗舰店
- 淘宝店铺 - 香橙派OrangePi
- 拼多多 - 香橙派数码官方旗舰店
- ……
相信,这次的全新升级定会满足你的期待!
-
为了实现上网自由,我做了一个多功能串口服务器
项目作者:小华的物联网嵌入式之旅
介绍:从事电气自动化行业,多次获得物联网设计竞赛,爱好嵌入式设计开发,物联网开发。
附件:多功能串口服务器PCB-Gerber.zip
多功能串口服务器BOM表.xlsx
多功能串口服务器PickAndPlace_PCB1_坐标文件.xlsx
基于V853多功能串口服务器-专业版.zip设计方案思路的由来,是因为我们现在的开发板基本需要通过串口与WIFI模组或以太网模组连接以实现联网功能,如果多个开发板就要配多个模组,所以做一个类似路由器的功能,将多种串口协议集中连接到串口服务器上面,然后就可以实现通过一个以太网功能实现联网。
串口服务器网上也有相关的产品售卖,虽然不知他们的控制原理,但是对我来说只需要将串口数据发送到V853上,通过它进行数据解析后集中通过以太网接口发送出去就实现了串口服务器和路由功能。
该服务器因为具备了WIFI模组,所以也可以组成局域网,将所有无线设备都可以连接到模组接收数据,然后再通过以太网接口与其他网络设备进行交互。
主要功能及用途
实现的功能是基于官方提供的V853原理图和晕哥设计方案的基础上进行了功能扩展,新增了串口转换电路:
1、V853最小系统,运行linux操作系统,尽可能运行桌面系统,这样可以像操作电脑一样编辑串口数据。
2、WIFI模组实现联网功能。
3、显示屏LCD接口,用来显示操作界面。所以有了它就更像一台小电脑服务器。
4、摄像头接口,这是预留接口,用来实现摄像头监控,在数控机房里面特别适合。
5、”USB-HUB扩展4路USB接口,通过USB转串口芯片CP2102实现2路R232,2路RS485,4路TTL,总共实现8路串口功能。满足了我们多功能串口服务器。软件设计
需要在linux系统上安装Node-Red软件,这个软件是一个图形化编程编辑界面,通过安装相对应的节点就可以实现想要的功能。
例如串口功能,MQTT功能,TCP功能等必要的组件都可以安装实现,只需要设置需要参数就可以完成相关功能,同时还可以进行数据解析,并通过Dashboard数据可视化界面做上位机显示到显示屏上面,摄像头的调用可以使用里面的组件去调用,可以说node-red可以轻松实现串口数据转以太网,实现任何一个串口设备都可以轻松连接到服务器。如下图就是各个节点功能的使用案例。
所以解决串口和无线有线的连接问题,就可以实现数据交互的服务器。外网如果想查看上位机界面,因为它是网页版,所以通过透传的方式就可以远程打开查看这个网页。
方案原理图
PCB是基于Yuzuki大佬的“高性能异构边缘AI视觉开发板”PCB板上画的,让我节省了很多时间。我只需要扩展我的串口功能部分和修改了部分电路与布局。
开始我的板子有个小插曲,板子刚回来时发现上电后没有反应,检查好几天才发现没有焊接晶振,我还在硬件设计大赛的群里打扰各位大佬为什么我的板子不能工作,识别不到USB等等问题。还好发现了问题并解决了。现在给大家介绍如何烧录Tina Linux系统。
固件烧写及点灯
在全志在线开发者社区的资料下载页面下载红框所示的全部量产工具。
下载出厂固件。
打开刷机软件:(该软件在全志资源下载里面都能找到)。
这个时候按住开发板上FEL按键不松手,然后用Type-C数据线连接电脑和板子的OTG接口,这个时候会进入USB模式,刷机软件就会自动识别并烧录固件。如果没有进入USB模式,可以通过按住FEL按钮,然后点击一下RESET按钮,这时候如果你的电脑开了音量,就听到声音。此时刷机软件也会自动进入烧写模式。
显示烧录成功:
刷机软件也自动连接上板子,显示了如下信息:
然后系统会自动运行,过了一会儿,我们会发现在设备管理中看到Tina ADB,刷机软件的首页也显示连接设备成功。
然后我们需要配置添加ADB到环境变量中:在win10系统中:
我的电脑-属性-高级系统设置-弹出“系统属性”窗口,选择高级栏中的环境变量,弹出的窗口中选择用户变量中的path路径,选择下载并解压的ADB。
新建一个路径,选择自己的adb路径:
然后再win10开始栏中输入cmd,打开命令提示符窗口,我们输入adb shell就会看到如下内容,这样我们就进入了linux系统。
点亮LED灯,连接PH11引脚到LED灯就可以通过控制gpio235的值来点亮和熄灭LED灯。
echo 0 > value点亮LED灯 echo 1 > value熄灭LED灯
如下图我板子的PH11引脚连接到串口的一个蓝色LED指示灯实现点亮LED灯功能。
-
【开源硬件】全志芯片系列优秀开源工程分享第一期
“全志芯片合集”正式上线立创开源硬件平台,涵盖多系列全志芯片,开源智能家居、游戏掌机等多个领域的开源应用工程. . . . . .
立创开源硬件平台:https://oshwhub.com/recommend/quan_zhi
YuzukiCK1N 触屏小电脑
YuzukiCK1N小电脑,基于全志V3x芯片制作,集成128M内存。
小电脑本身体积并不大,带有USB接口和3.5mm音频输出接口,同时板载百兆网络、Wi-Fi,支持eMMC储存,屏幕为4寸方屏,支持480480或720720分辨率,可使用电容触摸。
软件方面使用 Linux 5.4.180、U-Boot 2022.01,作者还提供了适配了小电脑的SDK,SDK采用作者个人整理的“Buildroot YuzukiSBC”,该Buildroot版本的SDK主要支持作者本人的YuzukiHD系列中的设备,包含全志F1C100s/200s、V3s、V3x、D1-H、D1s、T113等一众方案。
开源项目地址:https://oshwhub.com/GloomyGhost/yuzukick1n
2.8寸Miyoo横板掌机
掌机使用基于全志F1C200s设计的Lite200为核心板,集成64MB DDR可以帮助游戏快速加载。
掌机外观基于Miyoo横板开源掌机进行复刻,整体结构为亚克力盖板堆叠,由屏幕盖板(PCB)+PCB+底壳构成,屏幕采用耀元鸿2.8寸40Pin IPS屏幕,屏幕与屏幕盖板采用2.5MM铜柱垫高,螺丝长度为M2*16。
模拟器方面使用司徒修复闪屏系统,可以支持运行GBA和PS1的2D游戏,配合超频的Gmenu2x和超频252MHz的Dram,获得更好的游戏体验。
开源项目地址:https://oshwhub.com/sunnygold/miyoogame_2022-12-25_17-58-30
全志H6开发板
本项目开源主要目的是帮助想学ARM高速电路的小伙伴们,学会自己做一个ARM开发板。教程从最初的“需求分析”一直到成功实现“软硬件联调”,就算是0基础,跟着学习也可以做出硬件小白的第一块开发板。
开发板以全志H6为主控芯片,并板载2GB LPDDR3内存以及8GB EMMC,通信模块采用AP6212(WIFI+BT),还设置了常见的USB、HDMI、耳机音频等接口,以及开放了26Pin的GPIO,基本涵盖了一款完善开发板的基础功能设计。
硬件上面兼容Orange Pi 3 LTS,可以烧写香橙派的系统,完全对接它的软件,比如:使用香橙派提供的GPIO操作工具,操作IO端口。同时支持Ubuntu 22.04、Debian 11、Android TV 9.0等操作系统。
开源项目地址:https://oshwhub.com/logicworld/h6_board
-
【行业观察】稚晖君刚拿了百度投资,估值被曝已超独角兽
“华为天才少年”稚晖君创业项目,刚被百度风投投了!
量子位获悉,稚晖君创业项目智元机器人,日前完成了第三轮融资,市场估值被曝在十几亿美元左右。
天眼查App显示,本轮新增股东包括李彦宏旗下三亚百川致新私募股权投资基金合伙企业(有限合伙),以及经纬、高榕等一线VC,注册资本增至约4847.02万元。
智元机器人关联公司名为上海智元新创技术有限公司,成立于2023年2月,法定代表人为舒远春。
经营范围含智能机器人的研发、人工智能理论与算法软件开发、人工智能硬件销售、电子产品销售等。
致力于AI和机器人深度融合
简而言之,智元机器人要做的事,就是致力于将AI和机器人深度融合。
这一点可以从稚晖君最新的B站视频中窥见端倪。
视频中,稚晖君剧透了全新双足机器人哪吒。用他自己的话来评价,这是“国风神话”和“赛博机械”的组合。
“国风神话”,体现在机器人的名字,以及“火尖枪”、“混天绫”和“风火轮”上:
“赛博机械”,主要体现在机器人的脚上。
即采用“轮+足”将传统双足机器人(如波士顿动力)和各式轮足机器人的脚步特点,完成地形适应/灵活性+高续航性。
稚晖君将此命名为轮足二相腿,“脚”横过来就是足,竖过来就是轮。
效果上是这样的:
视频中有个小细节,当时就被细心的网友们发现了——
稚晖君戴着头显,和哪吒的动作保持神同步。
这或许是后续哪吒要展示的功能之一。
至于哪吒的其余效果展示,稚晖君表示会随着后续的进度在之后的视频中做更多的露出。
在通用机器人和AI领域LLM结合上,团队还会有一些动作。
更重要的是,稚晖君在视频最后有个精彩剧透:
如果不出意外的话,哪吒会在今年晚些时候,在我们当前正在筹备的某个大事情的发布会上,作为彩蛋。
所以,哪吒“问世”,代表的只是稚晖君创业项目的一个开始。
现在的稚晖君B站主页,最新进展仍然停留在哪吒双足机器人的动态,“晚些时候”的发布会也还没传出消息。
但刚刚完成的第三轮融资,揭示了平静湖面下涌动的暗流的一角,也足以让人感知到市场对其的期待。
谁是稚晖君
稚晖君,本名彭志辉,在电子科技大学拿下本硕学位。
不过,本科时,他的专业是生物医学工程,因为一直自学计算机知识,研究生才顺利转向信息与通信系统专业。
2018年毕业后,他的第一站是OPPO研究院,面试时一口气拿下硬件岗和算法岗的两个Offer。
和后来在华为时一样,他当时的选择是AI算法工程师。
2020年,稚晖君加入**“华为天才少年计划”**,正式成为华为的一名员工。
通常来说,“天才少年”的招聘流程非常严格,一般需要经历7轮左右流程,最终还要通过华为总裁的面试。
根据这项计划招入的华为“天才少年”们,年薪100万起步。
成为计算产品线昇腾部门的一员后,华为给他的对外title是昇腾AI边缘计算专家。
关于昇腾计算,据华为官网消息,主要是打造面向“端、边、云”的全场景AI基础设施方案。
加入华为的次年,任正非在演讲中表扬了他,称其是华为创新的动力。
去年12月底,加入华为两年后,华为员工在线爆料华为内部已经搜不到稚晖君的工号,恐已离职。
随后,稚晖君正面回应:
传言属实,已离开华为,准备创业。
而关于为何突然离开华为,以及之后创业的计划和细节,稚晖君当时都没有作出详细解释。
但当时有知乎知情人士表示,稚晖君离职并非业务原因。
离职前,稚晖君在部门的绩效表现非常好(近几次绩效全A),而且内网的荣誉墙可以看到他入职这几年拿了不少奖项(总裁奖、明日之星、金牌团队等等)。
可以肯定不是业务原因离职,他做的确实是感兴趣且擅长的方向。
目前,他在GitHub上的职位动态仍停留在华为研究岗。
除开“华为天才少年”的光环,稚晖君最为大家熟悉的身份,应该是B站科技区拥有近250万粉丝的知名UP主。
2021年,他曾拿下“年度百大UP主”称号。
据他自己说,最初只是把B站当做视频存储服务器,没想到却收获了一批稳定的粉丝,于是开始转型做up主。
不过半年,稚晖君火了,还因为过于硬核的视频内容被被网友们戏称为“野生钢铁侠”、“栈溢出”工程师。
其中最为出圈的几条,包括“钢铁侠机械臂”“自动驾驶自行车”“mini卡片电脑”等,播放量都在300万+。
可以看到,他在B站上更新的内容大都和机器人相关。
这大概也能侧面说明,稚晖君离职华为加入智元机器人开启(又一次)创业生涯,是为了追求兴趣所在。
毕竟他曾经公开表示过对机器人领域的热爱,称最喜欢的还是智能交互和机电控制类的项目,说大点就是和机器人相关的。
他曾在与Gitee交流时表达过:
“如果程序员是数字世界的上帝的话,那亲手给机器人以身形,再用AI赋其灵魂,这就是真极客的浪漫啊!”
-
【行业观察】00后浙大博士创业,用AI建模把3D打印价格降到行业1/3
转载自硬氪 作者@王渝斐/张子怡
AI时代来临后,消费级3D打印市场正迎来巨变。
以前需要花费半个月时间才能操作的建模,如今几分钟即可完成;以前动辄几千元以上的产品,现在不到900元。
这就是魔芯科技创始人兼CEO陈天润正在用AI做的事。他不仅是浙江大学直博生,还跟随人工智能领域专家潘云鹤院士深造于视觉三维算法领域。陈天润的创业项目也获得了盛元智本和德石投资两轮融资。
3D打印行业已经爆火一段时间。在海外众筹平台上,安克旗下的AnkerMake M5,众筹金额曾高达888万美元,创下历史第一;由大疆团队组建的拓竹,发布Bambu Lab X1众筹金额也达700万美金。
成立于 2021 年的魔芯科技,是硬氪持续跟踪的公司。其自主研发的 KOKONI EC2 桌面级智能 3D 打印机,最在小米有品众筹首发上线,上线仅20分钟完成100%目标,5 小时销售额破百万元大关。
3D 打印市场,曾是个只存在于极客、创客群体中的小众市场。如今作为虚拟世界与现实世界的连接入口,应用场景已经拓展至教育、艺术、消费电子等领域,使用人群也越来越广。
让3D打印变得零门槛
对于消费者而言,要想灵活使用 3D 打印,需要具备不少技能:会组装、维修、熟悉材料、会建模等。
对于从未接触过3D打印机的消费者,入手一台机器后,面对的第一个问题是如何组装。
过去,不少3D打印机以零件形式出售,个人消费者组装时间可能高达40小时甚至一星期。
“3D打印机一般需要自己去组装、去调试,去了解很多知识。打印速度、加热底板、支撑类型等参数都需要用户自己去了解。”陈天润告诉硬氪。
KOKONI EC2 的特点之一是零门槛使用方式,用户在使用该机器时不需掌握机械结构相关知识,不需花费太多时间安装设备,使用前不再需要手动调平,开箱即用。
组装完成后的另一个高门槛——学习建模。
消费者只有学会使用CAD软件制作图纸,接着将模型转化为设备可以识别的文件,在专业的切片软件里决定打印方向,支撑设置等设置后,最终才能生成可以使用的打印文件。
上述操作对初次使用者而言,至少需要花费半个月。
所以,KOKONI EC2 的另一特点在于自研APP——KOKONI 3D APP ,作为硬件产品的配套软件,使用AI技术帮助用户迅速建模,降低用户学习成本,快速上手。
依托自研AI算法,KOKONI 3D APP 开放多种全新 AI 智能建模功能,包括手绘建模、拍摄建模、文字建模、电子积木等。
陈天润向硬氪演示了APP的使用过程。在APP中,用户可以自主选择建模方式。若选择手绘建模,可以在画布上画汽车轮廓,软件生成初步的汽车三维模型,用户再根据需求调整xyz轴参数,让模型更加精细。
拍摄建模能够让用户拍摄或上传照片,例如上传个人照片,生成人像三维模型后,进一步调整参数,即可打印出mini版的自己。
文字建模则类似于AI绘画,输入文字描述生成自己想要的模型。值得注意的是,该功能尚处于内测阶段。
“现在市场上大部分比较火的 AIGC 产品,它们主要生成的是平面内容。我们APP生成的是三维模型,你可以 360 度旋转看细节,后期可以自己手动调整。让 AI 帮用户去做前期工作,降低用户的学习成本。”陈天润说。
此外,魔芯科技也会不断通过积累的大数据以及用户在使用时对AI的训练,让AI建模的准确性不断提高。
在3D打印行业中,目前鲜少产品会嵌入AI算法。而魔芯科技在软件产品上的开发,以及对于AI技术率先的运用,跟创始人陈天润背景有很大关联。
在AI训练过程中魔芯科技采用了深度学习的方法。通过捕捉全局语义信息,再结合照明和纹理等先验知识,对图像进行初始估计。最后再通过优化,最大限度地将用户拍摄的图像合成为高保真且可3D打印的三维模型。
此外,3D打印机的打印速度也是对产品性能的重要考量。 KOKONI EC2 的最大打印速度为100mm/s,对比专业级3D打印机打印速度较低。
陈天润表示:“这和产品定位有关,KOKONI EC系列定位为入门的消费3D打印机,面向的是普通消费者。”
陈天润认为硬件性能的提升并不能完全解决这部分用户的核心痛点,他们更需要软件与硬件的结合,通过AI智能拓宽3D打印的使用场景,真正降低用户的使用门槛。
软件与硬件的结合并非易事。让软件更好地驾驭硬件,并且保障高并发场景下的稳定性,需要设计一个安全又高效的协议方法。
同时,KOKONI EC2 在产品价格范围内针对性做了提升。产品内置高清摄像头,可进行720p延时摄影,通过APP可查看打印状态,随用随停并支持视频分享。
“好玩的、好用的”消费品
当前的消费级 3D 打印机为满足专业用户需求,大多追求速度和精度上的性能提升,专注于存量市场。
价格也差距很大。桌面级的3D打印机价格多在千元以上,更高精度的3D打印机价格在两千元~几万元不等。
在魔芯科技看来,高昂的价格和复杂的操作让3D打印机难以成为一个合格的消费品,降低价格门槛是将3D打印推向消费电子市场,打开应用场景的其中一步。
值得一提的是, KOKONI EC2 售价仅899元。能够实现这样的定价依托于魔芯科技能够通过自有工厂实现供应链优化。
魔芯科技总部位于杭州地理信息小镇,通过地理优势集结AI人才开设研发中心。自主研发、自主生产帮助魔芯科技做到成本可控。
**同时魔芯科技通过消费电子的思路降低成本。**比如借鉴消费电子行业常用的方法——用更多能复用零件、用更多能够大批量生产的开模等。
陈天润告诉硬氪,“一般的3D打印机是通过硬件竞赛去实现产品迭代升级,同质化较为严重。我们是按照消费电子产品,通过AI算法技术,以低成本、高性能的产品思路去做。”
这一开发思路得益于魔芯科技团队内有深耕消费电子、3D打印行业的专业人士,在视觉三维算法等领域有丰富积累,也有交付数十万台的3D打印设备经验。
“对工程师来说,只要不计成本堆功能一定可以做出很厉害的东西。但这违背了消费产品的逻辑,我更需要做到如何在成本可控的情况下去做现在这件事。”陈天润将KOKONI EC系列定义为“好看的,好玩的消费产品”。
不过,目前国内的消费场景潜力尚未被完全开发。根据艾瑞咨询数据,80%-90%的消费级3D打印机出口海外。
魔芯科技选择主攻国内市场,这也是KOKONI EC2定价千元级以下的重要原因。
对于海外市场,魔芯科技也没有放弃。公司海外销售总监陈皓告诉硬氪,魔芯科技于2022年建立了独立站,通过线上渠道布局美、德、日市场,未来也计划进驻海外线下商超。
据悉,魔芯科技下一代产品 KOKONI SOTA 系列,其最大打印速度为600mm/s,加速度为21000mm /s^2,目前正在海外平台众筹。
-
回复: H616静态IP设置失败
可能是还没写入文件就已经断电了,导致的数据丢失
linux内核写入文件的特性:先将内容写入缓存,在io空闲或者一段时间等情况下,再将内容写入磁盘,
当内容在缓存中时,可以通过 cat 命令查看内容,因此通过 cat 命令能查看到 IP 不能说明已经将内容写入
在设置完静态IP之后,调用相关方法,马上将内容写入磁盘。
代码路径:
frameworks/base / services/core/java/com/android/server/net/IpConfigStore.java
public void writeIpConfigurations(String filePath, ArrayMap<String, IpConfiguration> networks) { mWriter.write(filePath, out -> { out.writeInt(IPCONFIG_FILE_VERSION); for(int i = 0; i < networks.size(); i++) { writeConfig(out, networks.keyAt(i), networks.valueAt(i)); } + try { + sync(filePath); + } catch (IOException e) { + loge("Ipconfig sync error:" + e.toString()); + } }); } + public void sync(String filepath) throws IOException { + File f = new File(filepath); + RandomAccessFile raf = null; + + try { + raf = new RandomAccessFile(f, "r"); + FileDescriptor fd = raf.getFD(); + fd.sync(); + + } finally { + if (raf != null) { + raf.close(); + } + } + }
-
回复: NPU算法模型推理时如何查看内存占用
查询进程所占内存的方法如下:
//VmSize: 表示进程当前虚拟内存大小 //VmHWM: 表示进程所占用物理内存的峰值 //VmRSS: 表示进程当前占用物理内存的大小(与procrank中的RSS) static const char *GREP_KEY = "-E \"VmSize|VmRSS|VmHWM\""; void print_mem(const char *prefix, const char *grep) { int pid = getpid(); char command[256]; sprintf(command, "cat /proc/%d/status | grep %s", pid, grep); printf("==== %s \n", prefix); system(command); printf("\n"); }
在应用中添内存使用查询接口,使用示例如下:
print_mem("before vip_run_network", GREP_KEY); status = vip_run_network(batchs[i].network); if (status != VIP_SUCCESS) { printf("fail to run network, status=%d, batchCount=%d\n", status, i); ret = -1; goto exit; } print_mem("after vip_run_network", GREP_KEY);
-
回复: NPU模块如何实现多输入/多网络配置?
多输入sample.txt文件配置,当只有一个nb模型但需要有两个输入时:
[network] ./network_binary.nb [input] ./iter_0_images_262_out0_1_3_640_640.tensor ./input_0.dat
多网络sample.txt文件配置,当需要一次运行多个nb模型时,不同nb以标签为界限:
[network] ./network_binary.nb [input] ./iter_0_images_262_out0_1_3_640_640.tensor [network] ./network_binary.nb [input] ./input_0.dat
-
泰酷辣!开源超迷你安卓手持终端CyberPad,芒果派惊喜之作
继推出大小仅与普通SD卡不相上下爱的超迷你模组MCore-H616核心板之后,鸽了近半年时间的芒果派,又带来了一款惊喜之作——MCore-R818核心板。
该款MCore的设计也是基于R818的特性,做出了一些小小的改变。
芯片本体封装设计较小,核心板在3x3cm的大小下不仅预留了屏蔽罩安装接口,还集成起了R818+EMMC+LPDDR4+PMU四个部件,并提供2G+16G和4G+32G两种硬件配置。
R818集成了用于UI渲染的GE8300 GPU,更侧重于处理本地的显示和CSI工作,可以直接驱动 DSI/LVDS/RGB 接口的屏幕,同时 13MP 摄像头的 ISP 还可以支持 1080P 的视频通话功能,并提供 800 万单摄或 500 万+ 200 万双摄两种方案。
底板的设计一改往日芒果派精致小巧的风格,选择引出绝大部分功能资源。核心板与底板之间通过邮票孔的方式连接,得益于R818强大的音视频功能,底板上板载了3.1寸的电容触摸屏、RGB、MIPI等屏幕接口,还有15pin树莓CSI、OV2680、OV8858等摄像头接口,并板载了扬声器和mic音频接口。
资源:
显示部分:- 板载3.1寸 800*480 电容触摸屏
- RGB 40Pin输出,5寸屏,支持CTP
- 树莓DSI-15pin显示输出
- DSI+CTP 20pin显示接口,(dongshanpi MIPI屏)
摄像头部分:
- 树莓CSI-15pin
- 800W,OV8858
- 500W,OV5647
- 200W,OV2680
音频:
- 板载扬声器1个
- 板载双模拟mic
通讯:
- WiFi 12x12mm模组
其他:
- USB TypeC,支持快充,支持OTG
- 锂电池接口,充放电
- USB HOST 2.0 1个
- TF卡
- 系统按键:FEL,BOOT,电源。
- ADC按键:安卓vol+,vol-
- RGB LED 1个
引出pin:
UART0 (系统调试)
UART2(通用)
UART3(通用)
SPI2
TWI3
若干IO目前芒果派已经对R818进行了全志Tina Linux以及Android 10的适配工作,并释放出了对应的SDK。
安卓10在底板测试时的启动时间大概在20秒左右,电池电压为3.9V运行时,电流稳定在0.16A,而在安卓静态来回操作(没大型app)的情况下,主控在不加散热片的情况下依旧保持低温。
每一款新产品的诞生,往往都离不开创作过程中大开的脑洞。
秉持小巧风格的芒果派终于还是对偌大的底板下手了,一款小巧的手持终端——CyberPad,也就应运而生了。(看起来是否有一种从开发板到实际产品应用的感觉呢~)
CyberPad由屏幕、主板、电池以及转接板四个部分组成,芒果派为MCore重新设计了一块底板,该底板保留了屏幕和摄像头在内绝大部分的资源引出,并为了满足外接键鼠的需求,增加了一个Type-C接口。
CyberPad目前还处在调试阶段,暂时未能实现量产,后续会搭配上一套新的外壳,并走DIY路线将CyberPad的相关PCB在官网进行开源;MCore-R818的核心板和底板则都会进行公开售卖,更多详细信息请前往芒果派官网了解。
芒果派官网:mangopi.org
芒果派淘宝店:https://widora.taobao.com/ -
回复: 哪吒D1的峰值性能是多少?
D1-H 超频 1.68GHz 测试,提升 67% CoreMark 跑分,ncnn 增速 24%:https://bbs.aw-ol.com/topic/1941/
-
到立创开源平台DIY 赢取万元奖金
- 星火计划报名页面:
https://oshwhub.com/activities/spark2023/fp#P1
- 全志H616电脑DIY报名页面:
https://oshwhub.com/activities/spark2023/fp/detail?demand_uuid=6bdf5f66bf064607b3fb371299c9bd22
什么是「星火计划」?
嘉立创旗下的开源硬件平台,特推【星火计划】活动,给想干一个大项目的电子人提供弹药,也提供展示的平台。
星火计划,是立创开源硬件平台面向全球电子爱好者发出的硬件开源助力活动。专门陪跑那种比较费钱的开源设计!
星火计划项目在2022年正式开启,每年举办一次,每次举办一年。
目前,星火计划分为两个赛道,分别是自由赛道和外包赛道。
自由赛道项目不限主题,不限参与人群,只要你有想法都可以来报名,该赛道下单个项目最高可提供一万元的耗材经费支持!
外包赛道为星火计划二期的全新赛道,有不同类型的外包项目需求,每个外包项目均提供定额项目奖金,外包项目仅对接一人,成功结项百分百获奖!
外包计划
纠结症患者在参赛时一般会想:我要做什么项目?我能做什么项目?我的项目要实现什么功能才能脱颖而出?做好了能不能评上奖?.......
这也是嘉立创通过对2022期参赛者的调研发现的普遍问题,大家把前因后果全都考虑了一遍才发现自己还是连一点项目头绪都没有,但又不想错过这个千载难逢的好机会!毕竟,这种史诗级羊毛不薅?这说不过去!
基于此类“通病”,星火计划外包赛道就为专门治愈这类“纠结症患者”而生!不同应用领域的需求让你应接不暇,总有一个适合你!
一套流程行云流水,每个外包项目均提供定额的项目奖金,且只对接一位参赛者,成功结项将百分百获奖!
贡献创意
如果 这里面没有你想要参加的项目,你也可以“贡献创意”,把你觉得还不错的项目创意提给我们,为星火计划推波助澜,成就更多开源好项目。
【贡献创意】的需求一经采纳,贡献者奖100元无门槛元器件券,无上限!
活动奖励
活动流程
Vlog记录奖励
全志方案赛道
在外包赛道中有全志H616电脑的悬赏项目,当然,有更好想法的开发者也可以选择自由赛道,无限发挥自己的脑洞,你的每一个创意都可以在星火计划中获得全力的支持。
H616电脑设计需求
外设接口
1、HDMI接口1(4k显示);
2、USB2.03
3、USB2.0_OTG1;
4、3.5mm音频接口1;
5、USB-Type-C供电*1;
6、TF卡槽;内置:
1、板载WiFi、蓝牙5.0;
2、运行存储:2GB;
3、内存:32GB;
4、电池充放电电路;
5、10.1寸触摸屏;设计说明
1、使用嘉立创EDA设计;
2、整体项目需设计合适的3D外壳,材料不限(公版模型也可以);
3、外壳模型必须有着对应的接口说明;
4、支持加载Android镜像载入;验收说明
1、电路部分需完全使用嘉立创EDA专业版进行设计,设计前需与工作人员确认方案的可行性后再进行;
2、原理图电路正确,PCB布局走线要求整理美观,无明显缺陷,设计合理,整体外形协调美观;
3、要求录制完整的演示视频,提供项目硬件、软件源文件、器件清单,填写完善开源项目描述。
4、中标后即可进行设计,设计过程中所需耗材与器件需自行准备,项目完成后发放奖金,规定时间内未完成将重新启动项目招标,原项目作废,且不报销已购买物料。
5、嘉立创EDA拥有完整的项目解释权,但会保留作者的著作权。 -
回复: 【FAQ】全志V853芯片 Tina下RTSP环境搭建方法
@igbt70
make menuconfig进入以下目录
输入Y选中 mpp sample rtsp
自己编译一下使用
-
【开源方案】全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
01. V851s-显示终端
该参赛作品计划将V851S芯片设计成核心板和底板结构,驱动LCD显示,接收CAN和RS485通信的数据显示在LCD显示屏上。
02.V851s-多媒体开发板
该参赛作品基于全志V851s芯片设计了一个极简版本的双目摄像头开发板,可外接屏幕和以太网。
在开发板设计技巧方面,为了简化电路图采用的内部LDO输出的1.8V;为了方面模块化的特点,采用核心外设独立设计;为了便于开发与调试,采用了LCD;针对V851s自身的特点,采用MIPI高速摄像头进行设计。
03.V853-多功能串口服务器
该参赛作品基于全志V853芯片设计了一个单片机管理设备,通过以太网控制V853设备再对多台单片机进行管理,并设计了配套的上位机软件;原理图主要在官方参考设计上进行修改,通过RS232和TTL控制下位机。
04.V853-音频播放器开发板
该参赛作品基于全志V853芯片设计了一个小音频管理系统,类似于一个个人小声卡,主要用于家里音乐试听,并针对多通道功放进行音效调音,满足室内的音响效果调优,增加diy 调音乐趣。
开发板将实现codec音频驱动以实现基础硬件功能。硬件调试完成后,进行驱动验证、音频链路验证,主要涉及boot 文件系统驱动等调试,alsa 驱动移植等工作。在此基础上实现调音架构,实现delay gain biquad 等模块的功能实现,并整理出调音接口。
开源硬件设计大赛
本次大赛由华秋电子联合全志在线共同举办,感谢合一智联对比赛的赞助。
资料获取
以上参赛方案详细设计资料均可前往电子发烧友论坛-全志科技小组获取:https://bbs.elecfans.com/zhuti_1576_1.html