求arduino避障小车程序,急!(高额悬赏)
如题。要是能够走迷宫就更好了!希望能够以直线为优先,右转第二,再左转,都不行就回头(不是倒车哦)再走。我目前用:Arduinouno、L298N、传感器扩展板、4轮的小车...
如题。要是能够走迷宫就更好了!
希望能够以直线为优先,右转第二,再左转,都不行就回头(不是倒车哦)再走。
我目前用:Arduino uno 、L298N 、传感器扩展板 、4轮的小车 、 超声波HC-SR04 、传感器扩展板。(该有的应该都有了吧)
我还要知道哪个孔接哪个线,就是他们之间的互相连接怎么接。
拜托了!真的很急!!!
我有2000财富值,要是我做出来了,可以全给没问题。(因为真的很急 T^T 拜托了)
真心不骗。
要是愿意QQ网上直接教学也行,那我会非常感激!大神拜托! 展开
希望能够以直线为优先,右转第二,再左转,都不行就回头(不是倒车哦)再走。
我目前用:Arduino uno 、L298N 、传感器扩展板 、4轮的小车 、 超声波HC-SR04 、传感器扩展板。(该有的应该都有了吧)
我还要知道哪个孔接哪个线,就是他们之间的互相连接怎么接。
拜托了!真的很急!!!
我有2000财富值,要是我做出来了,可以全给没问题。(因为真的很急 T^T 拜托了)
真心不骗。
要是愿意QQ网上直接教学也行,那我会非常感激!大神拜托! 展开
展开全部
//舵机和超声波调试代码
#include <Servo.h>
#include <Metro.h>
Metro measureDistance = Metro(50);
Metro sweepServo = Metro(20);
unsigned long actualDistance = 0;
Servo myservo; //创建舵机
int pos = 60;
int sweepFlag = 1;
int URPWM = 3; //PWM输出0-25000us,每50us代表1cm
int URTRIG= 10; // PWM trigger pin PWM串口为10
uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01}; // distance measure command 距离测量命令
void setup(){ // Serial initialization 串行初始化
myservo.attach(9); //舵机串口为9
Serial.begin(9600); // Sets the baud rate to 9600
SensorSetup();
}
void loop(){
if(measureDistance.check() == 1){
actualDistance = MeasureDistance();
// Serial.println(actualDistance);
// delay(100);
}
if(sweepServo.check() == 1){
servoSweep();
}
}
void SensorSetup(){
pinMode(URTRIG,OUTPUT); // A low pull on pin COMP/TRIG
digitalWrite(URTRIG,HIGH); // Set to HIGH
pinMode(URPWM, INPUT); // Sending Enable PWM mode command 发送使能控制模式命令
for(int i=0;i<4;i++){
Serial.write(EnPwmCmd[i]);
}
}
int MeasureDistance(){ // a low pull on pin COMP/TRIG triggering a sensor reading 触发传感器读数
digitalWrite(URTRIG, LOW);
digitalWrite(URTRIG, HIGH); // reading Pin PWM will output pulses 读引脚脉宽调制将输出脉冲
unsigned long distance=pulseIn(URPWM,LOW);
if(distance==50000){ // the reading is invalid.阅读无效
Serial.print("Invalid");
}else{
distance=distance/50; // every 50us low level stands for 1cm
}
return distance;
}
void servoSweep(){
if(sweepFlag ){
if(pos>=60 && pos<=120){
pos=pos+1; // in steps of 1 degree 1度角度的转动
myservo.write(pos); // tell servo to go to position in variable 'pos' 告诉舵机转动的角度
}
if(pos>119) sweepFlag = false; // assign the variable again 重新分配变量
}else {
if(pos>=60 && pos<=120){
pos=pos-1;
myservo.write(pos);
}
if(pos<61) sweepFlag = true;
}
}
////////////////////////////////////////////////////////////
需要加载一个Metro.h的库,这只是调试机器,余下的完全看你的发挥了,加上电机
#include <Servo.h>
#include <Metro.h>
Metro measureDistance = Metro(50);
Metro sweepServo = Metro(20);
unsigned long actualDistance = 0;
Servo myservo; //创建舵机
int pos = 60;
int sweepFlag = 1;
int URPWM = 3; //PWM输出0-25000us,每50us代表1cm
int URTRIG= 10; // PWM trigger pin PWM串口为10
uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01}; // distance measure command 距离测量命令
void setup(){ // Serial initialization 串行初始化
myservo.attach(9); //舵机串口为9
Serial.begin(9600); // Sets the baud rate to 9600
SensorSetup();
}
void loop(){
if(measureDistance.check() == 1){
actualDistance = MeasureDistance();
// Serial.println(actualDistance);
// delay(100);
}
if(sweepServo.check() == 1){
servoSweep();
}
}
void SensorSetup(){
pinMode(URTRIG,OUTPUT); // A low pull on pin COMP/TRIG
digitalWrite(URTRIG,HIGH); // Set to HIGH
pinMode(URPWM, INPUT); // Sending Enable PWM mode command 发送使能控制模式命令
for(int i=0;i<4;i++){
Serial.write(EnPwmCmd[i]);
}
}
int MeasureDistance(){ // a low pull on pin COMP/TRIG triggering a sensor reading 触发传感器读数
digitalWrite(URTRIG, LOW);
digitalWrite(URTRIG, HIGH); // reading Pin PWM will output pulses 读引脚脉宽调制将输出脉冲
unsigned long distance=pulseIn(URPWM,LOW);
if(distance==50000){ // the reading is invalid.阅读无效
Serial.print("Invalid");
}else{
distance=distance/50; // every 50us low level stands for 1cm
}
return distance;
}
void servoSweep(){
if(sweepFlag ){
if(pos>=60 && pos<=120){
pos=pos+1; // in steps of 1 degree 1度角度的转动
myservo.write(pos); // tell servo to go to position in variable 'pos' 告诉舵机转动的角度
}
if(pos>119) sweepFlag = false; // assign the variable again 重新分配变量
}else {
if(pos>=60 && pos<=120){
pos=pos-1;
myservo.write(pos);
}
if(pos<61) sweepFlag = true;
}
}
////////////////////////////////////////////////////////////
需要加载一个Metro.h的库,这只是调试机器,余下的完全看你的发挥了,加上电机
展开全部
智能小车避障原理 Mixly米思齐创客教育开放课程 arduino光线传感器模块 arduino图形化编程 arduino可视化编程 arduino积木式编程 人工智能学习课程,STEMA创客教育,采用Mixly米思齐编程工具,由星慈光老师讲解。是各省推荐的中小学生信息技术课程(初中、小学普及计算机操作和信息技术教育课程)。本视频教程配套《HJduino传感器套件》,零基础入门计算机语言编程,是你学习机器人、传感器、智能制造技术的首选。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-07-24
展开全部
你应该找卖家要资料啊.......
更多追问追答
追问
零件时我自己买的,不是买一整套的套组。简直愁死人...T^T
拜托拜托。
追答
要不你找个卖家买方案吧,你不懂 arduino?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询