Skip to main content

麦克纳姆轮小车

前言

pyCar可以支持直径小于70mm的麦克纳母轮子(TT接口),从而实现全向麦克纳姆轮小车,直接更换轮子即可。点击购买>>

mecanum_wheel

实验目的

使用红外遥控器控制麦克纳姆轮pyCar小车。

实验讲解

使用麦克纳姆轮可以让小车实现全向移动,也就是除了前进后退,还有左右以及斜45°平移。参考下图:

mecanum_wheel

关于麦克纳姆轮详细工作原理可以参考文章:麦克纳姆轮的工作原理是什么?

关于小车红外遥控实验前面章节已经有详细讲解,这里不再重复,具体参考:

pyCar红外遥控器教程>>

01Studio pyCar的car.py库文件已经将麦克纳姆轮控制接口封装好。使用方法如下:

CAR对象

构造函数

Car = car.CAR()

构造pyCar对象。

使用方法

Car.up()

前移。


Car.down()

后移。


Car.left()

左移。


Car.right()

右移。


Car.up_left()

左前移。


Car.up_right()

右前移。


Car.down_left()

左后移。


Car.down_right()

右后移。


Car.clockwise()

顺时针旋转。


Car.Counterclockwise()

逆时针旋转。


Car.stop()

停止。


更多用法请阅读官方文档:https://pycar.01studio.cc/zh-cn/latest/manual/quickref.html


代码编写流程如下:

参考代码

'''
实验名称:使用红外遥控器控制pyCar(麦克纳姆轮)
版本:v1.0
作者:CaptainJackey
'''

#导入相关模块
from car import CAR
import time

#初始化pyCar
Car = CAR()
time.sleep_ms(300) #等待稳定

#车灯状态
light_state = 0

while True:

key = Car.getIR() #读取红外传感器

if key != None: #有按键按下

#按键2,前移
if key == 0x46:

Car.up()
time.sleep(1)
Car.stop()

#按键8,后移
if key == 0x15:

Car.down()
time.sleep(1)
Car.stop()

#按键4,左移
if key == 0x44:

Car.left()
time.sleep(1)
Car.stop()

#按键6,右移
if key == 0x43:

Car.right()
time.sleep(1)
Car.stop()

#按键1,左前移
if key == 0x45:

Car.up_left()
time.sleep(1)
Car.stop()

#按键3,右前移
if key == 0x47:

Car.up_right()
time.sleep(1)
Car.stop()

#按键7,左后移
if key == 0x07:

Car.down_left()
time.sleep(1)
Car.stop()

#按键9,右后移
if key == 0x09:

Car.down_right()
time.sleep(1)
Car.stop()

#按键*,逆时针旋转
if key == 0x16:

Car.Counterclockwise()
time.sleep(1)
Car.stop()

#按键#,顺时针旋转
if key == 0x0d:

Car.clockwise()
time.sleep(1)
Car.stop()

#按键OK,车灯开关
if key == 28:

light_state = not light_state
Car.light(light_state)

实验结果

将相关示例程序的所有代码文件和car.py库文件发送至pyCar文件系统,通过遥控器便可控制麦克纳姆轮小车各种动作。

mecanum_wheel

有兴趣用户可以根据前面蓝牙遥控车章节修改代码,改成使用pyController遥控器蓝牙控制。