使用arduino完成一个小Walle
更新日期:
很早之前想给LH做个电子小玩意, 于是买了几个Arduino Nano的小板子开始玩了。 想象中的外形是瓦力Walle的小车, 有前进的车轮、有挥动的手臂,但多个舵机实现难度太大,且手臂、车轮的零配件不好找, 最终削减到只用基础元件来做个能摇头的小呆呆。
涉及到多个器件同时控制,开始引入了Arduino-FreeRTOS (https://github.com/feilipu/Arduino_FreeRTOS_Library), 使用三个任务运行时出了问题不知道啥原因,也不好定位,于是不得不放弃了。 于是改用 Protothreads (http://dunkels.com/adam/pt/api.html), 现在用起来很顺利。
现在这个只能连接USB充电线才能运行, 考虑使用18860 3.7v锂电池,再加一个升压模块到5v。 计划总没有变化快, 小呆呆估计是送不出去了, 只能留着自己玩,电源的事先不想折腾了, 等下次再想买器件时再从某宝入手。
集成的组件列表
- Arduino Nano
- ssd1306 - 128*64 OLED显示屏, I2C接口
- DS18B20 - 温度传感器
- DS1302 - 实时时钟, 使用带钮扣电池的
- SG90 - 9g 舵机
- HC-SR40 - 距离传感器
- 红色LED, 按钮
一些参考网页
- 舵机 https://www.arduino.cn/thread-1038-1-1.html, https://www.arduino.cc/en/Reference/Servo
- 电源 http://arduino.nxez.com/2019/01/03/scrolling-text-display-with-arduino-a-to-z-guide.html
- LED https://jingyan.baidu.com/article/a65957f4e358d924e67f9bad.html, https://zhuanlan.zhihu.com/p/37637038
接口端口
Arduino Nano端口 | 器件接口 | 说明 |
---|---|---|
- - D2 | GND(黑) VCC(红)- 5v Signal(黄) | g9 舵机 |
- D3 D4 - | VCC - 3.3v/5v TRIG ECHO GND | HC-SR04 距离传感器 |
- D5 - | VCC - 5v dat - | DS18B20 温度传感器 |
- - D6 D7 D8 | VCC - 3.3v/5v GND CLK DAT RST | DS1302 时钟模块 |
D9 | LED | 接1K 电阻, 高电平触发 |
D10 | 按键 | 接10K电阻, 读高电平 |
- - A5 A4 | Vcc GND SCL SDA | ssd1306, 0.96寸 OLED, I2C接口 |
使用的组件库
- Protothreads - http://dunkels.com/adam/pt/api.html
- Servo - https://www.arduino.cc/en/Reference/Servo
- DS18B20
- OneWire Library - https://www.pjrc.com/teensy/td_libs_OneWire.html
- Arduino-Temperature-Control-Library - https://github.com/milesburton/Arduino-Temperature-Control-Library
- DS1302 - https://github.com/msparks/arduino-ds1302
- u8g2 - https://github.com/olikraus/u8g2/wiki
在学习传感器使用之后,在面包板上组装的
用一个新的Arduino Nano焊接所有器件, 然后用塑料饮料瓶上半部分制作的外壳。