跳到主要内容

大甲虫

目的

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

购买链接

哪吒A36合1Arduino套装

所需材料

搭建步骤

硬件连接图

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

编写程序

准备编程环境

编程环境准备步骤:请参考:Arduino 3 in 1 Breakout Board 下载并导入哪吒A主控盒的库文件和依赖库文件后,还需要导入两路巡线传感器的库文件:PlanetXTracking-main.zip 下载并导入哪吒A主控盒的库文件和依赖库文件后,还需要导入超声波传感器的库文件:PlanetXUltrasonic-main.zip 下载并导入哪吒A主控盒的接口定义文件:RJPins-main.zip

示例程序:

// Language ArduinoC
#include <NezhaA.h>
#include <RJPins.h>
#include <PlanetXTracking.h>
#include <PlanetXUltrasonic.h>

PlanetXTracking trackingJ2(J2); //创建一个PlanetXTracking类的实例
NezhaA nezhaa; //创建一个NezhaA类的实例
PlanetXUltrasonic ultrasonicJ1(J1); //创建一个PlanetXUltrasonic类的实例
int distance; //声明一个整形变量distance

void setup() {
nezhaa.begin(); //初始化蜂鸣器、电机、舵机、灯光
}

void loop() {
distance = (ultrasonicJ1.getDistance()); //将超声波传感器的返回值存入变量distance中
if (distance > 3 && distance < 20) { //判断变量distance的值是否大于3且小于20
nezhaa.setMotorSpeed(M1, 0); //设置M1端口的电机速度为0%
nezhaa.setMotorSpeed(M2, 0); //设置M2端口的电机速度为0%
}
else {
if (trackingJ2.isTracked(Right)) {
nezhaa.setMotorSpeed(M1, 0); //设置M1端口的电机速度为0%
nezhaa.setMotorSpeed(M2, 20); //设置M2端口的电机速度为20%
}
if (trackingJ2.isTracked(Left)) {
nezhaa.setMotorSpeed(M1, 20); //设置M1端口的电机速度为20%
nezhaa.setMotorSpeed(M2, 0); //设置M2端口的电机速度为0%
}
}
}

结果

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