目的
购买链接
所需材料
搭建图下载:
大甲虫.pdf
硬件连接图
将两个电机分别连接到哪吒A主控盒的M1、M2端口,将超声波传感器安装在哪吒A主控盒的J1端口,两路巡线传感器安装在哪吒A主控盒的J2端口。
编写程序
准备编程环境
编程环境准备步骤:请参考:编程环境准备及示例
下载并导入主控盒的库文件和依赖库文件后,还需要导入巡线模块的库文件:PlanetXTracking-main.zip
下载并导入主控盒的库文件和依赖库文件后,还需要导入超声波传感器的库文件:PlanetXUltrasonic-main.zip
和主控盒的接口定义文件: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%
}
}
}
结果
开启电源后,大甲虫沿线行走,当遇到障碍物时自动停下。