重新编辑
项目概述:物联网平衡车
使用OneNET麒麟座做主控制板,可以通过网络发送命令让小车完成前进和后退等操作,并能通过麒麟座上的温湿度等各传感器采集环境信息,上传到云平台。
硬件设计:
OneNET麒麟座做主控制板制作平衡车,还需要陀螺仪、直流电机、直流电机驱动、电机编码器、小车底盘等外围电路和器件。
外围电路部分的原理图2路直流电机驱动
MPU6050电路图
本次使用的陀螺仪为MPU6050
本次使用的直流电机驱动为TB6612
姿态检测与驱动电路安装到面包板上
本次使用的小车底盘
组装起来,麒麟座开发板有点大啊
程序调试:
读取MPU6050程序调试结果
通过IO引脚模拟I2C程序,读取MPU6050的ADC转换结果。进行姿态解算。麒麟座的PA9 PA10两个IO引脚虽然作为USRAT1串口,可以打印姿态到电脑上,但是由于资源有限,这两个引脚打算作为PWM输出信号给直流电机驱动板。暂时把姿态信息显示在1602液晶屏上看看效果。
读取电机编码器代码测试结果
转动轮胎,可以看到定时器在工作,CNT为计数值。
和云平台通讯部分代码测试。
在APIkey管理里面找到你的APIkey填进去,设备ID也修改之后。修改程序里的数据名称。
通讯结果演示
目前以更新了:开箱赏析
中移物联云平台体验,HTTP协议数据上传到云端
编写两轮平衡车菜单界面
FreeRTOS系统的移植
读取 MPU 6050
读取直流电机编码器
速度和转向PID控制
菜单界面里面可以显示PID参数,调试控制程序的时候方便观察。可以通过切换菜单查看显示麒麟座板子上的温湿度等传感器的数据,这部分功能可以根据需要来添加,菜单界面属于实时性要求很低的程序,比较简单。
FreeRTOS系统和uCOS II系统以及ARM自己出的 RTX系统挺像的,后面有机会,继续深入使用这个系统,顺便把使用过程也开帖分享一下。
MPU6050的原始数据的读取,采用了软件模拟 IIC,也试过DMA方式读取,效果不错但是有个BUG没调试好,回头继续研究。
目前先结个项吧,等会上个跑起来的视频演示。后面也会继续更新。
相关测试视频:
界面菜单和读取MPU6050部分
运行视频:
上传中...
|