单片机使用的是 Atmega 32U4 并使用 Arduino 进行开发。 Atmega 32u4 对应 Arduino 的 Leonardo
PCB绘制使用的是立创EDA
SolidWorks.
包括了使用SolidWorks绘制的外壳源文件和用于3D打印的STL文件。
包括了黑眼和控制器的Arduino源代码,不包括使用到的NRF/OLED库。
包括了黑眼和控制器的PCB原理图和PCB图。
Arduino代码分为两个部分:Master & Slave, Master为控制板的程序,Slave为黑眼的程序。
在控制板启动后,setup()部分将进行初始化。
1)初始化NRF模块,启动ACK模式。
2)初始化Analog IO: A0 A1。对应摇杆电位器。
3)初始化按钮中断。(按钮直接使用中断进行输入,而不是扫描。反正中断够用XD)
4)初始化OLED 并显示两秒的 Black Eye 图标。
初始化完成后,在loop()中控制板将不断通过NRF发送数据(command 7),并企图获取ACK返回包。
如果返回包的数据返回正确则连接成功,画面进入工作模式。
ACK返回包中包括了以下信息:舵机速度,电池电压,图传开关状态,舵机开关状态。
不论是否连接成功,控制板仍会发送控制命令:
command 1/2/3/4 :用于控制舵机
command 5/6/8: 用于控制舵机电源 / 图传电源 / 更改舵机速度
如果超过3秒发送Command7无应答则判定为连接断开。
与Master类似,setup()进行NRF和IO初始化。A0获取电池电压,control1/2用于开关控制图传和舵机电源的MOS管。
在loop()中将不断接收Mster传来的命令,处理后通过ack返回。
GitHub 视频地址
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持