基于蓝牙的智能手机控制机器人汽车
扫描二维码
随时随地手机看文章
你们中的大多数人可能知道机器人项目及其使用微控制器的工作。在当今时代,这样的DIY机器人项目是如此受欢迎和最需要的。因此,我们决定使用Arduino制作一个新的机器人项目蓝牙控制机器人汽车,它非常简单,与嵌入式技术的学生,爱好者和初学者完美兼容。通过添加更多的技术,这些未来机器人将在不同的领域用于不同的目的,如消防机器人、监视机器人等。
在这个项目中,我们将使用Arduino作为微控制器来制作一个无线蓝牙控制的机器人汽车。这将是一个令人兴奋的项目,它是无线通信、机器人和电子技术的结合。我们可以用智能手机控制机器人,只需要在Playstore上安装一个应用程序(见后文)。我们正在集成一个蓝牙模块,用于在机器人汽车和支持蓝牙的设备之间进行无缝无线通信。
我们之前创建了一些其他基于物联网的机器人项目:
•使用NodeMCU的无线控制机器人
•使用Arduino的手势控制机器人
•基于Arduino IDE的ESP32 CAM监控机器人
制造无线机器人汽车所需的组件
•Arduino UNO *1
•l298n2a电机驱动模块*1
•HC-05蓝牙模块*
•5v减速电机*2
•电力供应
•机器人底盘
•连接电线
•控制器应用和智能手机
L298N电机驱动器引脚
该模块的功能是作为轮减速电机的驱动器/控制器,可以控制它们的方向和速度。由于我们没有利用Arduino产生的PWM信号来调节速度,因此减速电机将以最大速度运行,因为我们保持了主板上排序的PWM引脚(ENA & ENB)的当前状态。因此,驱动模块仅用于改变电机的旋转方向,允许机器人在所有四个方向上移动。
它主要包括从连接电机到控制电机的所有连接。
VCC:用于向电路板提供电源的引脚。其工作电源电压范围为4-46伏。
GND:用于连接单板和电源接地的引脚。为了确保电路板在与已经通电的Arduino接口时能够正常工作,必须在电路板的地与Arduino的地之间建立连接。
5V:因为电路板有一个内置的5伏稳压器。该引脚提供恒定的5伏输出,为内部逻辑电路供电,同时为微控制器等其他设备供电。
ENA和ENB:这些引脚用于控制电机的速度。将指定的引脚拉高将启动电机以最高速度旋转,而将它们拉低将停止其运动。然而,通过利用脉宽调制(PWM),可以控制电机的速度。通常,模块在这些引脚上配备了跳线。安装跳线后,电机以最高速度运行。如果您希望以编程方式调节电机速度,则必须移除跳线并将引脚连接到Arduino的pwm支持引脚。
IN1和IN2:这些引脚用于控制电机的旋转方向和停止电机。这两个引脚被分配用于控制一侧电机,而IN3和IN4被分配用于控制另一侧电机。将逻辑HIGH-LOW设置为IN1和IN2将在前进方向上创建自旋,而LOW-HIGH将反转自旋。同样,IN3和in4也是如此。输入LOW-LOW和HIGH-HIGH逻辑将导致电机停止。这些引脚连接到Arduino的数字引脚上。
OUT-1 & OUT-2:该引脚用于连接电机。一个电机连接到OUT-1,另一个连接到OUT-2。您可以将电机连接到5v至35v的电压范围。请记住,无论施加到VCC的电压是多少,您都会得到大约2伏的衰减。
HC-05蓝牙输出
它是电子工程中广泛使用的无线通信模块。它使用串行UART通信进行数据传输。
模块可以在两种模式下工作:
主模式:可以与所有从机共享数据。
从模式:从主蓝牙接收数据。
在这里,我们的蓝牙模块是一个奴隶,而智能手机是一个主人。
它由6个引脚组成,分别是STATE, RXD, TXD, GND, VCC和EN,如模块背面所述。
STATE引脚:该引脚定义模块的状态,无论它是否与另一个设备配对。
RxD引脚:该引脚使用串行UART通信。当模块处于命令模式时,该引脚用于发送AT命令。
TxD引脚:该引脚使用串行UART通信。该引脚用于在模块处于命令模式时推出对AT命令的响应。
Vcc引脚:该引脚用于为模块供电,使其工作。它通常连接到Arduino板上的5V引脚。其电压范围在3.6v到5v之间。
GND引脚:该引脚用于将模块连接到Arduino板的接地。
EN引脚:该引脚用于命令模式和数据模式之间的切换。如果此引脚设置为HIGH,则模块将处于命令模式。同样,如果该引脚设置为LOW,则模块将处于数据模式。
机器人汽车底盘组装
我们已经使用了一个亚克力激光切割板与所有必要的配件兼容。它是精确切割与所有空间提供的组件配件使用螺丝刀。您也可以参考各种在线平台购买此类类型的底盘原型
这些都有所有需要的零件,如电机,电池支架,所有的轮子和螺丝。你只需要正确地挑选和拧它。您也可以参考制造商组装视频。这些都是低成本,高度耐用,精确装配。所以,你不用担心试穿的问题。
看看我的底盘原型在所有的配件后:
Arduino蓝牙控制机器人电路图
以下是蓝牙控制机器人汽车的综合电路图,设计简单易懂,易于实现。
让我们看看它们之间的联系:
首先,将蓝牙HC-05模块连接到Arduino上,检查IDE串口监视器上接收到的数据。在我的例子中,HC-05的Txd和Rxd分别连接到11和10个数字引脚。BT模块通过将电源引脚连接到各自的Arduino电源引脚来获得Arduino的电源。
Arduino从L298N板的5v输出端子和地线获得电力。
L298N的连接:
正如我们已经看到的L298N电机驱动器的引脚描述。因此,它现在很容易与Arduino接口。
通过将电池的正极连接到驱动板的VCC,我们可以为电机驱动器供电,我们使用2S锂离子电池,输出电压约为7.4伏。之所以做出这种选择,是因为我们使用的是在3至12伏电压范围内工作的bo齿轮电机,电路板内部电路在输出电机端子处减少约2伏对电机功能的影响最小。因此,电机将得到附近5.5 -6伏特。
现在,要将数字方向控制引脚连接到Arduino,只需将Arduino的任意四个数字引脚连接到驱动板的IN1, IN2, IN3和IN4引脚,并根据正确的Arduino引脚定制代码。
实际连接和功能如下:
应用程序配置接口Bot与智能手机
将机器人汽车与我们的智能手机连接是一个非常简单的过程,我们只需要从Playstore下载一个名为“Bluetooth RC car”的应用程序。该应用程序有一个预先构建的界面来控制任何类型的蓝牙RC机器人。该应用程序有图形按钮,滑块,甚至传感器(例如,加速度计)直观控制。它还有各种其他内置功能来控制不同的功能,比如打开/关闭汽车的前灯和后灯等等。
打开安卓智能手机的Playstore,搜索“Bluetooth RC Car”。你会发现一个像这样的应用程序:
安装应用程序并打开它。您将看到一个吸引人的界面,使控制汽车变得容易。
智能手机控制的机器人汽车工作原理
我们都知道Arduino是机器人汽车的大脑。它使用Arduino IDE(集成开发环境)进行编程,以接收和处理通过蓝牙发送的命令。编写编程代码来解释接收到的信号并将其转换为电机的特定动作,例如前进,后退,向左或向右转弯以及停止。
在继续操作之前,请确保机器人车的开关处于打开状态,并确认电池已充满电。此外,仔细检查所有连接,确保它们是安全的,没有松动。
机器人和智能手机之间的无线接口是通过机器人的蓝牙连接功能实现的,该功能是通过使用HC-05模块实现的。
在我们的蓝牙智能手机上,移动应用程序有一个控制界面。该界面允许用户向机器人汽车发送命令,指定所需的动作或运动。
•将Code上传到Arduino,检查BT模块指示灯是否闪烁。
•打开应用,打开智能手机蓝牙,将应用与BT模块“HC-05”配对。
•如果申请配对成功,左上角的红色标记将变为绿色。
一旦建立连接并准备好控制界面,用户就可以使用智能手机设备无线控制机器人汽车。控制信号通过蓝牙传输,并由Arduino板接收,然后Arduino板对其进行解释并相应地控制电机,执行所需的运动。
蓝牙控制机器人汽车的Arduino代码
我们知道蓝牙模块使用串行通信来传输数据。该程序读取串口上可用的蓝牙模块数据。根据所接收到的命令或数据,处理器执行所期望的移动功能。
我们已经包含了SoftwareSerial库来定义串行通信引脚与BT模块通信。代码内部,Pin 11被定义为RX,那么它必须连接到BT模块的TxD上。同理,引脚10插入BT模块的RxD。此外,我们将IN1, IN2, IN3和IN4引脚定义为Arduino的2,3,4和5个数字引脚。
在setup()函数中,我们以9600的波特率初始化硬件串行通信,而函数bt.begin()以相同的波特率初始化蓝牙通信。我们还定义了引脚模式,并将所有方向控制引脚初始设置为LOW,以停止任何类型的电机运动。
Inside Loop()函数,我们正在检查串行端口上可用的数据,并将其打印到串行监视器以检查BT模块的功能。发送任何字符终端命令连接到您的智能手机上显示它在串行监视器。
我们使用Switch Case语句比较接收到的数据,如果条件为真,语句将被执行。
我们在循环外定义的switch语句中调用了五个不同的移动函数。
运动函数:我们已经定义了四种类型的运动函数和一个停止函数。配置四个数字引脚(IN1, IN2, IN3, IN4)将控制所有方向的移动。提供高-低指令对于转动轮子至关重要。有时开发人员必须根据他们的硬件连接调整这些命令来设置True方向。
本文编译自iotdesignpro