构建Raspberry Pi电机驱动器HAT的教程分享

raspberry pi hat 是 raspberry pi 的附加板,尺寸与 pi 相同。它可以直接安装在 raspberry pi 的顶部,不需要任何进一步的连接。市场上有许多 raspberry pi hat。在本教程中,我们将构建一个raspberry pi 电机驱动器 hat来驱动直流和步进电机。此电机驱动器 hat 包含一个 l293d 电机驱动器 ic、16*2 lcd 显示模块、四个按钮和用于 sim800 模块的额外引脚和一个 3.3v 稳压器。这个 raspberry pi hat 将在构建机器人项目时派上用场。
raspberry pi 电机驱动器 hat 所需的组件
树莓派
l293d集成电路
4 个按钮
贴片电阻(1×10k、12×1k)
1×10k电位器
4× smd led
lm317 稳压器
2×螺丝端子
16*2液晶模组
l293d电机驱动ic
l293d 是一种流行的 16 引脚电机驱动器 ic。顾名思义,它用于控制单极、双极步进电机、直流电机,甚至伺服电机。单个 l293d ic 可以同时驱动两个直流电机。此外,这两个电机的速度和方向可以独立控制。该 ic 带有两个电源输入引脚,即“vcc1”和“vcc2”。vcc1 用于为内部逻辑电路供电,应为 5v,vcc2 引脚用于为电机供电,可为 4.5v 至 36v。
l293d 规格:
电机电压 vcc2 (vs):4.5v 至 36v
最大峰值电机电流:1.2a
最大持续电机电流:600ma
vcc1(vss) 的电源电压:4.5v 至 7v
转换时间:300ns(在 5v 和 24v 时)
自动热关断可用
raspberry pi 电机驱动器 hat 的电路图
下图显示了带有 raspberry pi 的 l293d 电机驱动器的完整原理图。原理图是使用 easyeda 绘制的。
该 hat 由 l293d 电机驱动 ic、16*2 lcd 显示模块和四个按钮组成。我们还为带有 3.3v 稳压器的 sim800 模块提供了引脚,该稳压器使用 lm317 可变稳压器设计用于未来的项目。raspberry pi 电机驱动器 hat 将直接安装在 raspberry pi 顶部,从而更容易使用 raspberry pi 控制机器人。
为 raspberry pi 电机驱动器 hat 制造 pcb
原理图完成后,我们可以继续布置 pcb。您可以使用您选择的任何 pcb 软件来设计 pcb。我们已经使用 easyeda 为这个项目制造 pcb。您可以通过从“层”窗口中选择层来查看 pcb 的任何层(top、bottom、topsilk、bottomsilk 等)。除此之外,还提供了 pcb 的 3d 模型视图,了解它在制造后的外观。下面是 pi motor driver hat pcb 顶层和底层的 3d 模型视图。
组装raspberry pi 电机驱动器 hat pcb
几天后,我们收到了整齐包装的 pcb,pcb 质量一如既往地好。板子的顶层和底层如下图所示:
在确保轨道和脚印是正确的之后。我继续组装pcb。此处的图像显示了完全焊接的电路板的外观。
树莓派设置
在对 raspberry pi 进行编程之前,我们必须安装所需的库。为此,首先,使用以下命令更新 raspberry pi os:
sudo apt-get 更新sudo apt-get 升级  
现在为 lcd 模块安装adafruit_charlcd 库。该库适用于 adafruit lcd 板,但也适用于其他品牌的 lcd 板。
sudo pip3 安装 adafruit-charlcd  
树莓派电机驱动代码说明
在这个项目中,我们正在对 raspberry pi 进行编程,以在两秒的时间间隔内同时驱动正向、反向、向左和向右方向的两个直流电机。电机的方向将显示在 lcd 上。完整的代码在文档末尾给出。在这里,我们将解释代码的一些重要部分。
像往常一样,通过导入所有必需的库来启动代码。rpi.gpio 模块用于使用 python 访问 gpio 引脚。模块时间用于将程序暂停一段预定义的时间。
导入 rpi.gpio 作为 gpio进口时间进口板导入 adafruit_charlcd 作为 lcd  
之后,为 l293d 电机驱动器 ic 和 lcd 显示器分配 gpio 引脚。
液晶显示器 = 0液晶显示器 = 5lcd_d4 = 6电机 1a = 4电机 1b = 17电机 1e = 12  
现在,将 6 个电机引脚设置为输出引脚。接下来的四个是输出引脚,其中前两个用于控制右侧电机,接下来的两个用于控制左侧电机。接下来的两个引脚是左右电机的启用引脚。
gpio.setup(motor1a,gpio.out)gpio.setup(motor1b,gpio.out)gpio.setup(motor1e,gpio.out)gpio.setup(motor2a,gpio.out)gpio.setup(motor2b,gpio.out)gpio.setup(motor2e,gpio.out)  
在 while 循环内,以两秒的间隔同时向前、向后、向左和向右移动两个直流电机。
gpio.输出(电机 1a,0) gpio.输出(电机 1b,0) gpio.输出(电机 2a,1) gpio.输出(motor2b,0) lcd.message ('左') 打印(“左”) 睡觉(2) #向前 gpio.输出(电机 1a,1) gpio.输出(电机 1b,0) gpio.输出(电机 2a,1) gpio.输出(motor2b,0) lcd.message ('转发') 打印(“转发”)…………………………………………  
测试 raspberry pi 电机驱动器 hat
完成 pcb 组装后,将电机驱动器 hat 安装在 raspberry pi 上,然后启动代码。如果一切正常,连接到 raspberry pi 的直流电机将每两秒同时向左、前、右和反向移动,电机方向将显示在 lcd 显示屏上。
导入 rpi.gpio 作为 gpio
从时间导入睡眠
进口板
导入 adafruit_charlcd 作为 lcd
# 树莓派引脚设置
液晶显示器 = 0
液晶显示器 = 5
lcd_d4 = 6
lcd_d5 = 19
lcd_d6 = 26
液晶显示器 = 21
液晶背光 = 2
#定义 16x2 lcd 的 lcd 列和行大小。
lcd_columns = 16
lcd_rows = 2
lcd = lcd.adafruit_charlcd(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)
# 电机驱动器输入引脚
电机 1a = 4
电机 1b = 17
电机 1e = 12
电机 2a = 27
电机 2b = 22
电机 2e = 13
gpio.setwarnings(假)
gpio.setmode(gpio.bcm)
gpio.setup(motor1a,gpio.out)
gpio.setup(motor1b,gpio.out)
gpio.setup(motor1e,gpio.out)
gpio.setup(motor2a,gpio.out)
gpio.setup(motor2b,gpio.out)
gpio.setup(motor2e,gpio.out)
gpio.setup(14, gpio.in, pull_up_down=gpio.pud_up)
gpio.输出(电机 1e,1)
gpio.输出(motor2e,1)
而真:
input_state = gpio.input(14)
打印(输入状态)
如果 input_state == false:
#剩下
gpio.输出(电机 1a,0)
gpio.输出(电机 1b,0)
gpio.输出(电机 2a,1)
gpio.输出(motor2b,0)
lcd.clear()
lcd.set_cursor(6,0)
lcd.message ('左')
打印(“左”)
睡觉(2)
#向前
gpio.输出(电机 1a,1)
gpio.输出(电机 1b,0)
gpio.输出(电机 2a,1)
gpio.输出(motor2b,0)
lcd.clear()
lcd.set_cursor(4,0)
lcd.message ('转发')
打印(“转发”)
睡觉(2)
#正确的
gpio.输出(电机 1a,1)
gpio.输出(电机 1b,0)
gpio.输出(motor2a,0)
gpio.输出(motor2b,0)
lcd.clear()
lcd.set_cursor(5,0)
lcd.message ('对')
打印(“右”)
睡觉(2)
#撤销
gpio.输出(电机 1a,0)
gpio.输出(电机 1b,1)
gpio.输出(motor2a,0)
gpio.输出(motor2b,1)
lcd.clear()
lcd.set_cursor(4,0)
lcd.message ('反向')
打印(“反向”)
睡觉 (2)
#停止
gpio.输出(电机 1a,0)
gpio.输出(电机 1b,0)
gpio.输出(motor2a,0)
gpio.输出(motor2b,0)
lcd.clear()

GPU工作原理 如何提高集成GPU的工作频率
Valens Semiconductor与芯鼎科技合作推出360°多摄像头视频会议解决方案
芯片商博通宣布全球裁员1900人
苹果18WUSB-C电源适配器开售 售价249元
产能翻倍!PCB大企越南工厂扩产项目投产
构建Raspberry Pi电机驱动器HAT的教程分享
位移传感器各知识点必选必读 西安电子科技大学带你飞
3dd15d功放电路图合集
增强型NB-IoT扰乱蜂窝物联网供应链
电动摩擦色牢度测试仪的简单介绍
Arm推出新一代平台 Neoverse V2 平台
华为HMS生态的建设和发展是智能终端恢复海外销售的必要条件
体验移动电源进入无线充电时代NINEKA无线充电移动电源评测
华为和金雅拓推动NB-IoT发展,大规模部署商用计划开启
借助区块链刷新金融业务体系,实现更高效和低成本的金融交易
对PROFIBUS-PA仪表设备在应用中的要点进行分析与研究
将会改变世界的七大超凡构想
各家布局Micro LED脚步不同 晶电真正量产还需两三年
八个三相回路需要采集电量有什么好办法?
计算机网络协议:分散式、集中式和分布式