亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

人头到机器人头

组件和用品

Arduino UNO
× 1
伺服电机
× 3
Android 设备
× 1
稳压电源板
× 1

必要的工具和机器

烙铁(通用)

应用和在线服务

SensoDuino

关于这个项目

计划做一些新的但不那么昂贵的事情。我非常喜欢机器人学。但是由于伺服器和其他零件的要求,我不喜欢制作它。现在我有 4 个伺服电机,只需 13 美元。我已经将它链接到一块板和 Arduino 板。

所以计划做一个像我们的头一样在所有轴上移动但便宜的机器人头。 研究了不同的传感器和方法,但最终找到了一种方法,所有物品都在我手中。我在这个项目中学习了很多东西。来吧,我解释一下我的研究。 我用粗体表示我学到的东西。

使用智能移动倾斜传感器控制头部

第 1 步:所需材料

我使用的材料

1) Arduino uno。

2) Linkit 一板。

3)3个伺服电机。

4) SensoDuino 免费安卓应用程序从这里下载。

5) 稳压电源板(12V,5V,3.3V).

6) 普通PCB。

7) PCB公连接器

8) 废铝进料切块。

9) 热胶枪。

10) 12V 和 5V 适配器。

11) 还有一些装饰品。

为什么 Linkit one board 和 Arduino uno

如果你有 Linkit 一块板和 3V 伺服电机,那么就不需要 Arduino UNO,因为我的 5V 伺服在 Linkit 一个板。

如果你有 Arduino uno 和蓝牙模块,那么就不需要 Linkit 一个板。

我没有蓝牙屏蔽,所以我使用 Linkit one board 和 Arduino uno。

第二步:自带伺服盾

1)为Arduino制作一个伺服电机屏蔽。(如果你甚至使用3v舵机,请小心Linkit只有2个PWM引脚)

2)我为伺服电机制作了一个类似PCB的屏蔽。

3) 使用此板,我们可以控制 arduino pind (3,5,6,9,10,11) 的 6 个伺服电机。

4) 这里使用了 3 线舵机。其中电源由外部5 V稳压电源板提供。

5) 虽然控制伺服使用 Arduino 板的适配器电源。因为PC USB供电会引起震动。这会导致伺服电机过热并损坏 伺服电机 。 (我的伺服损坏之一)

第 3 步:建立 Linkit 一个连接

1) Linkit one 想和arduino对话来控制舵机。

2) 为此,将 Linkit one 板的 Tx 连接到 Arduino 板的 Rx 和 Gnd。

3) 当收到数据时,它会发送到 Arduino。

注意:-

如果您有 Arduino 蓝牙扩展板,那么您可以使用一块板来控制整个设置。

第 4 步:伺服位置

1) 将所有伺服电机设置为 90 度。为此,将上述程序上传到 arduino..

2)将Servo电源和arduino电源连接到稳压电源板上的5V和12V引脚。

3) 如果我们在 Arduino 数字引脚 3,5,6 中制作的 PCB,请将伺服母连接器连接到公连接器。

3) 将12V适配器连接到稳压电源板上。

4) 打开适配器。

5) 现在所有的电机都按照程序旋转 90 度。

现在断开电机连接在一起,而不会干扰转子。

位置 Arduino IDE 代码为 Servoposition.ino


第 5 步:计划

1) 头部沿 x、y、z 3 轴旋转。

2) 旋转是

a) 偏航 - 左右看。

b) Pitch - 上下看

c) 侧向摇晃。

3) 首先使用双面胶带规划舵机。

4) 将铝隔板切割成L形,将顶部伺服固定到第二个。

5) 按照您的计划或如图所示连接伺服电机喇叭

6) 所有舵机中心在90度时必须是直的。

7) 用双面胶带粘住所有舵机和铝制L片,并检查运动不能干扰其他舵机。

第 6 步:构建

1) 现在是永久修复它的时候了。

2) 将双面贴纸一张一张撕下来,用热胶枪永久固定。

3) 注意不要损坏舵机。

4)再次将伺服连接器连接到arduino板并打开电源

5) 像最后一张图片一样,全部站直。

第 7 步:Android 应用详情

1) 在你的安卓手机中打开 SensoDuino。它具有查看所有移动传感器读数的选项,并能够通过蓝牙发送。

2) 列出了所有最新的传感器,我们只能选择手机中可用的传感器。

3) 进入菜单并选择连接蓝牙。

4) 列表显示可用的蓝牙设备。

5) 选择Linkit一蓝牙。

6)对于我们的项目,我们使用方向传感器。勾选第一个框打开,第二个框通过蓝牙发送数据。

7) 我们还通过在菜单中选择性能选项来设置每个传感器的性能。更改每次读数的时间间隔。

第 8 步:编码

1) 这里有两种编码,一种是 Linkit 一种。

使用蓝牙从手机获取数据并使用串口将其发送到Arduino

2) Arduino程序

当串行端口接收到数据时,它将字符连接为字符串。并使用 indexof 和 substring 划分一个完整的结果集。在该集合中再次使用 indexof 和 substring 来获取每个位置。从使用 arduino 中的地图来控制从 0 到 180 度的伺服。如果您使用蓝牙屏蔽,则根据需要更改程序。

程序如何运作

1)使用方向传感器,机器人像我们一样转头。

a) 偏航是根据磁性位置从 0 到 360 度的旋转。为此,我们使用 90 到 270 度,其中 180 是伺服的 90 度。所以戴帽子的时候要像绳子一样面对180度。

b) 间距是正面上下。它的传感器读数是-180到+180。我们使用-90到+90。

c)Roll 侧向摇晃是 0 到 90 到 0 到 -90 到 0。我们使用 -90 到 90。


Linkitonehead.ino 中给出了 Linkit 一个代码

Arduino 代码在 Arduinohead.ino 中提供


第 9 步:订购电路板

1) 将两个屏蔽板连接到两个微控制器的顶部。

2) 用双面贴纸一一粘贴。

3) 小心不要射击任何终端。

第 10 步:用手追踪

现在打开所有电源并使用手头的手机。 180度偏航坐姿,用手机控制三个伺服电机。

第 11 步:修复人脸

1) 圣诞节的时候在店里发现了很多圣诞老人娃娃。

2) 买一个娃娃,用双侧敲击将头部固定在顶部伺服臂上。

第 12 步:准备一个控制帽

1) 带一顶普通的帽子。

2) 如图所示在瓶盖正面粘贴双面贴纸。

3) 将手机贴在双面胶上。

第 13 步:测试视频

测试低性能 表示每 250 毫秒的传感器刷新率。

第 14 步:最终视频

以每 100 毫秒一个读数的传感器读数速率查看动作

代码

  • Servoposition.ino
  • Linkitonehead.ino
  • Arduinohead.ino
Servoposition.inoArduino
#include  Servo leftright;Servo updown;Servoshake;void setup() { Serial.begin(9600); leftright.attach(3); updown.attach(5);摇一摇。附加(6); leftright.write(90); updown.write(90);摇。写(90); }void loop() {}
Linkitonehead.inoArduino
#include #include int readval;String inputString ="";String outputString ="";int firstpoint=0;int secondpoint=0;void setup() { if(! LBTServer.begin((uint8_t*)"Sivam_LIO")) { return; }// Serial.begin(9600); Serial1.begin(9600); }void loop() { uint8_t buf[64]; int 字节读取; if(LBTServer.connected()) { while(true) { bytesRead =LBTServer.readBytes(buf, 32); if(!bytesRead) 中断;输入字符串=""; for(int j=0;j<32;j++) { char inChar =char(buf[j]); // 将它添加到 inputString:inputString +=inChar; }// Serial.println(inputString); Serial1.println(inputString);// firstpoint=inputString.indexOf('>');// Serial.println(inputString);// Serial.println(firstpoint);// if (firstpoint>0)// {/ / secondpoint=inputString.indexOf('>',firstpoint+1);// if (secondpoint>0)// {// outputString=inputString.substring(firstpoint,secondpoint);// inputString=inputString.substring(secondpoint);// Serial.println(outputString);// }// } } delay(100); } else { LBTServer.accept(5); }}
Arduinohead.inoArduino
#include  Servo leftright;Servo updown;Servoshake;String inputString ="";boolean stringComplete =false;String teststr2;String sensorid;String sensorrecid;String sensorval1;String sensorval2;String sensorval3;int S1;int S2;int S3;int startchr=0;int endchr=0;int rot1;int rot2;int rot3;void setup() { Serial.begin(9600);// inputString.reserve(200); leftright.attach(3); updown.attach(5);摇.attach(6);}void loop() {}void serialEvent() { while (Serial.available()) { char inChar =(char)Serial.read(); if (inChar !='\n') { inputString +=inChar; } } startchr =inputString.indexOf('>'); if (startchr>=0) { endchr =inputString.indexOf('>',startchr+1); if (endchr>0) { teststr2=inputString.substring(startchr,endchr); inputString=inputString.substring(endchr); startchr =teststr2.indexOf(','); sensorid =teststr2.substring(1,startchr); endchr =teststr2.indexOf(',',startchr+1); sensorrecid=teststr2.substring(startchr+1,endchr); startchr=endchr; endchr =teststr2.indexOf(',',startchr+1); sensorval1=teststr2.substring(startchr+1,endchr); startchr=endchr; endchr =teststr2.indexOf(',',startchr+1); sensorval2=teststr2.substring(startchr+1,endchr); startchr=endchr; sensorval3=teststr2.substring(startchr+1); S1=sensorval1.toInt(); S2=sensorval2.toInt(); S3=sensorval3.toInt(); rot1=map(S1, 90, 270, 180, 0);如果 (rot1<0) rot1=0;否则如果 (rot1>180) rot1=180; rot2=map(S2, -90, 90, 0, 180);如果 (rot2<0) rot2=0;否则如果 (rot2>180) rot2=180; rot3=map(S3, 90, -90, 0, 180);如果 (rot3<0) rot3=0;否则如果 (rot3>180) rot3=180;如果 (rot1!=0 &rot1!=180) { leftright.write(rot1); } if (rot1!=0 &rot1!=180) { updown.write(rot2); } if (rot1!=0 &rot1!=180) {shake.write(rot3); } 延迟(15); // Serial.print("Sensor-");// Serial.println(sensorid);// Serial.print("Sensor Val1-");// Serial.println(rot1);// Serial.print("传感器 Val2-");// Serial.println(rot2); // Serial.print("Sensor Val3-");// Serial.println(rot3); } } }

制造工艺

  1. Raspberry Pi CD Box Robot
  2. 滚动报警机器人
  3. RaspiRobot Board V2
  4. 制作 Minecraft Creeper Robot
  5. 阿基米德:人工智能机器人猫头鹰
  6. 打开简历机器人
  7. ROS 机器人
  8. 使用 KINECT 和 RASPBERRY PI 的 SONBI 机器人人体检测
  9. 简单的 Pi 机器人
  10. 人力资本
  11. 软体机器人使用相机和阴影来感知人的触摸
  12. 人类反射使两足机器人保持直立