本文记录使用 CSK6011A NanoKit vision 套件开发的一个小游戏,整个开发在 Linux 下完成,包括环境搭建和功能开发。
环境搭建
碰到的问题:
1、离线安装,编译sample工程出错.
![zMr8OK.jpg zMr8OK.jpg](//file.elecfans.com/web2/M00/7D/58/pYYBAGN7OnSAKD9hABcViiKasvE451.jpg)
在线搭建正常,后来在聆思智能工程师的帮助下,定位到是我的工程中有一个 sdk 目录导致的,解决方法就是重新找一个空的文件夹,重新创建 sample 并编译通过,不过还有一个前提是我又在线安装了一次,因为我离线安装后,执行 lisa info zep 发现 ZEPHYR_BASE 为空.
2、在测试 AI 的sample 使用 chromium 浏览器打开后,发现没有对应的摄像头设备列表,也是在聆思智能工程师的帮助下,发现是 udev rule 规则导致的,需要将一下规则导入到 udev 的规则中:
KERNEL=="ttyACM[0-9]*",MODE="0666"
KERNEL=="ttyUSB[0-9]*",MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0483", ATTR{idProduct}=="7918", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="77a1", ATTR{idProduct}=="7919", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2fe3", ATTR{idProduct}=="000a", MODE="0666"
功能开发
本项目结构框图和对应的实物图如图所示:
![](//file.elecfans.com/web2/M00/7D/58/pYYBAGN7OnaAEBJ_AAp71bDWbCw023.png)
整个项目涉及到的硬件和软件部分层次结构如图所示:
![](//file.elecfans.com/web2/M00/7D/58/pYYBAGN7OnOAF-wAAAfk1Pw1oEA856.png)
特别需要强调的有两个部分:
软件部分 CS 管教比较重要,在移植 OLED SSD1309 驱动时,使用 gpio 模拟 CS 发现不能正常显示,后来换成 GPIOA_17 重映射为 SPI1 的 CS 管脚就正常了。
图形库使用的是 GuiLite,主要使用到了 bitmap 显示部分,官方提供的 GuiLiteToolkit 是 window 平台的,参考有关图形转换的实现,修改了一版本使用 python 处理的代码,可以支持多种格式图片的转换。
原作者:Red