首页 动态 版块 商城 我的
 退出
游客  
等级:
金币:
经验值:

🔓树莓派打造智能遥控小车Ptyhon控制L298N电机驱动板例程

  2858 
 0
RASPI   ydxhuo.com 
本教程使用了树莓派作为主控,用Python进行编程。教程利用树莓派加L298N电机驱动板对小车的马达控制。当然你也可以根据自己情况在此基础上进行升级(如添加摄像头,GPS定位,自动驾驶等等),因为树莓派自身性能很高。本教程简单的提供如何控制及相关的代码程序。


一:硬件清单

1、树莓派主板

2、L298N电机驱动板

3、四轮小车底盘(带电机)

4、12V锂电池电源

5、树莓派移动电源

6、母-公,母-母 公-公 杜邦线各20根


(然后就是自己拼装搭建所需要的电烙铁,螺丝刀工具等等。当然这些不是必需品)


二:接线方法

1、特别注意:12V电源负级与树莓派GND并联,树莓派5VGPIO针脚接驱动板5V上。 切记不要接错!否则烧坏。

2、A马达与B马达,单侧正负并联在一起。 因为这里驱动板只有2个马达端口。所以是前后轮一起控制!

Image

树莓派GPIO针脚的接线位置参考下图:


树莓派GPIO2接IN4,

树莓派GPIO3接IN1,

树莓派GPIO1接IN2,

树莓派GPIO4接IN4,


树莓派5V接驱动板5V,

树莓派GND与12V负极并联接驱动板GND,


Image


三:Python程序代码

1.新建一个py文件,然后将下面控制代码粘贴进去 按Ctrl+X回车保存。

sudo nano raspi.py

Image


PYthon控制代码:

#!/usr/bin/env python
# encoding: utf-8
# By:www.raspi.cc
# Name:raspi.py

import RPi.GPIO as GPIO
import curses
import time
from curses import wrapper

GPIO.setmode(GPIO.BCM)

GPIO.setup(27, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)

stdscr = curses.initscr()
stdscr.clear()

while True:
    ch = stdscr.getkey()
# Quit
    if ch == 's':
       curses.endwin()
       GPIO.output(27, False)
       GPIO.output(18, False)
       GPIO.output(22, False)
       GPIO.output(23, False)
       break

# Forward
    if ch == 'w':
       GPIO.output(27, False)

       GPIO.output(18, True)
       GPIO.output(22, False)
       GPIO.output(23, True)

# Backward
    if ch == 'x':
       GPIO.output(27, True)
       GPIO.output(18, False)
       GPIO.output(22, True)
       GPIO.output(23, False)

# Turn Right
    if ch == 'd':
       GPIO.output(27, False)
       GPIO.output(18, True)
       GPIO.output(22, False)
       GPIO.output(23, False)

# Turn Left
    if ch == 'a':
       GPIO.output(27, False)
       GPIO.output(18, False)
       GPIO.output(22, False)
       GPIO.output(23, True)

四:控制马达转动

1、输入下面的程序启动命令

sudo python raspi.py

Image

2、进入控制界面


按w则是四个马达同时正转(前进),

按a则是左侧两个马达正转(左转),

按d则是右侧两个马达正转(右转),

按x则是四个马达同时反转(后退),

按s则是所有马达全部停止(停止),

Image


1、小车的转向实际是根据左右差速实现,若左转,左侧轮子不会转动。代码的a/d/w/x/s中False、True布局来调整转动/停止

2、如果马达转向不对,请根据情况进行调节。可把驱动板的IN1234调换位置进行反复测试,或者AB马达端口调换,可参考下图!


Image

四:控制麦克纳姆轮 全向移动

1、麦克纳姆轮原理其实与上述相差不大,其主要原理是由主轮和围绕轮组成,围绕轮的轴线和主轮轴线夹角成45°,故围绕轮可以横向滑移。当轮子绕着固定的轮心轴转动时,各个围绕轮为圆柱面,所以该围绕轮能够连续地向前滚动。 

2、通过控制不同轮子的旋转方向,麦克纳姆轮可以实现全方位的移动,包括前后、左右、斜向移动以及原地旋转等复杂动作,非常适合在狭小空间内灵活移动。(麦轮举例:下图中的“斜行” 则是小车左前轮正转,右后轮正转,右前左后轮停止不动,这样小车就可以斜着漂移)

Image

通过了解上述的原理和结构,我们可以利用两个L298N或者是四路电机驱动板,来分别控制每个轮子的转动。这样就能轻松控制麦克纳姆轮,下面提供一套调试好的麦克纳姆轮代码程序,可结合上面例程进行研究,方法一样!


麦克纳姆小车Python代码


麦克纳姆轮运动原理


标签:
作者签名: www.ydxhuo.com   楼主  2024-06-09 19:00:10
回复列表
Powered by YDXHUO _VERSION
© 2017-2026 跃动芯火版权
您的IP: 216.73.217.49 , 2026-04-18 22:55:03
Powered by YDXHUO _VERSION
© 2017-2026 跃动芯火版权
(14) 分享
分享

请保存二维码或复制链接进行分享

取消
免责声明
1、本站资源,均来自网络与个人作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !

侵权删除请致信 E-Mail:ydxuo@qq.com
已有0次打赏