修改

图片

迪威网友a935ac
迪威网友a935ac

“Neurobot 3”-Arduino教育机器人套件,自主RC控制

免费,登录即可下载
发布时间:2021/1/26 3:00:00
你好,世界!:)
我叫尼克·格里戈里耶夫,我是一名专业工程师,我喜欢制造机器人!
我创造了这个组件,让孩子们学习Arduino的代码,为明天的工程做准备。
他们可以学习红外测距、LED闪烁(闪烁车灯比一个LED有趣得多)、伺服控制、GPS信号采集与处理、液晶屏、压电蜂鸣器、惯性测量单元等。
这是我的“神经机器人1”的第三个版本( rada和Arduino Mega,但不带Raspberry Pi,便于组装和编程。
这是一个机器人,它可以在自主模式下运行或被RC控制。
它把ru Arduino Mega当作“大脑”,把三个IR seo(距离10-90厘米)当作他的“眼睛”。
你可以运行非常有趣的程序与“Adafruit终极全球定位系统突破”seor,RTC(实时时钟)等,它在面包板上。
要装配它,您需要进行三维打印:
11号线-3件
生产线7-1件
开关座\u线路7-1件
板\u 5x11-1件
板7x11-1件
伺服U支架-4件
伺服支架垂直-3件
靠近_seor_front-3件
靠近镡seu或镡back-3件
旋钮-30件
生产线\u 3 \u 13 \u LED \u正面-2件
线路\u 1 \u 13 \u LED \u 90度-2个
液晶显示器支架\正面-1件
LCD\支架\背面-1件
角度\u 1x1 \u 135 \u度-2件
垫片mm-34件
您需要购买:
Arduino Mega或Uno-1件
Saimart伺服护罩,适用于Mega或Uno-1件
锂电池-1块
脂肪检查器-1件(可选)
6伏UBEC-1件
夏普IR seor-3件
1/4英寸螺纹杆-40英寸,并将其切成碎片:
…A)106 mm-4件
…B)98.5 mm-2件
…C)91 mm-2件
1/4英寸螺母-30件
6/32螺栓1-1/4长度-56个
6/32螺母-56个
LED-26个
220欧姆电阻-8件
伺服外伸电缆30 cm-5根
所有购买链接,请参见此处:
(我想保留一份最新的购物清单,以维持订单)。
如果需要,可以添加RC控件(我通常称之为Futaba Rx和Tx,但如果需要,可以从这里获得: 190\uu 190\uu Radios\u ?idCategory=190&pc=)。
如果您想从我这里购买这套打印套件(除电子元件外的所有零件或一次购买所有元件),请写信给我下面的电子邮件。
祝你玩得开心,我希望,你会喜欢的:)
尼克
nikgrigoryev@
(C) 加州设计
Arduino项目:
(取消这3行代码的注释)#include Servo.h包括“伺服库”的代码,使用伺服功能
#include LiquidCrystalØI2C.h包括管理LCD的标准库
#include Wire.h包含用于管理I2C设备的库
伺服轮ServorFrontPassengeide;创建伺服对象以控制四个车轮伺服
伺服轮伺服后乘客;
伺服轮伺服前驱;
伺服轮伺服后驱动;
伺服对象;创建伺服对象来控制三个IR seo伺服,前,左和右
伺服驱动器;
伺服耳机;
LiquidCrystal I2C lcd(0x27,20,4);在地址0x27上为20 cha和4行显示器创建对象“lcd”
int wheelservorfrontpassengiedepin=10;定义车轮的针脚编号
int WheelServorRearPassengeIdePin=9;
int WheelServorFrontDriveIdePin=11;
int WheelServorRearDriveIdePin=8;
int iervoFrontPin=12;定义转向器的管脚编号
int IerrovorerDriverPin=6;
int=5;
int irFrontPin=A2;定义锐利红外距离的pi
int irPassengeidePin=A3;它们的电源为Vc=5V,而不是Hitec伺服系统的6V
int irDriveidePin=A1;
int ledLightDriveidePin=34;定义前LED灯的pi
int ledLightPassengeidePin=35;
无效设置(){
pinMode(irFrontPin,输入);在输入模式下设置IR距离的pi
pinMode(irPassengeidePin,输入);
pinMode(IrDriveIpin,输入);
pinMode(LED灯驱动器pin,输出);将前LED灯的pi设置为输出模式
pinMode(LED灯PassengeIdePin,输出);
序列号.开始(9600);以9600波特的速度启动串行端口
电线。开始();启动I2C总线
lcd.开始();启动lcd对象
车轮ervoFrontPassengeide.attach附件(车轮伺服前乘客销);将车轮伺服连接到四个pi
轮伺服后乘客侧.attach(车轮伺服后乘客销);
什么elservofrondriveide.attach文件(前驱动销);
什么eelServoRearDriveide.attach文件(车轮伺服后驱动销);
文件(iervoFrontPin);将IR伺服连接到三个pi
文件(iervoRearDriverPin);
公司(iervoRearPassengerPin);
车轮ervoFrontPassengeide.write文件(93);向车轮伺服系统发送停止信号
轮ServoRearPassengeide.write文件(93);
什么elservofrondriveide.write文件(93);
什么eelServoRearDriveide.write文件(93);
digitalWrite(ledLightDriveidePin,高);Tur LED亮起,向LED发送5V电压
数字写入(LED灯PassengeIdePin,高);
文件(90);
文件(171);
文件(7);
lcd背光();tur开启背光
lcd.清除();clea LCD
r设置(7,1);将cuor带到2号线的位置8
lcd打印(“你好!”);
r设置(3, 2);
lcd打印(“绿巨人还活着:)”);
}
void changeSpeedOfWheels(浮点a1、浮点a2、浮点b1、浮点b2、int stepTime、int cycleTime)
{
a1=-a1;
a2=-a2;
b1=-b1;
b2=-b2;
浮子an=a1;
浮点数bn=b1;
int n=(int)(周期时间/步长时间 0.5);
对于(int i=1;i<=n;i )
{
int i \u want \u movement \u right=(int)(an 0.5);这是真正的移动,范围从-70到 70
int i \u want \u movement \u left=(int)(bn 0.5);这是真正的移动,范围从-70到 70
int pos \u Right=-我想向右移动\u 90;60完全向后120完全向前90停止
int pos_Left=i_want_movement_Left 90;120完全向后60完全向前90停止
车轮ervoFrontPassengeide.write文件(右位置 3);
轮ServoRearPassengeide.write文件(右位置 3);
什么elservofrondriveide.write文件(左 3位置);
什么eelServoRearDriveide.write文件(左 3位置);
an=(a2-a1)/n an;
bn=(b2-b1)/n bn;
延迟(步进时间);
}
int i\u want\u movement\u right=a2;这是真正的移动,范围从-70到 70
int i\u want\u movement\u left=b2;这是真正的移动,范围从-70到 70
int pos \u Right=-我想向右移动\u 90;60完全向后120完全向前90停止
int pos_Left=i_want_movement_Left 90;120完全向后60完全向前90停止
车轮ervoFrontPassengeide.write文件(右位置 3);
轮ServoRearPassengeide.write文件(右位置 3);
什么elservofrondriveide.write文件(左 3位置);
什么eelServoRearDriveide.write文件(左 3位置);
}
无效循环(){
延迟(1000);
int irFrontMassive[156];声明前面、驾驶员侧有3个体量
int[159];和乘客侧半圆
国际乘客通行证[160];
对于(int i=0;i<=160;i ){用零初始化三个体量
irFrontMassive[i]=0;
IrD[i]=0;
irPassengerMassive[i]=0;
}
int maxVectorFrontLength=2000;以最接近的最大值开始向量值
int maxVectorFrontAngle=0;以零开始向量角度
文件(11);
延迟(500);
对于(int i=11;i<=167;i ){用来自前方红外传感器的大量数据填充前方距离
文件(i) ;
延迟(10);
irFrontMassive[i]=模拟读取(irFrontPin);
if(maxVectorFrontLength>irFrontMassive[i]){
maxVectorFrontLength=irFrontMassive[i];
maxVectorFrontAngle=i;
}
}
文件(90);
int maxVectorDriverLength=2000;以最接近的最大值开始向量值
int maxVectorDriverAngle=0;以零开始矢量角度
文件(12);
延迟(500);
对于(int i=12;i<=171;i ){用来自驾驶员红外传感器的大量数据填充驾驶员侧距离
文件(i) ;
延迟(10);
IrDRIVEIDPIN[i]=analogRead(IrDRIVEIDPIN);
if(maxVectorDriverLength>irDriverMassive[i]){maxVectorDriverLength=irDriverMassive[i];maxvectorDriverRange=i;}
}
文件(91);
int maxVectorPassengerLength=2000;以最接近的最大值开始向量值
int maxVectorPassengerAngle=0;以零开始矢量角
文件(7);
延迟(500);
对于(int i=7;i<=167;i ){用来自乘客红外传感器的大量数据填充乘客距离
文件(i) ;
延迟(10);
irPassengerMassive[i]=模拟读取(irPassengeidePin);
if(maxVectorPassengerLength>irPassengerMassive[i]){maxVectorPassengerLength=irPassengerMassive[i];maxVectorPassengerAngle=i;}
}
文件(88);
lcd.清除();Clea LCD
r设置(0,0);将cuor带到第1行的位置1
lcd打印(“前A=”);
lcd打印(最大矢量前角);
r设置(12, 0);
lcd打印(“L=”);
lcd打印(maxVectorFrontLength);
r设置(0,1);将cuor带到第2行的位置1
lcd打印(“左A=”);
lcd打印(最大矢量驱动角度);
r设置(12, 1);
lcd打印(“L=”);
lcd打印(最大矢量驱动长度);
r设置(0,2);取cuor到p
0个文件
压缩包大小:14MB
小程序二维码
微信小程序 微信扫码打开此模型
登录后发表评论
恒诺鑫科-专注碳素制品的开发与生产