相關(guān)商品
































































![愛上Python 一日精通Python編程 [Learn Python in One Day and Learn it Well]](images/201807/thumb_img/862_thumb_G_1531164537304.jpg)

【創(chuàng)客學(xué)堂】用Python讓Raspberry Pi“動”起來——開啟樹莓派的機器人制作
編輯:Nikita2014-05-28 瀏覽次數(shù):1673
前段時間,接觸了一款在開源硬件界被稱為是“人氣之王”的樹莓派(Raspberry Pi)袖珍計算機,功能強大的她擁有一顆SOC,集CPU、GPU、DSP和SDRAM為一體,以SD卡為內(nèi)存硬盤,擁有網(wǎng)卡、USB口(可以直接連接鍵盤、鼠標(biāo)、U盤等外設(shè))、同時具備視頻、音頻模擬輸出以及HDMI高清輸出的能力,在外部接口上還具備了一般計算機設(shè)備不具有的GPIO、SPI、I2C、UART等硬件配置,為我們的創(chuàng)新機器人制作提供硬件條件。切入正題,用Python讓Raspberry Pi動起來,在這個醒目的標(biāo)題中可以看出我這個制作的主題就是利用Raspberry Pi的硬件和Python語言來完成一個機器人制作,那下面就聽我娓娓到來吧!
硬件搭建篇
在這次制作中,我選擇了一款AS-4WD鋁合金的小車平臺,以小車平臺為基礎(chǔ),在上面添加了7寸高清液晶顯示器、無線鍵盤、藍牙模塊以及電機驅(qū)動器等配件,如圖1是羅列制作機器人所用的物料。整個樹莓派的小車系統(tǒng)分兩步來搭建,首先是搭建樹莓派的計算機系統(tǒng),雖然是一個袖珍的計算機,但是“麻雀雖小,五臟俱全”,除去樹莓派的主板外,還需準(zhǔn)備一套標(biāo)準(zhǔn)通用的USB鍵盤鼠標(biāo),一個顯示器(在本文描述的是一個用于車載監(jiān)控設(shè)備的7寸顯示器,通過RCA接口相連),一塊電池用于整個系統(tǒng)供電,最后也是最關(guān)鍵的需要準(zhǔn)備預(yù)裝了Debian系統(tǒng)的SD卡(對于SD卡要求讀寫最好在4MB/S以上、容量大于2GB,當(dāng)然容量更大速度越快更好)。在完成計算機系統(tǒng)搭建后,接下來是完成機器人系統(tǒng)的搭建,在原理上,主要利用樹莓派那兩排外置的針腳的GPIO功能控制外置樹莓派專用的驅(qū)動器(Raspi Driver)來實現(xiàn)電機的使能、正反轉(zhuǎn)控制,以及利用UART功能與藍牙數(shù)傳模塊實現(xiàn)數(shù)據(jù)通信,這樣就能通過手機端的藍牙遙控器對小車進行控制,如圖2是整體硬件搭建完后的靚圖,在圖3中給出了樹莓派機器人的硬件連線圖。
圖1 機器人所用的物料
圖2-1 會行走的樹莓派電腦
圖2-2 整體硬件搭建完后的靚圖
圖3 樹莓派機器人的硬件連線圖
上手樹莓派之Python庫配置篇
在使用樹莓派時,也是我第一次接觸Python這門語言,通過對相關(guān)資料的學(xué)習(xí),發(fā)現(xiàn)Python是門簡單易學(xué)的語言,如果有著C或者其他的計算機語言基礎(chǔ),基本上半天就能上手編寫程序,在開始編寫小車控制程序前需要對我們的樹莓派計算機的相關(guān)Python的庫文件進行安裝設(shè)置,首先是GPIO,打開LX終端(LXTerminal),更新apt-get軟件安裝包列表(注意必須要在網(wǎng)絡(luò)連接正常情況下),然后執(zhí)行安裝命令來安裝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
|
通過上述兩個步驟,已經(jīng)安裝好了Python與樹莓派外置硬件GPIO以及UART庫文件,在接下來的小車控制程序里就可以直接調(diào)用代碼了,在開始編寫控制程序前,需要對默認串口的一些參數(shù)進行更改,由于系統(tǒng)默認的串口功能用于輸出內(nèi)核日志,相關(guān)的參數(shù)與我們的外界的串口設(shè)備有所不同,所以需要對其啟動配置文件進行更改,在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 |
去掉
|
退出vi編輯器時,注意要對文件進行保存;同時需要對系統(tǒng)初始化文件進行編輯,在LXTerminal中,鍵入“ sudo nano /etc/inittab”,然后找到以下片段內(nèi)容
#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
|
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
|
上手樹莓派之Python GPIO調(diào)試篇
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調(diào)試篇
對于樹莓派的UART功能的實現(xiàn)其實方法和步驟與上面的GPIO 的使用類似,也是分作4步走:
Step1:導(dǎo)入串口庫,鍵入“import serial”;
Step3:打開使能串口,“if ser.isOpen() == False:ser.open()”;
Step4:當(dāng)讀取數(shù)據(jù)時使用“ser.read() ”,當(dāng)發(fā)送數(shù)據(jù)時使用“ser.write(數(shù)據(jù))”。在這里我通過IDLE3編輯了一個Python的程序Serial_test.py,然后直接在LXTerminal鍵入“sudo python Serial_test.py”(注意,由于默認狀態(tài)下是利用賬戶名:pi進行操作,所以需要將文件放置在/home/pi目錄下,才能直接執(zhí)行,無需),然后手機藍牙遙控器(如圖5)與藍牙透傳模塊相連接,成功通訊后,既可以通過手機遙控器的按鍵按鈕發(fā)送相應(yīng)字符在串口上看見對應(yīng)字符打印至屏幕。在此我給出了測試的源程序(如下),通過電腦端的藍牙虛擬出串口與樹莓派外接的藍牙透明串口模塊連接,進行數(shù)據(jù)傳遞,電腦端的串口助手發(fā)送字母“B”,同時收到樹莓派發(fā)送來的字母“A”并顯示在調(diào)試的接收窗口,樹莓派端收到由電腦端發(fā)送來的字母“B”,并打印出來,通過此現(xiàn)象既可以證明樹莓派的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 截屏顯示圖和測試圖片
上手樹莓派之機器人控制篇

圖7 系統(tǒng)控制原理框圖
至此,用樹莓派的小車已經(jīng)告一段落,也是完成了筆者對樹莓派的電子制作的處女作,通過幾天的的學(xué)習(xí),發(fā)現(xiàn)其資源以及各方面的性能允許我們開發(fā)更多更好地電子制作、機器人制作,相信在不久的將來,還能繼續(xù)為大家奉上樹莓派大餐!
相關(guān)文章: 【新書搶先看】《樹莓派應(yīng)用速成 Raspbmc媒體中心》--私人定制屬于你自己的媒體中心
【獨家首發(fā)】進階網(wǎng)絡(luò)“駭客”的“葵花寶典”—《樹莓派應(yīng)用速成-網(wǎng)絡(luò)應(yīng)用秘方》
用戶評價
暫時還沒有任何用戶評論