相關(guān)商品

  • 奧松 樹莓派原型擴展板 Prototype Shield for Raspberry Pi 支持3B/3B+
  • 愛上Raspberry Pi 3代套件 樹莓派全家福入門套件 7寸液晶屏
  • AMP 安普超五類網(wǎng)線 原裝 Raspberry Pi 樹莓派 pcDuino專用 網(wǎng)線
  • 2.4G USB 無線鍵盤 觸摸鼠標(biāo) Banana Pi Raspberry pi3 樹莓派B+ 樹莓派3代
  • AS-6DOF 鋁合金機械臂 6自由度機械手 Arduino機器人制作指南套件
  • Pcduino 超越樹莓派 Arduino ARM Cortex-A8 支持Android Linux
  • 雙頭HDMI連接線 高清外置HDMI線 轉(zhuǎn)接線 樹莓派 PcDuino接線
  •  樹莓派 二代 Raspberry Pi Mod B 512MB REV2.0 英標(biāo)綠版
  • iPazzPort 迷你無線鍵盤鼠標(biāo) 免驅(qū) 即插即用 樹莓派 pcduino專用
  • 通用AV數(shù)據(jù)線 樹莓派套件 AV視頻線 優(yōu)質(zhì)接頭 7寸液晶顯示器專用
  • 樹莓派系統(tǒng) SD卡 8G存儲 金士頓 數(shù)碼相機 手機 汽車導(dǎo)航
  • HDMI轉(zhuǎn)VGA 高清適配器 轉(zhuǎn)換器 轉(zhuǎn)接線 Apple 樹莓派 PcDuino專用
  • PcDuino 樹莓派控制器 開關(guān)電源適配器 5V 2A 充電器 適配器
  • Raspberry Pi 樹莓派 B+ 2代 pcDuino專用 散熱片 純銅 CPU散熱
  • Arduino技術(shù)內(nèi)幕 Arduino Internals 語法精通 實戰(zhàn)讀本
  • RS原裝 樹莓派 二代 Raspberry Pi Mod B 512MB REV2.0
  • 樹莓派 Raspberry PI 美國進口 外殼 黃色 散熱片 Sparkfun原裝
  • 樹莓派 Raspberry PI 美國進口 外殼 黑色 散熱片 Sparkfun原裝
  • 愛上Raspberry Pi 入門套件 樹莓派3套件 愛上樹莓派套件 含中文教材 現(xiàn)貨
  • Raspberry Pi 3 樹莓派3攝像頭 Camera V2 element14 800萬像素
  • 樹莓派外殼盒 Raspberry Pi 外殼 粉色 散熱片 Sparkfun原裝進口
  • Raspberry Pi 樹莓派 TF轉(zhuǎn)SD卡套 轉(zhuǎn)接器 TF卡套 樹莓派專用
  • Raspberry Pi 樹莓派 B+ 2代 PcDuino專用 純鋁 CPU散熱片 3片
  • 樹莓派 Raspberry Pi 亞克力 透明 外殼 盒子 保護盒子 防靜電
  • Gertboard 樹莓派擴展板 Raspberry Pi專用 Sparkfun 原裝進口
  • PVCBOT零基礎(chǔ)機器人制作配書套件 小學(xué)生DIY模型科技小制作套裝
  • PVCBOT零基礎(chǔ)機器人制作教材  DIY機器人配書套件 科技小制作小發(fā)明
  • 樹莓派 Raspberry Pi 美國進口 外殼 藍色 散熱片  sparkfun原裝進口
  • Raspberry Pi 樹莓派 用戶指南 愛上樹莓派 linux開發(fā)板 入門教材
  • Prototype Shield for RasPi 樹莓派 Raspberry Pi 原型擴展板
  • Raspberry Pi 快速入門指南 愛上樹莓派指南 中文教材
  • 12V 1A 開關(guān)電源適配器 樹莓派 Raspberry Pi 液晶屏 適配器
  • Raspberry Pi Python 編程入門 樹莓派 快速入門指南 中文教材
  • PiFace 擴展板 樹莓派 Raspberry Pi GPIO 擴展板 Sparkfun 原裝
  • Micro USB 數(shù)據(jù)線 Raspberry Pi 樹莓派 mini usb顯示器 連接線
  • 樹莓派B+外殼 Raspberry PI 黑色 包裝殼 Sparkfun原裝 美國進口
  • Raspberry Pi 兼容,樹莓派驅(qū)動板 Raspi Board直流電機驅(qū)動板
  • Raspberry Pi 樹莓派 GPIO 雙頭擴展線 FC-26P排線 2.54
  • 樹莓派應(yīng)用速成 Raspbmc媒體中心 愛上樹莓派 入門指南
  • 樹莓派應(yīng)用速成 網(wǎng)絡(luò)應(yīng)用秘方 愛上樹莓派 快速入門指南
  • PcDuino V2 支持WiFi 超越樹莓派 ARM Cortex-A8開發(fā)板 Android
  • Arduino 聲音傳感器 Sound Detector 聲音檢測模塊 Sparkfun原裝
  • Arduino Yun 透明外殼 WiFi 云控制器保護套 Sparkfun品牌新品
  • 例說xbee無線模塊開發(fā) XBee zigbee 無線通信數(shù)傳 教材
  • RB-421舵機附件包 一字圓型六角舵盤 塑料舵盤 支架 雙足機械臂
  • RB-150MG MG995 舵機附件包 一字圓型六角舵盤 塑料舵盤支架 雙足
  • 9軸姿態(tài)傳感器 LSM9DS1 三軸加速度計 陀螺儀 磁力計 Sparkfun
  • 奧松機器人 樹莓派1B+ Raspberry Pi 1B+
  • Raspberry pi 2代 3代 樹莓派控制器B+ 支架 3D打印 機器人固定架
  • 愛上Raspberry Pi 第2版 樹莓派編程快速入門手冊 零基礎(chǔ) 入門學(xué)習(xí)必備中文教材
  • 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 樹莓派 電機驅(qū)動板
  • 樹莓派3全家福套件 愛上Raspberry Pi 3代 7寸觸摸顯示 有教材
  • 樹莓派愛好者學(xué)習(xí) 樹莓派媒體中心 網(wǎng)絡(luò)應(yīng)用秘方 樹莓派學(xué)習(xí)套餐搭配組合
  • 樹莓派外殼 Raspberry Pi 外殼 適用B+/2B/3B/3B+ 彩色 通用樂高外殼
  • 樹莓派3代B型套件 愛上樹莓派 Raspberry Pi 編程開發(fā)套件
  • 樹莓派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開發(fā)板 RP2040雙核處理器
  • 當(dāng)前位置: 首頁 > 應(yīng)用教程 > 【創(chuàng)客學(xué)堂】用Python讓Raspberry Pi“動”起來——開啟樹莓派的機器人制作

    【創(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)新機器人制作提供硬件條件。切入正題,用PythonRaspberry 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

    去掉

    console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

    退出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
    改為如下,注釋掉對“ttyAMA0”端口的參數(shù)即可,退出vi編輯器時,同樣需要注意要對文件進行保存

    #Spawn a getty on Raspberry Pi serial line
    #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    重啟樹莓派,該配置就可以生效了,完成了上述步驟,就可以進入下一章節(jié),機器人調(diào)試進程。

    上手樹莓派之Python GPIO調(diào)試篇

    作為第一次上手樹莓派外置IO時可能有些不惑,如何利用在計算機上的語言來讓你的計算機的IO出現(xiàn)跳動呢!!其實并不復(fù)雜,只要打開系統(tǒng)桌面上的IDLE3編輯器,分4步走,Step1:導(dǎo)入GPIO庫,在編輯行中鍵入“import RPi.GPIO as GPIO”,按“回車”鍵執(zhí)行即可;Step2:設(shè)定GPIO引腳使用標(biāo)號模式,若是選擇板子上的標(biāo)號,在編輯器中鍵入“GPIO.setmode(GPIO.BOARD)”若是使用芯片本身的標(biāo)號模式,只要鍵入“GPIO.setmode(GPIO.BCM)”;
    Step3:設(shè)定對應(yīng)GPIO的模式,若是使用其輸出功能“GPIO.setup(pin_number,GPIO.OUT)”,使用輸入功能只要將GPIO.OUT修改為GPIO.IN即可;
    Step4:在輸出模式下,使對應(yīng)管腳的電平置高或者置低,在輸入模式下只要讀取相應(yīng)管腳的電平即可。如果你對上述4個步驟有了理解,那就嘗試一下,我在此對RasPi Driver上熄滅LED1以及點亮LED2操作為例說明,給出試驗代碼以及試驗實際的照片(如圖4),如果你也能實現(xiàn)上述擦做,那就恭喜你,已經(jīng)掌握了在樹莓派上對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調(diào)試篇

    對于樹莓派的UART功能的實現(xiàn)其實方法和步驟與上面的GPIO 的使用類似,也是分作4步走:

    Step1:導(dǎo)入串口庫,鍵入“import serial”;

    Step2:初始化串口,在此設(shè)置于外部藍牙配套的參數(shù),BUAD=9600,timeout = 0.5,相應(yīng)的鍵入“ser = serial.Serial('/dev/ttyAMA0', 9600, timeout = 0.5)”;

    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 截屏顯示圖和測試圖片

    上手樹莓派之機器人控制篇

    對于AS-4WD小車的控制而言就比較簡單了,在本制作中用到了RasPi專用的電機驅(qū)動板,板載以L293為核心的電機驅(qū)動電路(電路原理圖如圖7示),以及通過兩組每組2個IO來實現(xiàn)電機的正反轉(zhuǎn)、以及使能。
    通過上述的管腳布置可以清晰的看出,樹莓派外置硬件與RasPi Driver的連接關(guān)系,通過GPIO4以及GPIO17控制其中一路電機的轉(zhuǎn)向以及使能(高電平有效),利用GPIO8來對正反轉(zhuǎn)進行狀態(tài)指示,同理可見GPIO25用于另一路的正反轉(zhuǎn)控制、GPIO10為使能、GPIO7狀態(tài)指示;同時利用板上外置的UART接口與藍牙串口模塊連接,具體方法不在贅述。
    對于整個程序框架相對以前的單片機版的遙控小車而言是比較簡單的,主要分功能模塊、初始化設(shè)置、循環(huán)判斷遙控值以及輸出對應(yīng)功能運動值,詳見系統(tǒng)控制原理框圖8。導(dǎo)入庫文件,對GPIO和串口配置,具體參數(shù)和上述一致,不在贅述;完成上述設(shè)置后,就是整個控制小車的程序了,讀取串口緩沖區(qū)的值,隨后完成循環(huán)判斷由手機藍牙遙控器發(fā)送的字符數(shù)據(jù)“A”、“B”、“C”、“D”,對應(yīng)相應(yīng)的運動動作(注意:在對應(yīng)相應(yīng)的動作時,可能由于驅(qū)動板電機的接線原因高低電平不對應(yīng)預(yù)設(shè)動作,可以靈活適當(dāng)調(diào)整接線或者軟件修改電平)。
    系統(tǒng)控制原理框圖

    圖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)用秘方》

    使用ngrok將樹莓派web服務(wù)映射到公網(wǎng)

    用樹莓派做個專屬iBeacon基站

    • 用戶評價

    暫時還沒有任何用戶評論

    總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
    用戶名: 匿名用戶
    E-mail:
    評價等級:
    評論內(nèi)容:
    驗證碼:
    captcha

    Hi,大家好,我是小奧!

    歡迎來到奧松機器人的世界!

    需要咨詢服務(wù)請點小奧哦!

    • 銷售咨詢: 銷售咨詢
    • 銷售咨詢: 銷售咨詢
    • 技術(shù)支持: 技術(shù)支持
    • 咨詢電話:
      0451-86628691
    Top