相关商品

  • 奥松 树莓派原型扩展板 Prototype Shield for Raspberry Pi 支持3B/3B+
  • 爱上Raspberry Pi 3代套件 树莓派全家福入门套件 7寸液晶屏
  • AMP 安普超五类网线 原装 Raspberry Pi 树莓派 pcDuino专用 网线
  • 2.4G USB 无线键盘 触摸鼠标 Banana Pi Raspberry pi3 树莓派B+ 树莓派3代
  • AS-6DOF 铝合金机械臂 6自由度机械手 Arduino机器人制作指南套件
  • Pcduino 超越树莓派 Arduino ARM Cortex-A8 支持Android Linux
  • 双头HDMI连接线 高清外置HDMI线 转接线 树莓派 PcDuino接线
  •  树莓派 二代 Raspberry Pi Mod B 512MB REV2.0 英标绿版
  • iPazzPort 迷你无线键盘鼠标 免驱 即插即用 树莓派 pcduino专用
  • 通用AV数据线 树莓派套件 AV视频线 优质接头 7寸液晶显示器专用
  • 树莓派系统 SD卡 8G存储 金士顿 数码相机 手机 汽车导航
  • HDMI转VGA 高清适配器 转换器 转接线 Apple 树莓派 PcDuino专用
  • PcDuino 树莓派控制器 开关电源适配器 5V 2A 充电器 适配器
  • Raspberry Pi 树莓派 B+ 2代 pcDuino专用 散热片 纯铜 CPU散热
  • Arduino技术内幕 Arduino Internals 语法精通 实战读本
  • RS原装 树莓派 二代 Raspberry Pi Mod B 512MB REV2.0
  • 树莓派 Raspberry PI 美国进口 外壳 黄色 散热片 Sparkfun原装
  • 树莓派 Raspberry PI 美国进口 外壳 黑色 散热片 Sparkfun原装
  • 爱上Raspberry Pi 入门套件 树莓派3套件 爱上树莓派套件 含中文教材 现货
  • Raspberry Pi 3 树莓派3摄像头 Camera V2 element14 800万像素
  • 树莓派外壳盒 Raspberry Pi 外壳 粉色 散热片 Sparkfun原装进口
  • Raspberry Pi 树莓派 TF转SD卡套 转接器 TF卡套 树莓派专用
  • Raspberry Pi 树莓派 B+ 2代 PcDuino专用 纯铝 CPU散热片 3片
  • 树莓派 Raspberry Pi 亚克力 透明 外壳 盒子 保护盒子 防静电
  • Gertboard 树莓派扩展板 Raspberry Pi专用 Sparkfun 原装进口
  • PVCBOT零基础机器人制作配书套件 小学生DIY模型科技小制作套装
  • PVCBOT零基础机器人制作教材  DIY机器人配书套件 科技小制作小发明
  • 树莓派 Raspberry Pi 美国进口 外壳 蓝色 散热片  sparkfun原装进口
  • Raspberry Pi 树莓派 用户指南 爱上树莓派 linux开发板 入门教材
  • Prototype Shield for RasPi 树莓派 Raspberry Pi 原型扩展板
  • Raspberry Pi 快速入门指南 爱上树莓派指南 中文教材
  • 12V 1A 开关电源适配器 树莓派 Raspberry Pi 液晶屏 适配器
  • Raspberry Pi Python 编程入门 树莓派 快速入门指南 中文教材
  • PiFace 扩展板 树莓派 Raspberry Pi GPIO 扩展板 Sparkfun 原装
  • Micro USB 数据线 Raspberry Pi 树莓派 mini usb显示器 连接线
  • 树莓派B+外壳 Raspberry PI 黑色 包装壳 Sparkfun原装 美国进口
  • Raspberry Pi 兼容,树莓派驱动板 Raspi Board直流电机驱动板
  • Raspberry Pi 树莓派 GPIO 双头扩展线 FC-26P排线 2.54
  • 树莓派应用速成 Raspbmc媒体中心 爱上树莓派 入门指南
  • 树莓派应用速成 网络应用秘方 爱上树莓派 快速入门指南
  • PcDuino V2 支持WiFi 超越树莓派 ARM Cortex-A8开发板 Android
  • Arduino 声音传感器 Sound Detector 声音检测模块 Sparkfun原装
  • Arduino Yun 透明外壳 WiFi 云控制器保护套 Sparkfun品牌新品
  • 例说xbee无线模块开发 XBee zigbee 无线通信数传 教材
  • RB-421舵机附件包 一字圆型六角舵盘 塑料舵盘 支架 双足机械臂
  • RB-150MG MG995 舵机附件包 一字圆型六角舵盘 塑料舵盘支架 双足
  • 9轴姿态传感器 LSM9DS1 三轴加速度计 陀螺仪 磁力计 Sparkfun
  • 奥松机器人 树莓派1B+ Raspberry Pi 1B+
  • Raspberry pi 2代 3代 树莓派控制器B+ 支架 3D打印 机器人固定架
  • 爱上Raspberry Pi 第2版 树莓派编程快速入门手册 零基础 入门学习必备中文教材
  • 7寸液晶屏 树莓派显示器 HDMI 高清全彩 车载显示器 Raspberry Pi
  • Adafruit 原装进口 Pimoroni PiBrella Raspberry PI 树莓派配套
  • Adafruit 原装进口 Pimoroni PiGlow Raspberry PI 树莓派2代
  • Adafruit 国外原装进口 Raspberry Pi 2代 3代 树莓派原型扩展板 面包板
  • Adafruit 国外原装进口 Raspberry Pi 2代 3代 树莓派原型扩展板 面包板
  • Adafruit原装进口 PiTFT外壳 Raspberry Pi 树莓派B专用一体外壳
  • adafruit 原装进口 Printrbot 1405型号3D打印机 3D打印塑形机
  • Adafruit 原装进口 MonkMakes Raspberry Pi2 树莓派 电机驱动板
  • 树莓派3全家福套件 爱上Raspberry Pi 3代 7寸触摸显示 有教材
  • 树莓派爱好者学习 树莓派媒体中心 网络应用秘方 树莓派学习套餐搭配组合
  • 树莓派外壳 Raspberry Pi 外壳 适用B+/2B/3B/3B+ 彩色 通用乐高外壳
  • 树莓派3代B型套件 爱上树莓派 Raspberry Pi 编程开发套件
  • 树莓派3控制器 HiFiBox DAC 树莓派扩展板 机器人声卡 I2S DAC+
  • 树莓派瑞士军刀扩展板 SAKS April v2.0版 Raspberry Pi 通用兼容
  • 爱上Python 一日精通Python编程 [Learn Python in One Day and Learn it Well]
  • 树莓派Pico 微控制器 Raspberry Pi Pico AI开发板 RP2040双核处理器
  • 当前位置: 首页 > 应用教程 > 【创客学堂】用Python让Raspberry Pi“动”起来——开启树莓派的机器人制作

    【创客学堂】用Python让Raspberry Pi“动”起来——开启树莓派的机器人制作

    编辑:Nikita2014-05-28 浏览次数:1654

    前段时间,接触了一款在开源硬件界被称为是“人气之王”的树莓派(Raspberry Pi)袖珍计算机,功能强大的她拥有一颗SOC,集CPU、GPU、DSP和SDRAM为一体,以SD卡为内存硬盘,拥有网卡、USB口(可以直接连接键盘、鼠标、U盘等外设)、同时具备视频、音频模拟输出以及HDMI高清输出的能力,在外部接口上还具备了一般计算机设备不具有的GPIO、SPI、I2C、UART等硬件配置,为我们的创新机器人制作提供硬件条件。切入正题,用PythonRaspberry Pi动起来,在这个醒目的标题中可以看出我这个制作的主题就是利用Raspberry Pi的硬件和Python语言来完成一个机器人制作,那下面就听我娓娓到来吧!

    硬件搭建篇

    在这次制作中,我选择了一款AS-4WD铝合金的小车平台,以小车平台为基础,在上面添加了7寸高清液晶显示器、无线键盘蓝牙模块以及电机驱动器等配件,如图1是罗列制作机器人所用的物料。整个树莓派的小车系统分两步来搭建,首先是搭建树莓派的计算机系统,虽然是一个袖珍的计算机,但是“麻雀虽小,五脏俱全”,除去树莓派的主板外,还需准备一套标准通用的USB键盘鼠标,一个显示器(在本文描述的是一个用于车载监控设备的7寸显示器,通过RCA接口相连),一块电池用于整个系统供电,最后也是最关键的需要准备预装了Debian系统的SD卡(对于SD卡要求读写最好在4MB/S以上、容量大于2GB,当然容量更大速度越快更好)。在完成计算机系统搭建后,接下来是完成机器人系统的搭建,在原理上,主要利用树莓派那两排外置的针脚的GPIO功能控制外置树莓派专用的驱动器(Raspi Driver)来实现电机的使能、正反转控制,以及利用UART功能与蓝牙数传模块实现数据通信,这样就能通过手机端的蓝牙遥控器对小车进行控制,如图2是整体硬件搭建完后的靓图,在图3中给出了树莓派机器人的硬件连线图。


    图1 机器人所用的物料

    树莓派电脑

    图2-1 会行走的树莓派电脑

    搭建完成之后的靓图

    图2-2 整体硬件搭建完后的靓图

    树莓派机器人的硬件连接图

    图3 树莓派机器人的硬件连线图

    上手树莓派之Python库配置篇

    在使用树莓派时,也是我第一次接触Python这门语言,通过对相关资料的学习,发现Python是门简单易学的语言,如果有着C或者其他的计算机语言基础,基本上半天就能上手编写程序,在开始编写小车控制程序前需要对我们的树莓派计算机的相关Python的库文件进行安装设置,首先是GPIO,打开LX终端(LXTerminal),更新apt-get软件安装包列表(注意必须要在网络连接正常情况下),然后执行安装命令来安装raspberry-gpio-python包,具体指令如下:

    pi@raspberrypi ~ $ sudo apt-get update
    pi@raspberrypi ~ $ sudo apt-get install python-rpi.gpio

    pi@raspberrypi ~ $ sudo apt-get update

    pi@raspberrypi ~ $ sudo apt-get install python-rpi.gpio

    在安装完成Python的GPIO库后,接下来是安装Python的UART库,和上述之前步骤相似,更新apt-get软件安装包列表,后安装Python的串口通信模块,具体指令如下:

    pi@raspberrypi ~ $ sudo apt-get update

    pi@raspberrypi ~ $ sudo apt-get install python-serial

    通过上述两个步骤,已经安装好了Python与树莓派外置硬件GPIO以及UART库文件,在接下来的小车控制程序里就可以直接调用代码了,在开始编写控制程序前,需要对默认串口的一些参数进行更改,由于系统默认的串口功能用于输出内核日志,相关的参数与我们的外界的串口设备有所不同,所以需要对其启动配置文件进行更改,在LXTerminal通过键入“sudo nano /boot/cmdline.txt”进入/boot/cmdline.txt,用vi编辑器打开cmdline.txt文件,将

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    去掉

    console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

    退出vi编辑器时,注意要对文件进行保存;同时需要对系统初始化文件进行编辑,在LXTerminal中,键入“ sudo nano /etc/inittab”,然后找到以下片段内容

    #Spawn a getty on Raspberry Pi serial line
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    改为如下,注释掉对“ttyAMA0”端口的参数即可,退出vi编辑器时,同样需要注意要对文件进行保存

    #Spawn a getty on Raspberry Pi serial line
    #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    重启树莓派,该配置就可以生效了,完成了上述步骤,就可以进入下一章节,机器人调试进程。

    上手树莓派之Python GPIO调试篇

    作为第一次上手树莓派外置IO时可能有些不惑,如何利用在计算机上的语言来让你的计算机的IO出现跳动呢!!其实并不复杂,只要打开系统桌面上的IDLE3编辑器,分4步走,Step1:导入GPIO库,在编辑行中键入“import RPi.GPIO as GPIO”,按“回车”键执行即可;Step2:设定GPIO引脚使用标号模式,若是选择板子上的标号,在编辑器中键入“GPIO.setmode(GPIO.BOARD)”若是使用芯片本身的标号模式,只要键入“GPIO.setmode(GPIO.BCM)”;
    Step3:设定对应GPIO的模式,若是使用其输出功能“GPIO.setup(pin_number,GPIO.OUT)”,使用输入功能只要将GPIO.OUT修改为GPIO.IN即可;
    Step4:在输出模式下,使对应管脚的电平置高或者置低,在输入模式下只要读取相应管脚的电平即可。如果你对上述4个步骤有了理解,那就尝试一下,我在此对RasPi Driver上熄灭LED1以及点亮LED2操作为例说明,给出试验代码以及试验实际的照片(如图4),如果你也能实现上述擦做,那就恭喜你,已经掌握了在树莓派上对GPIO的使用。

    import RPi.GPIO as GPIO
    #### gpio init
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(7,GPIO.OUT) #LED2
    GPIO.setup(8,GPIO.OUT) #LED1
    GPIO.output(7,GPIO.LOW)#LED2 ON
    GPIO.output(8,GPIO.HIGH)#LED1 OFF


    实验截图

    图4 试验截图

    上手树莓派之Python UART调试篇

    对于树莓派的UART功能的实现其实方法和步骤与上面的GPIO 的使用类似,也是分作4步走:

    Step1:导入串口库,键入“import serial”;

    Step2:初始化串口,在此设置于外部蓝牙配套的参数,BUAD=9600,timeout = 0.5,相应的键入“ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 0.5)”;

    Step3:打开使能串口,“if ser.isOpen() == False:ser.open()”;

    Step4:当读取数据时使用“ser.read() ”,当发送数据时使用“ser.write(数据)”。在这里我通过IDLE3编辑了一个Python的程序Serial_test.py,然后直接在LXTerminal键入“sudo python Serial_test.py”(注意,由于默认状态下是利用账户名:pi进行操作,所以需要将文件放置在/home/pi目录下,才能直接执行,无需),然后手机蓝牙遥控器(如图5)与蓝牙透传模块相连接,成功通讯后,既可以通过手机遥控器的按键按钮发送相应字符在串口上看见对应字符打印至屏幕。在此我给出了测试的源程序(如下),通过电脑端的蓝牙虚拟出串口与树莓派外接的蓝牙透明串口模块连接,进行数据传递,电脑端的串口助手发送字母“B”,同时收到树莓派发送来的字母“A”并显示在调试的接收窗口,树莓派端收到由电脑端发送来的字母“B”,并打印出来,通过此现象既可以证明树莓派的UART功能测试正常,如下附实验的屏幕截图6。

    import serial
    import time
    ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 0.5)
    while True:
    if ser.isOpen() == False:
    ser.open()
    print ser.read()
    ser.write('A')
    time.sleep(1)


    手机蓝牙遥控器

    图5 手机蓝牙遥控器

    截屏显示

    测试照片

    图6 截屏显示图和测试图片

    上手树莓派之机器人控制篇

    对于AS-4WD小车的控制而言就比较简单了,在本制作中用到了RasPi专用的电机驱动板,板载以L293为核心的电机驱动电路(电路原理图如图7示),以及通过两组每组2个IO来实现电机的正反转、以及使能。
    通过上述的管脚布置可以清晰的看出,树莓派外置硬件与RasPi Driver的连接关系,通过GPIO4以及GPIO17控制其中一路电机的转向以及使能(高电平有效),利用GPIO8来对正反转进行状态指示,同理可见GPIO25用于另一路的正反转控制、GPIO10为使能、GPIO7状态指示;同时利用板上外置的UART接口与蓝牙串口模块连接,具体方法不在赘述。
    对于整个程序框架相对以前的单片机版的遥控小车而言是比较简单的,主要分功能模块、初始化设置、循环判断遥控值以及输出对应功能运动值,详见系统控制原理框图8。导入库文件,对GPIO和串口配置,具体参数和上述一致,不在赘述;完成上述设置后,就是整个控制小车的程序了,读取串口缓冲区的值,随后完成循环判断由手机蓝牙遥控器发送的字符数据“A”、“B”、“C”、“D”,对应相应的运动动作(注意:在对应相应的动作时,可能由于驱动板电机的接线原因高低电平不对应预设动作,可以灵活适当调整接线或者软件修改电平)。
    系统控制原理框图

    图7 系统控制原理框图

    至此,用树莓派的小车已经告一段落,也是完成了笔者对树莓派的电子制作的处女作,通过几天的的学习,发现其资源以及各方面的性能允许我们开发更多更好地电子制作、机器人制作,相信在不久的将来,还能继续为大家奉上树莓派大餐!



    相关文章: 【新书抢先看】《树莓派应用速成 Raspbmc媒体中心》--私人定制属于你自己的媒体中心

    【独家首发】进阶网络“骇客”的“葵花宝典”—《树莓派应用速成-网络应用秘方》

    使用ngrok将树莓派web服务映射到公网

    用树莓派做个专属iBeacon基站

    • 用户评价

    暂时还没有任何用户评论

    总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
    用户名: 匿名用户
    E-mail:
    评价等级:
    评论内容:
    验证码:
    captcha

    Hi,大家好,我是小奥!

    欢迎来到奥松机器人的世界!

    需要咨询服务请点小奥哦!

    • 销售咨询: 销售咨询
    • 销售咨询: 销售咨询
    • 技术支持: 技术支持
    • 咨询电话:
      0451-86628691
    Top