SmartDrive 机器人

作者: 树莓派杂志中文版 | 来源:发表于2015-03-17 16:54 被阅读494次

使用 SmartDrive 扩展板编程遥控机器人

作者:Rishi Deshpande (MagPi 第26期)
翻译:@MagPi

如何使用操纵杆控制机器人

树莓派几乎可以通过编程来解决任何问题,从这个角度来讲树莓派简直是令人吃惊的存在。我曾见过有人用这种便携小电脑做出多媒体中心、云存储设备、气象站、游戏模拟器以及其他许多有用的工具。

然而,我决定创造一个可以遥控并且不需要大量软件维护的机器。机器的硬件特性根据不同的用户而改变,因此我不过多的关注硬件而是在控制机器的代码上下功夫。

我用一个手柄来控制我的机器。为了控制电机,我使用了SmartDrive。这是一个可以让用户通过树莓派控制两个大电流电机的驱动。

程序的开始,需要输入如下的程序段:

import pygame
import sys, os
from SmartDrive import SmartDrive

pygame 用来创立一个手柄事件。sys 用来停止运行中的程序。os 用来读取字符环境。

下面是创建手柄事件的代码

try:
    j = pygame.joystick.Joystick(0)
    j.init()
    print 'Enabled joystick: ' + j.get_name()
except pygame.error
    print 'no jotstick found.' 

建议使用Try-block代码段,因为调试的时候能发现 pygame.error 的异常很重要。

使用单独的函数来使机器人运动是十分有效的。函数如下:

def move(motor, speed):
  direction = 1
  if(speed < 0):
    direction = 0
    speed = speed * -1
  if speed > 100:
    speed = 100
  SmartDrive,SmartDrive_Run_Unlimited(
    motor, direction, speed)

direction 等于0的时候,马达会向后转。当 direction 等于1的时候,马达会向前转。要注意 SmartDrive 的速度值区间是 0-100,所以编程时要注意这个范围。现在这个函数现在可以在任何时候被调用。

在写程序的主循环部分要注意需要对手柄轴坐标进行缩放。Pygameget_axis 函数的范围是从 -110 的时候是中间。因此我们需要将上面的值放大100倍来使之前函数的 Speed 参数可以和轴坐标值对应上。代码如下:

while True:
  pygame.event.get()
  x1 = 100 * j.get_axis(0)
  y1 = 100 * j.get_axis(1)
  if j.get_button(1):
    move(1, 0)
    move(2, 0)
    sys.exit(1)
  lMotor = x1 + y1
  rMotor = x1 - y1
  move(1, lMotor)
  move(2, -rMotor)

get_button 函数用来停止程序并使机器人停止运行。

我已经列出了我在这个项目中所使用的所有的电子器件、马达以及其他一些硬件。其实我挺推荐你去废品场淘一点用得到的马达,这样你就可以省下一小笔钱了。你可以找一找电动窗马达或者玩具车上的马达。我之所以用 SmartDrive 是因为它可以为每个马达提供 300W 的功率,尽管我实际使用时只用了 22W。

SmartDriveSmartDrive

正如我之前提到的,SmartDrive 可以使树莓派最多控制2个大电流电机。它由树莓派上的I2C接口控制。

程序接口是用 Python 编写的并且包含了许多可以用不同方法控制马达的函数。马达可以连接到 SmartDrive - 被标为M1和M2的两个(第三个是用来接电源的)黑色螺丝接线端子上。 当然使用C语言来编写 SmartDrive 也是可以的。

还有一些函数可以用来控制马达运行时的转向角度、每秒的转速、甚至可以指定转动的次数。它还支持旋转编码器。SmartDrive 还有一个很好的特性就是它提供了一个可以驱动树莓派的5V电源,这样我们就不用再找其他的电源了。

元件清单:

  1. SmartDrive
  2. Tempest TR1 .3-1 2 Battery (1 2V)
  3. DreamGrear Shadow USB wireless joystick
  4. 2x Pittman GM9234E765-R1 motors

源于社区,归于社区。 Github | @树莓派杂志中文版

相关文章

  • SmartDrive 机器人

    使用 SmartDrive 扩展板编程遥控机器人 作者:Rishi Deshpande (MagPi 第26期)翻...

  • 电话机器人介绍

    tag: 外呼机器人 电销机器人 电话机器人 语音机器人 坐席机器人 语音识别 客服机器人 Asterisk Fr...

  • 工博会——机器人

    新松~机器人打乒乓球 格力~机器人弹琴 赛大千智能画像的机器人 在体恤上画画的机器人 双臂机器人 新松双臂机器人 ...

  • 人类的未来

    这个社会最终是要走向人工智能,假设机器人维修机器人,机器人生产机器人,机器人研发更高级的机器人。那么,人类会变成机...

  • 机器人学习笔记 1-机器人分类

    机器人分类 从用途角度 1. 工业机器人 2. 服务机器人 3. 农用机器人 4. 仿生机器人 ...

  • 【小九】一张图了解机器人到底分几种?

    要说机器人依据用途可以分为工业机器人,特种机器人,服务机器人。 一张图来看下机器人分类。 我们来了解下三大类机器人...

  • 上下料机器人

    二手库卡工业机器人功能:机器人焊接、机器人搬运、机器人码垛、机器人上下料;机器人培训,一站式服务,应有尽有; 买二...

  • 机器人

    最近智能机器人,AI等领域都是热门话题。早教学习机,工厂机器人,智能电网机器人,物流机器人,厨房机器人...

  • 上海杭州南京北京机器人租赁定制平台

    调酒机器人租赁、调咖啡机器人出租,人脸识别签到机器人、迎宾引导机器人租赁,自由语音互动机器人租赁,展‌‌‌‌会机器...

  • 展会讲解导览机器人租售 调酒机械臂商演

    调酒机器人租赁,咖啡机械臂出租,跳舞机器人出租,迎宾签到机器人租赁,展厅讲解机器人,人脸识别签到迎宾机器人租赁,自...

网友评论

    本文标题:SmartDrive 机器人

    本文链接:https://www.haomeiwen.com/subject/yjwixttx.html