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

M1 Rover

组件和用品

SparkFun 双 H 桥电机驱动器 L298
× 1
直流电机(通用)
× 4
Arduino UNO
× 1
LED(通用)
× 8
电阻 221 ohm
× 8
舵机(Tower Pro MG996R)
× 1
超声波传感器 - HC-SR04(通用)
× 1

应用和在线服务

Arduino IDE
Microsoft Visual Studio 2015
Microsoft Windows 10 IoT Core

关于这个项目

在构建了多个室内机器人之后,我决定构建一个能够穿越崎岖地形的室外机器人。我称之为“M1-Robot”。

M1-Robot 电机可以轻松驱动四个直流电机,使用 Arduino 驱动,因此它非常适合任何机器人项目,我认为这将为更强大的机器人打造梦幻般的心脏,因此我设计了越野四轮驱动 M1从头开始。

它不仅仅是一辆遥控车,它可以被编程为按照一组指令自动驾驶,甚至可以通过远程计算机进行控制,它可以像遥控车一样通过游戏控制器和自定义操纵杆使用。

第 1 步:设计

设计您自己的产品或原型很有趣,但是当您决定以实际尺寸制作时,它会变得更加复杂。所以我选择 Google Sketch-up 2017 作为强大且简单的设计工具,它允许您将模型的蓝图导出到激光切割机甚至 3D 打印机。

我花了前三个星期设计和建造机器人的外壳。

材料方面,给了我一张3mm的木板。

机器人的最后布线不太好,由于时间限制,包括将整个道路杀手塞入船体。

我认为我的机器人的一个恰当名称是 M1Rover。因为我打算开发一个版本的序列号,比如M2,M3等等。它设计在一个套件中,你要做的就是用一些螺丝把它组装起来。

第 2 步:组件和功能

⦁ 长达三个小时的运行时间!

⦁ 专为 Arduino Uno、Mega 和 Nano 设计。

⦁ 5V-9V 直流工作电压

⦁ 3mm厚的木质底盘

⦁ 68mm 直径轮子 L298N 双 H 桥电机/步进器

⦁ 9v 电池为直流电机供电

⦁ 9v 电池为 Arduino 供电

⦁ 前后LED灯7个

⦁ HC-06 蓝牙模块

⦁ Arduino 传感器扩展板 v5.0

⦁ 超声波换能器HC SR04

第 3 步:电机控制器

H 桥通常用于控制电机速度和方向,但也可用于其他项目,例如驱动某些照明项目(如高功率 LED 阵列)的亮度。

⦁ 确保你把所有的理由都绑在一起; Arduino、电源和电机控制器。

⦁ 如果您不想控制 PWM 功能,则不需要 PWM 引脚。

第 4 步:组装底盘

底盘已经用激光切割机切割成几个部分,正如我之前提到的,模型是在一个易于组装的套件中创建的,所以你所要做的就是按照下面的说明进行操作。

考虑到设计也很重要,当涉及到遥控车时,它应该包含前后灯。在M1-Robot的前面我放了4个白色LED,每个都连接220欧姆的电阻,在后面我放了2个红色的LED,每个都有220欧姆的电阻。这些 LED 可以由同一个应用程序控制

第 5 步:电路

电路有点棘手,因为当您决定同时控制多个电子部件时,您应该注意每个部件的顺序。

⦁ Arduino 传感器扩展板 5.0

⦁ Arduino Uno R3 L298N 双 H 桥电机/步进器

⦁ 9v 电池为直流电机供电

⦁ LED 灯 7(2 个后)和(4 个前)

⦁ HC-06 蓝牙模块

⦁ 超声波换能器HC SR04

⦁ 伺服电机9g

⦁ 有源蜂鸣器

⦁ 4 个带轮直流电机

第 6 步:软件

在编写M1-Robot的代码时我考虑了很多事情,通过GUI软件你可以得到更多关于机器人状态的信息。

入门套件的基本代码,可以通过蓝牙由手机或笔记本电脑控制:

int frontled =3; //led int reled =4; int outPin1 =5; //motor1 int outPin2 =6; //motor1 int outPin4 =11; //motor2 int outPin3 =12; //motor2 char bt =0; //BT int buzzerPin =2;const int pingPin =9; // 超声波传感器的触发引脚const int echoPin =8; // 超声波传感器的回波引脚/*----------------------------------------- -------------------------------------*/ void setup() { Serial.begin(9600); pinMode(outPin1,OUTPUT); pinMode(outPin2,OUTPUT); pinMode(outPin3,OUTPUT); pinMode(outPin4,OUTPUT); pinMode(前置,输出); pinMode (buzzerPin, OUTPUT);} void loop() { if (Serial.available()> 0) { bt =Serial.read();数字写入(前端,1);持续时间长,英寸,厘米; pinMode(pingPin,输出);数字写入(pingPin,低);延迟微秒(2);数字写入(pingPin,高);延迟微秒(10);数字写入(pingPin,低); pinMode(echoPin, INPUT);持续时间 =脉冲输入(echoPin,高);英寸 =微秒到英寸(持续时间); cm =microsecondsToCentimeters(duration); if (cm> 10 ){ // 到停止的距离 /*________________________________________________________________________*/ if(bt =='F') //向前移动 { digitalWrite(outPin1,HIGH);数字写入(outPin2,低);数字写入(outPin3,高);数字写入(outPin4,低); } else if (bt =='B') //向后移动 { digitalWrite(outPin1,LOW);数字写入(outPin2,高);数字写入(outPin3,低);数字写入(outPin4,高); } else if (bt =='S') //停止!! { digitalWrite(outPin1,LOW);数字写入(outPin2,低);数字写入(outPin3,低);数字写入(outPin4,低); } else if (bt =='R') //right { digitalWrite(outPin1,HIGH);数字写入(outPin2,低);数字写入(outPin3,低);数字写入(outPin4,低); } else if (bt =='L') //left { digitalWrite(outPin1,LOW);数字写入(outPin2,低);数字写入(outPin3,高);数字写入(outPin4,低); } else if (bt =='I') //向前右{ digitalWrite(outPin1,HIGH);数字写入(outPin2,低);数字写入(outPin3,低);数字写入(outPin4,高); } else if (bt =='G') //向前左{ digitalWrite(outPin1,LOW);数字写入(outPin2,高);数字写入(outPin3,高);数字写入(outPin4,低); } } else{ digitalWrite (buzzerPin, HIGH);延迟(500);数字写入(蜂鸣器引脚,低);延迟(500); } }}long microsecondsToInches(long microseconds) { return microseconds / 74 / 2;}long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2;} 

Arduino代码兼容任何类型的控制器,因为所有的电子部件都是通过串口命令编程工作的,因此您可以使用蓝牙模块发送/接收器、PC、手机。

⦁ C# windows 应用程序(附截图)

第七步:打包

初学者

该 M1-Robot 套件包含基本组件,而顶板允许轻松安装任何传感、操作或计算机硬件。只需将传感器连接到车载和 Rover 电源即可开始使用。

探险家

Explorer 包支持基本的室内和室外自主功能,我使用通过 IP 地址连接到互联网的手机摄像头代替 IP 摄像头。

映射

Explorer 包支持基本的 GPS 跟踪,当然,当车辆在室外时,实时查看坐标路径非常酷。

操纵

用机械臂和两指50mm抓手与世界互动。

重要提示:

并非所有舵机都有完整的 180 度旋转。许多人没有。您可以编写一个测试来确定机械极限在哪里。使用servo.writeMicroseconds 而不是servo.write 我更喜欢这个,因为它可以让你使用1000-2000 作为基本范围。许多舵机将支持超出该范围,从 600 到 2400。

所以,尝试不同的值,看看你在哪里得到了告诉你已经达到极限的嗡嗡声。然后只在你写作时保持在这些限制内。您可以在使用servo.attach(pin, min, max)时设置这些限制

编辑:我应该说,如果你愿意,你可以在附件中设置最小和最大微秒,然后简单地使用servo.write。它使用 map() 将您传递的 0-180 度值更改为微秒值。

如果您将其保持在终点站,很快就会出现 - 它会拉动大电流并迅速升温 - 通过以这种方式加载伺服器很容易“烹饪”任何时间长度。

找到真正的运动范围并确保代码不会试图将其推过终点站,constrain() Arduino 函数对此很有用:

servo.write (constrain (angle, 10, 160)); // 将角度限制在 10..160 范围内 

定制零件和外壳

m1rover_dxf_hackaday_4o7WTGHUGE.dxf

示意图


制造工艺

  1. 磁阻电机
  2. Raspoulette 原型
  3. Rover
  4. 简单的 Pi 机器人
  5. UFO 攻击!
  6. 3D RGB Arduclock
  7. 双极步进电机库
  8. MyRiver
  9. 钢铁侠
  10. 吉他快速拨片和踩踏踏板!
  11. 什么是直线电机?
  12. 什么是伺服电机?