学习使用Python控制麦克纳姆轮底盘

这里小龟给大家分享如何使用Python控制麦克纳姆轮底盘的小龟小车。

首先小伙伴得参考小龟提供的改造手册进行先把小龟小车改造成麦克纳姆轮底盘,假如小伙伴在改造过程中碰到问题,记得问小龟获得帮助。

体验麦克纳姆轮

首先您可以直接使用小龟小车提供的操控台来先体验一把麦克纳姆轮的操作体验。

编程快速体验麦克纳姆轮

小龟小车提供了最简单的驱动麦克纳姆轮的编程方法,这个方法适合您只想学习理解麦克纳姆轮的各种运动效果如何实现。

函数接口:

car.driver.wheels(左前轮速度, 左后轮速度, 右前轮速度, 右后轮速度)

每个轮速度的值为 -100 到 100 ,其中-100代表轮子全速反转;100代表轮子全速前进;0代表轮子停止转动。

下面的代码范例可以让小伙伴们体验一下麦克纳姆轮的单轮运动效果#麦克纳姆轮单轮运动

#左前轮向前

car.driver.wheels( 100, 0, 0, 0)

sleep(1)

#左前轮向后

car.driver.wheels(-100, 0, 0, 0)

sleep(1)

#左后轮向前

car.driver.wheels(0, 100, 0, 0)

sleep(1)

#左后轮向后

car.driver.wheels(0, -100, 0, 0)

sleep(1)

#右前轮向前

car.driver.wheels(0, 0, 100, 0)

sleep(1)

#右前轮向后

car.driver.wheels(0, 0, -100, 0)

sleep(1)

#右后轮向前

car.driver.wheels(0, 0, 0, 100)

sleep(1)

#右后轮向后

car.driver.wheels(0, 0, 0, -100)

sleep(1)

#刹车

car.driver.wheels(0, 0, 0, 0)

下面是小车基础运动效果的代码#麦克纳姆轮基础运动效果

#小车前进

car.driver.wheels(100, 100, 100, 100)

sleep(1)

#小车后退

car.driver.wheels(-100, -100, -100, -100)

sleep(1)

#小车左转

car.driver.wheels(-100, -100, 100, 100)

sleep(1)

#小车右转

car.driver.wheels(100, 100, -100, -100)

sleep(1)

#小车停车

car.driver.wheels(0, 0, 0, 0)

下面是难度高一点,效果也酷一点的麦克纳姆轮酷炫运动效果#麦克纳姆轮酷炫的复杂运动效果

#小车横向左移(左前轮前进,左后轮后退,右前轮后退,右后轮前进)

car.driver.wheels(100, -100, -100, 100)

sleep(1)

#小车横向右移(左前轮后退,左后轮前进,右前轮前进,右后轮后退)

car.driver.wheels(-100, 100, 100, -100)

sleep(1)

#小车左前横移(左前轮停止,左后轮前进,右前轮前进,右后轮停止)

car.driver.wheels(0, 100, 100, 0)

sleep(1)

#小车左后横移(左前轮后退,左后轮停止,右前轮停止,右后轮后退)

car.driver.wheels(-100, 0, 0, -100)

sleep(1)

#小车右前横移(左前轮前进,左后轮停止,右前轮停止,右后轮前进)

car.driver.wheels(100, 0, 0, 100)

sleep(1)

#小车右后横移(左前轮停止,左后轮后退,右前轮后退,右后轮停止)

car.driver.wheels(0, -100, -100, 0)

sleep(1)

#小车停车

car.driver.wheels(0, 0, 0, 0)

高手基于I2C控制PCA9685的方式编程

假如你是想学习更深入的专业知识,可以基于Python的I2C指令来控制小车的驱动芯片PCA9685的方式来编程体验

下面是基于原生的I2C操作方法进行的编程范例#发送I2C指令开启PCA9685模块

car.i2c.write(64, 0, 0x20)

sleep(0.1)

#配置单个轮子基础运动的I2C指令

#该指令参考PCA9685芯片的Datasheet,以100%占空比进行对应电机的设置

FORWARD = [0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10]

BACKWARD = [0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00]

STOP = [0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10]

#运动执行函数

#参数(左后轮运动指令,左前轮运动指令,右后轮运动指令,右前轮运动指令)

def action(L2, L1, R2, R1):

arr = []

arr.extend(L2)

arr.extend(L1)

arr.extend(R2)

arr.extend(R1)

return arr

#麦克纳姆轮基础运动指令

action_go = action(FORWARD, FORWARD, FORWARD, FORWARD)

action_stop = action(STOP, STOP, STOP, STOP)

action_left = action(BACKWARD, BACKWARD, FORWARD, FORWARD)

action_right = action(FORWARD, FORWARD, BACKWARD, BACKWARD)

action_back = action(BACKWARD, BACKWARD, BACKWARD, BACKWARD)

action_hleft = action(FORWARD, BACKWARD, BACKWARD, FORWARD)

action_hright = action(BACKWARD, FORWARD, FORWARD, BACKWARD)

action_top_right = action(STOP, FORWARD, FORWARD, STOP)

action_bottom_left = action(STOP, BACKWARD, BACKWARD, STOP)

action_top_left = action(FORWARD, STOP, STOP, FORWARD)

action_bottom_right = action(BACKWARD, STOP, STOP, BACKWARD)

#测试运动效果

car.i2c.write(64, 0x06, action_hleft)

sleep(2)

car.i2c.write(64, 0x06, action_hright)

sleep(2)

car.i2c.write(64, 0x06, action_stop)

麦克纳姆轮小车matlab仿真,学习使用Python控制麦克纳姆轮底盘相关推荐

  1. 系统辨识理论及MATLAB仿真——学习笔记(1)

    系统辨识理论及MATLAB仿真学习笔记(1) 前言 目录 第1章 绪论 1.1 建立数学模型的基本方法 1.2 系统辨识的定义 1.3 系统辨识的研究目的 1.4 数学模型的分类 1.5 几种常见的数 ...

  2. python控制泰克示波器捕捉触发波形

    对于一些针对开关机出现偶发启动异常的问题需要捕获下异常情况的波形,但是异常情况并不是每次都能触发到,所以需要自动化去捕捉波形然后进行分析,这里就介绍下使用python控制泰克示波器进行设置单次触发获取 ...

  3. 先进PID控制MATLAB仿真学习记录(一)

    目录 前言 一.PID控制原理 二.连续系统的PID控制Simulink仿真 1.利用自带的PID控制器仿真 2.采用S函数进行仿真 总结 前言 PID控制是最早发展起来的控制策略之一,其算法简单.鲁 ...

  4. rbf神经网络自适应控制matlab仿真,机械系统RBF神经网络控制:设计、分析及Matlab仿真(英文)...

    机械系统RBF神经网络控制:设计.分析及Matlab仿真(英文) 作者:刘金琨 著 出版时间:2013年 内容简介 <机械系统RBF神经网络控制:设计.分析及Matlab仿真(英文)>从M ...

  5. 【MATLAB教程案例40】语音信号的共振峰频率倒谱法估计matlab仿真学习

    欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 本课程学习成果预览 目录 1.软件版本

  6. pq下垂控制单相逆变器matlab仿真,学习下垂控制的逆变器并联原理,如何实现仿真P1?-控制器/处理器-与非网...

    下垂控制通过模拟同步发电机的自同步和电压下垂特性,可以实现多个逆变器的无通讯并联.只需采样各个逆变器的输出电压和电流,根据下垂控制策略就能实现多逆变器模块的同步,均流运行. 下面是来自<一种微电 ...

  7. 【MATLAB教程案例39】语音信号的PCM编解码matlab仿真学习

    FPGA教程目录 MATLAB教程目录 ----------------------------------------------------------------------- 目录 1.软件版 ...

  8. matlab仿真开关电源,基于PWM控制的开关电源系统仿真研究

    2.3.1 PI调节器的建模 比例积分调节器仿真模型(P11)如图10所示,其输出波形如图11所示. 2.3.2 SPWM的建模 正弦宽度调制模型仿真模块(SPwM)如图12所示. 2.4 输出回路的 ...

  9. python控制led屏_python轮询机制控制led实例

    我就废话不多说了,大家还是直接看代码吧! # -*- coding:utf-8 -*- # File: ceshitianqi import urllib2 import json import ti ...

最新文章

  1. Mac 上 iterm2 和 VSCode 终端中的字体设置建议
  2. AtCoder Regular Contest 071 D - 井井井 / ###
  3. 页面加载速度优化的12个建议
  4. android文件系统管理
  5. 前端如何实现网络速度测试功能_前端组件单元测试
  6. 浅谈Fragment
  7. centos6 安装xhprof扩展
  8. python中列表操作
  9. 数据集如何影响作物病害识别的有效性
  10. JavaScript继承方式详解[转]
  11. C/C++[codeup 1926]EXCEL排序
  12. 3dmax快捷键大全
  13. python 操作ps脚本_Python实现PS图像调整颜色梯度效果示例
  14. 计算机网络 华东理工大学 第7章测试
  15. 黑色沙漠手游台服最新服务器,黑色沙漠手游台服3月10日更新内容
  16. 别人笑我忒疯癫,我笑别人看不穿;
  17. C++解析IconFont矢量字体文件ttf,以及无锯齿显示矢量字体
  18. ib数学ia选题例子
  19. 25000 字详解 23 种设计模式(多图 + 代码)
  20. 旺财宝盒团队浅谈:计算机用户必须避免的6个常见错误

热门文章

  1. keil5“魔法棒”配置
  2. 亲测有效详细教程!注册gmail得到验证码的方法
  3. uniapp——图片下加文字,卡片,阴影,图标--文字--箭头(个人中心)
  4. html5css3svg画图,欣赏18种超级有趣的SVG绘图
  5. 用MATLAB实现偏最小二乘支持向量机(LS-SVM)的总结
  6. 实现LED灯数字的流水(单片机)+蜂鸣器
  7. 少年人,应当立长志,常立志
  8. 脚本之家的好网址: 首页 软件编程 C 语言
  9. SLEEP:识别创伤后应激障碍病人睡眠的可重复的高密度EEG标识物
  10. python名人问题_如何用 Python 解读著名的“三门问题”?