DIY 自平衡Arduino机器人-【单片机教程-创客】

文章目录[隐藏]

 

正文共:4091字 54图
预估阅读时间:11 分钟

 

这篇文章是关于DIY自平衡机器人的,我将向您展示如何构建自己的自平衡机器人。

这篇文章是关于DIY自平衡机器人的,我将向您展示如何构建自己的自平衡机器人。我尝试构建该项目,但未能获得预期的结果。但是这款机器人的表现相当不错且准确,尽管与我以前的机器人相比,这并不完美。

 

我使用定制的PCB,Arduino nano,MPU6050,A4988驱动程序,HC-05 bt模块,MDF板和一些硬件来构建此自平衡机器人,详细材料清单可在本文中找到。此项目中使用Balancingwii固件和EZ-GUI android应用程序通过蓝牙连接控制机器人。下载链接:https://51qudong.lanzous.com/ibgf1qj ,长按二维码直接下载:

因此,让我们从一些基本的自平衡机器人开始。

自平衡机器人是指机器人通过不断校正其位置来平衡两个轮子。

陀螺仪传感器用于自平衡机器人中,该传感器连续将机器人方向数据发送到控制器。

根据该数据控制器的命令,电动机向前或向后运行,以保持机器人的位置笔直。

 

这是自平衡机器人的理想位置,身体完美地向上注视着车轮。Y轴与机器人的身体之间的夹角为零。

 

 

当身体向前倾斜时,Y轴与身体之间会有一定角度。MPU6050陀螺仪传感器检测到该角度,然后将此数据发送到Arduino。Arduino现在执行PID计算,并命令步进电机正向运行,以将倾斜角最小化到零度。

 

 

 

如果机器人向后倾斜时,电机也会向后旋转并将倾斜角校正为零,则会发生相同的情况。机器人继续以每秒400次的速度向前和向后反转电动机,因此我们看起来机器人在该位置稳定。

  1. Arduino Nano………………………..1

  2. MPU605陀螺仪传感器……………….1

  3. Nema 17步进电机………….2

  4. 100mm车轮…………………………..2

  5. A4988步进驱动器IC…………..2

  6. HC-05蓝牙模块............ 1

  7. 4mm MDF板

  8. 150mm M5螺纹杆——4个

  9. 一些螺母和螺栓

DIY自平衡机器人电气图纸

 

上图是自平衡机器人的电路图。

我已经准备好一块PCB,您也可以下载Gerber文件订购PCB,也可以在easyeda平台中编辑PCB。
https://easyeda.com/sharmaz747/self-balancing

注意:-订购PCB之前,请先对自己的产品进行交叉检查。

 

您必须需要的基本连接和最小连接如下

I2C:

  • A4 – SDA

  • A5 – SCL

电机驱动器引脚:

  • D5 – STEP1(PORTD 5)

  • D6 – STEP2(PORTD 6)

  • D7 – DIR1(PORTD 7)

  • D8 – DIR2(PORTB 0)

  • D4 –启用(均适用)

机器人构造

以下是自平衡机器人的基本构造图

从4mm厚的MDF纸上切下了三张大小为130 x 65mm的图片

 

在这里,我钻了一些孔,以便步进电机,然后将M3杆插入所有三个MDF板上。
 

然后,我切成两片20mm x 20mm铝角,尺寸为42mm,用于安装带有平台的步进电机。

 

 

现在,我使用一些硬件来组装自平衡机器人的主体。

 

 

在这里,我将M5杆插入了基础平台,并借助20x20x42铝角安装了nema 17步进电机。

 

 

现在,我将中间和顶部平台放在M5摇杆上,并用M5螺母固定。

并将PCB放在10 mm垫片上的中间平台上。

 

 

将1500mah 11.7 V脂糊剂放在基础平台上,并用皮带将其固定在适当的位置。

 

 

现在,终于将车轮固定在步进电机的轴上,并用M3机器人将其拧紧。

 

 

这样,我们的机器人组装就完成了。

现在我们可以进行自平衡机器人的编程了。

程式设计

下载balancewii:https://github.com/mahowik/BalancingWii

首先要开始对arduino进行编程,我们需要下载一个称为balancewii的用于平衡机器人的固件。

该固件基于用于四旋翼和多旋翼飞行无人机的Multiwii固件。您可以在此处了解有关Multiwii的更多信息http://www.multiwii.com/wiki/index.php?title=Main_Page  。

特别感谢开发此固件的Mahowik: https://github.com/mahowik

下载固件均衡 wii:https://github.com/mahowik/BalancingWii,现在单击绿色按钮克隆或下载。固件将以ZIP格式下载到您的PC中。

 

 

现在解压缩下载的文件,打开新创建的文件夹,并删除图像中突出显示的三个文件,这根本不需要。

另外,包含balancewii.ino文件的文件夹的名称都必须相同,否则您将得到编译错误。

现在,在arduino中打开balancedwii.ino文件并编译代码并上传它,而无需进行任何更改。

在上传代码之前,请不要忘记关闭BT模块。

如果您的MPU6050方向不同,那么我需要在config.h文件中更改此行。
您可以在此处将PITCH更改为ROLL

  1. #define CURRENT_AXIS PITCH //可以选择ROLL或PITCH轴作为当前轴。

默认情况下,大多数HC-05 BT模块都带有默认的9600波特率。

但对于此项目,请注意,您的HC-05 BT模块的波特率必须为115200,否则您将无法连接android应用

您可以通过AT命令在google上搜索HC-05 bt模块的波特率来更改它,您将获得许多有关它的教程。

  1. / *这是串行接口的速度* /

  2. #定义SERIAL0_COM_SPEED 115200

  3. #define SERIAL1_COM_SPEED 115200

  4. #define SERIAL2_COM_SPEED 115200

  5. #define SERIAL3_COM_SPEED 115200

如果您认为机器人的响应速度较慢,则可以尝试在config.h文件中更改此设置,但请记住,这些值必须处于约束状态。

  1. #define MAX_SPEED 350 //应该<= 500

  2. #define MAX_TARGET_ANGLE 130 //其中10 = 1度,应<= 15度(即<= 150)

  3. #define MAX_STEERING 90 //应该<= 100

Android应用

EZ-GUI应用程序是我们要在这里使用,你可以了解更多关于EZ-GUI(http://ez-gui.com/)从这里。EZ-GUI应用程序可通过点击以下或扫描下面的二维码链接从Play商店免费下载。上面下载包已包含这个apk文件。

https://play.google.com/store/apps/details?id=com.ezio.multiwii

应用程式设定

 

 

打开下载的应用程序,然后单击屏幕右上角的三个点,点击设置。

在BT设备上选择以选择BT模块,现在单击NEXT按钮

现在,从列表中选择固件“ Multiwii 2.40”,然后单击“下一步”,直到到达主屏幕。

 

 

单击“连接”按钮以连接蓝牙。

 

按下“ AUX”按钮

 

刻度线标记如上所示。

 

这是我的PID设置

该PID设置对于您的机器人来说不是强制性的,每个机器人都是唯一的。PID取决于机器人的设计,重心,车轮尺寸,电机类型等。尝试不同的设置,经过一定的尝试,您肯定会获得最佳的设置。

现在从此屏幕返回,并单击右上角的三个点并转到“高级”,然后转未经测试”,然后单击“模型控件”

 

现在,这是与您玩机器人的屏幕,您可以从操纵杆上运行自平衡机器人,
并在此屏幕上进行尝试不同的设置以了解更多信息。

这样,我们的DIY自平衡机器人就可以玩了。
如果您有任何问题,请在评论部分提问。
点击阅读原文进入原链接。

下面是原文中的留言

 

https://www.omc-stepperonline.com/nema-17-stepper-motor/big-sale-nema-17-bipolar-1-8deg-26ncm-36-8oz-in-0-4a-12v-42x42x34mm-4-wires-300mm-length-cable.html

 

 

 

晶振:类似于人类的心脏,他给单片机提供着一个有规律的周期,如同心脏间歇性的跳动推动血液的流动。他的频率快慢决定了时钟周期,和机械周期。

生成海报
点赞 0

桑迪普

我还没有学会写个人说明!

相关推荐

如何利用Arduino制作智能避障机器人

简介:如何使用ArduinoUno避开机器人的智能障碍嗨,大家好。在此指导中,我将教您如何构建避障机器人。该机器人将是一辆小型且简单的两轮汽车,它将向前移动直到在其路径中检测到障碍物为止。这样做后,它将停止,向后移动一点,然后向左和向右看。然后它将比较任一侧前方的可用距离,然后转向可用距离似乎相对相对的方向。这样,它将能够在充满障碍的环境中移动而不会与任何物体碰撞。这只是在诸如仓库机器人,无人驾驶汽车等各种应用中使用的避免碰撞概念的小部分表示。为了检测距离,机器人使用了HC-SR04超声波传感器。因此,此传感器每10微秒发送一次超声波,如果前方有障碍物,则传感器会接收到回声。根据行程时间,它可

自制一辆arduino主控的小型铲车

简介:JCB机器JCB机械非常受欢迎,因为它是民用工业中的重型建筑设备。JCB也被称为反铲装载机。它可用于非常快速地装卸卡车。它用于道路建设,卡车装卸以及更多其他用途。每个建筑公司都使用它,因为它足够快并且可以举起沉重的重量。步骤1:视频步骤2:使用的材料1,ArduinoNano-1个2.游戏杆模块-2个3.伺服电机(180度)-4号4.公对母跳线-根据要求5.公对公跳线-根据要求6.直流轴电机-2个7.按钮-2个8.迷你面包板9.电源-5V1Amps步骤3:3D零件这些是JCB的3D装配零件。步骤4:从物理建筑开始-伺服电机1首先使用Fevikwik将带有附接部件的臂固定在相应的插槽中。然

多用途便携式自动高度调节架-arduino系列

简介:便携式多功能自动高度调节架身高是公共场所的主要问题。由于身高问题,孩子们在公共场所受到的影响更大。由于高度问题而出现的问题是1)第一名是从公斤孩子到高中孩子的学校,所以高度变化很大,所以要用洗手盆,现在几天后要用洗手液进入。2)父母带孩子到酒店洗手盆高度。3)在公司和办公室人脸识别考勤系统中,如果适合矮个子的矮个子人受苦,如果适合矮个子的矮个子人受苦。就像很多地方一样。我看到在公共场所的孩子无法伸手去洗手盆,有些人想帮忙,或者他们举起洗手盆。现在有一天因大流行而触及其他地方的公众希望减少。因此,主要针对在上学时要上学的孩子,他们打算消毒它,我计划根据自己站立的人移动其高度的高度调节器。它