设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

用Python让Raspberry Pi“动”起来

2014-9-23 12:12| 发布者: joejoe0332| 查看: 6704| 评论: 0|原作者: 夏航|来自: 雷锋网

摘要: 用Python让Raspberry Pi动起来,在这个醒目的标题中可以看出我这个制作的主题就是利用Raspberry Pi的硬件和Python语言来完成一个机器人制作,那下面就听我娓娓到来吧! ...


  上手树莓派之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


  在安装完成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()”;

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)


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部