使用 Dabble 控制的 Arduino 制成的 4 轮机器人
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
|
关于这个项目
另一个项目,另一个开箱即用的送礼创意!向您展示 Dabble 控制的 4 轮机器人 - 一个简单有趣的构建和易于控制的机器人,可以使用 Dabble 通过蓝牙进行控制,Dabble 是我们自主开发的移动应用程序。制作机器人只需要一块 Arduino Uno 板、底盘、轮子、电机轴和其他配件和工具。要控制它,您需要从 Google Play 安装 Dabble 并与蓝牙配对;并且您的机器人已准备就绪!
有什么更好的方式以与开始时相同的 DIY 精神结束这一年,对吧?那你还在等什么!
那么,让我们开始吧!
第 1 步:您需要的东西
- Arduino Uno 开发板
- 面包板
- 机箱
- 电机安装座
- 直流电机
- 轮子
- 汽车司机
- 蓝牙模块 HC05
- 直流接线端子
- 电池
- 跳线
第 2 步:制作身体
首先,我们将开始制作四轮机器人的身体。
取下机箱并将其倒置。
使用 M3 螺栓和螺母在此底盘上安装 4 个电机支架。
固定直流电机并使用 M2 螺母和螺栓将它们固定在电机支架上。
在直流电机的每个轴上安装轮子。
翻转组件,从而创建您的身体。
第 3 步:添加大脑
我们将使用的微控制器是 Arduino Uno。
图>我们将在其上建立所有连接,但我们还将使用面包板进行连接。
第 4 步:建立连接并使用电机驱动器
如下图所示进行连接。
我们将使用电机驱动器,因为 Arduino Uno 无法提供足够的功率来运行 4 个电机。因此,我们将添加电机驱动器,我们将能够为机器人提供所需的能量。
左侧两台电机并联。同理,右侧两台电机也太并联,接线如下:
- 启用引脚 – 数字引脚 10 和 11
- VCC – Arduino 5V
- m1_dir1、m1_dir2、m2_dir1、m2_dir2 – 数字引脚 4、5、6 和 7
- VC – 外接电池
- GND – Arduino 和电池的 GND 确保我们将所有 GND 线连接在一起。
第 5 步:连接智能手机
我们需要添加一个模块,用于在您的机器人和智能手机上的 Dabble 应用程序之间建立连接。
我们正在使用蓝牙 HC05 模块。按连接图连接。
图>
第 6 步:添加电池
我们需要为我们的机器人添加一个额外的电源。此外,为了将 Arduino Uno 与电池连接,我们将使用 DC 接线端子或 DC 插孔。
图>
第 7 步:Arduino 代码
上传以下代码:
机器人.ino
第 8 步:工作
我们可以使用 Dabble 轻松将机器人连接到智能手机。
在使用任何模块之前,您需要连接您正在使用的蓝牙。
应用程序中有许多模块可用于其他功能。
今天我们将使用游戏手柄模块。
我们将使用左组按钮:
- 向上——向前移动
- 向下——向后移动
- 左 – 左转
- 右 – 右转
第 9 步:结论
有了这个,你 DIYDabble 控制的四轮机器人就可以行动了!
嘘!正如您所知,Dabble 可以做的不仅仅是无线控制机器人。你可以在这里探索更多!
代码
- robot.ino
- 活力图书馆
robot.inoArduino
/* * * 这个项目演示了使用 Dabble 应用程序控制 arduino 4 轮机器人 * 我们将在数字模式下使用游戏手柄模块 * 有关游戏手柄的更多信息,请访问 https://thestempedia.com/docs/dabble/game- pad-module/* * 在这个项目中我们将使用 HC-05 蓝牙模块 * 对于 arduino "UNO" 使用蓝牙模块 buadrate 低于 38400 * * 蓝牙模块与 arduino 的连接 * * HC-05 蓝牙模块 ----> arduino "UNO" * * Tx ----> 2 * Rx ----> 3 * * 由 Punit chotaliya, STEMpedia 撰写 * 2019 年 1 月 16 日 * *///要将 GamePad 模块包含在 Arduino 程序中,你必须//包括以下标题:#define CUSTOM_SETTINGS#define INCLUDE_GAMEPAD_MODULE//包括Dabble应用程序库#include#define motor1_en 10 // motor 1 enable pin #define motor2_en 11 // motor 2 enable pin #定义 motor1_dir1 4 // 电机 1 input1 (InputA) #define motor1_dir2 5 // 电机 1 input2 (InputA)#define motor2_dir1 6 // 电机 2 input1 (InputB)#define mo tor2_dir2 7 // motor 2 input2 (InputB)void setup() { // 把你的设置代码放在这里,运行一次:Serial.begin(9600); // 使用 9600 波特率开始串行通信 Dabble.begin(38400); // 输入您的蓝牙模块波特率 // 注意:对于 arduino "UNO" 使用低于 38400 的蓝牙模块波特率 for(unsigned int i=4;i<8;i++) { pinMode(i,OUTPUT); // 将 motor1 和 motor2 的输入引脚声明为输出引脚 } pinMode(motor1_en,OUTPUT); // 将电机的使能引脚声明为输出 pinMode(motor2_en,OUTPUT); }void loop() { // 把你的主要代码放在这里,重复运行:Dabble.processInput(); //要刷新arduino UNO从移动应用程序中获取的数据,您必须使用以下代码行 if (GamePad.isUpPressed()) // 如果在游戏手柄中按下 UP 则将机器人向前移动 { Serial.print (“向上”);向前(); } else if (GamePad.isDownPressed()) // 如果在手柄中按下向下键,则将机器人向后移动 { Serial.print("DOWN");落后(); } else if (GamePad.isLeftPressed()) // 如果在手柄中按下左键,则移动机器人左移 { Serial.print("Left");剩下(); } else if (GamePad.isRightPressed()) // 如果在游戏手柄中按下 RIGHT,则移动机器人 RIGHT { Serial.print("Right");对(); } else // 停止机器人 { Serial.println("strop");停止(); } } void forward() // 机器人向前运动的函数 { analogWrite(motor1_en,255);模拟写入(motor2_en,255);数字写入(motor1_dir1,HIGH);数字写入(motor1_dir2,低);数字写入(motor2_dir1,HIGH);数字写入(motor2_dir2,低); } void reverse() // 机器人向后运动的函数 { analogWrite(motor1_en,255);模拟写入(motor2_en,255);数字写入(motor1_dir1,低);数字写入(motor1_dir2,HIGH);数字写入(motor2_dir1,低);数字写入(motor2_dir2,高); } void left() // 机器人左运动函数 { analogWrite(motor1_en,255);模拟写入(motor2_en,255);数字写入(motor1_dir1,低);数字写入(motor1_dir2,HIGH);数字写入(motor2_dir1,HIGH);数字写入(motor2_dir2,低); } void right() // 机器人向右运动的函数 { analogWrite(motor1_en,255);模拟写入(motor2_en,255);数字写入(motor1_dir1,HIGH);数字写入(motor1_dir2,低);数字写入(motor2_dir1,低);数字写入(motor2_dir2,高); } void Stop() // // 无运动的函数 { analogWrite(motor1_en,0);模拟写入(motor2_en,0);数字写入(motor1_dir1,低);数字写入(motor1_dir2,低);数字写入(motor2_dir1,低);数字写入(motor2_dir2,低); }
evive 库C/C++
无预览(仅限下载)。
示意图
制造工艺