在这个视频中,我为我的孩子制作了一个简单的机器人。这是一个避障机器人。
代码和电路图:
https://github.com/ramgsl/RBot2
零件和购买链接:
Arduino Nano:
https://amzn.to/3b5rEXi 超声波传感器:https://amzn.to/3CcEChO TB6612FNG 电机驱动器:https://amzn.to/3njPuEx N20 电机:https://amzn.to/3GeY6VK N20 电机轮:https://amzn.to/3Ha2Kov 跳线电缆:https://amzn.to/3C9hYqN 开关: https://amzn.to/3N7xo5Z
项目代码
#include <NewPing.h>
NewPing sonar(A0, A1, 1000);
const int PWMA = 9;
const int AIN2 = 8;
const int AIN1 = 7;
const int BIN1 = 4;
const int BIN2 = 3;
const int PWMB = 2;
int dist = 0;
void setup()
{
Serial.begin(115200);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
}
void loop() {
dist = readPing();
Serial.println(dist);
if (dist<20) {
back();
left();
}else{
forward();
}
}
int readPing() {
delay(100);
unsigned int uS = sonar.ping();
int cm = uS/US_ROUNDTRIP_CM;
return cm;
}
void forward(){
Serial.println("Forward");
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 130);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, 130);
delay(300);
}
void back(){
Serial.println("Back");
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 130);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, 130);
delay(300);
}
void left(){
Serial.println("Left");
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 130);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, 130);
delay(300);
}
【Arduino 动手做】纸板机器人 |避障 |Arduino Nano 纳米 |TB6612FNG |N20 电机
项目链接:https://github.com/ramgsl/RBot2
项目作者:ToyBots
项目视频 :https://www.youtube.com/watch?v=ETVX1nIFDwI
项目代码:https://github.com/ramgsl/RBot2



评论