目的

使用哪吒A36合1Arduino套装制作大甲虫。
64_1x.png

购买链接

哪吒A36合1Arduino套装

所需材料

1_1x.png
搭建图下载:
大甲虫.pdf

硬件连接图

将两个电机分别连接到哪吒A主控盒的M1、M2端口,将超声波传感器安装在哪吒A主控盒的J1端口,两路巡线传感器安装在哪吒A主控盒的J2端口。
M1M2电机双路巡线超声波.png

编写程序

准备编程环境

编程环境准备步骤:请参考:编程环境准备及示例
下载并导入主控盒的库文件和依赖库文件后,还需要导入巡线模块的库文件:PlanetXTracking-main.zip
下载并导入主控盒的库文件和依赖库文件后,还需要导入超声波传感器的库文件:PlanetXUltrasonic-main.zip
和主控盒的接口定义文件:RJPins-main.zip

示例程序:

  1. // Language ArduinoC
  2. #include <NezhaA.h>
  3. #include <RJPins.h>
  4. #include <PlanetXTracking.h>
  5. #include <PlanetXUltrasonic.h>
  6. PlanetXTracking trackingJ2(J2); //创建一个PlanetXTracking类的实例
  7. NezhaA nezhaa; //创建一个NezhaA类的实例
  8. PlanetXUltrasonic ultrasonicJ1(J1); //创建一个PlanetXUltrasonic类的实例
  9. int distance; //声明一个整形变量distance
  10. void setup() {
  11. nezhaa.begin(); //初始化蜂鸣器、电机、舵机、灯光
  12. }
  13. void loop() {
  14. distance = (ultrasonicJ1.getDistance()); //将超声波传感器的返回值存入变量distance中
  15. if (distance > 3 && distance < 20) { //判断变量distance的值是否大于3且小于20
  16. nezhaa.setMotorSpeed(M1, 0); //设置M1端口的电机速度为0%
  17. nezhaa.setMotorSpeed(M2, 0); //设置M2端口的电机速度为0%
  18. }
  19. else {
  20. if (trackingJ2.isTracked(Right)) {
  21. nezhaa.setMotorSpeed(M1, 0); //设置M1端口的电机速度为0%
  22. nezhaa.setMotorSpeed(M2, 20); //设置M2端口的电机速度为20%
  23. }
  24. if (trackingJ2.isTracked(Left)) {
  25. nezhaa.setMotorSpeed(M1, 20); //设置M1端口的电机速度为20%
  26. nezhaa.setMotorSpeed(M2, 0); //设置M2端口的电机速度为0%
  27. }
  28. }
  29. }

结果

开启电源后,大甲虫沿线行走,当遇到障碍物时自动停下。