[常見問與答] Raspbian (2015-01-31) 在 Pi 2 的 RPi.GPIO 問題

問題:
2015-01-31 釋出的 RaspbianPi 2 呼叫 RPi.GPIO 模組會出現 RuntimeError: This module can only be run on a Raspberry Pi! 錯誤訊息。

情境:
假設我們寫一個可以控制 LED 一明一滅的 python 程式。範例來自 用 Raspberry Pi 學 GPIO – 自己做遊戲機

線路圖如下:
led_blink_schematic

程式碼範如 led_blink.py

import RPi.GPIO as GPIO 
import time

LED_PIN = 12    
GPIO.setmode(GPIO.BOARD)
GPIO.setup(LED_PIN, GPIO.OUT)

try:
    while True:
        print("LED is on")
        GPIO.output(LED_PIN, GPIO.HIGH)
        time.sleep(1)
        print("LED is off")
        GPIO.output(LED_PIN, GPIO.LOW)
        time.sleep(1)

except KeyboardInterrupt:
    print "Exception: KeyboardInterrupt"

finally:
    GPIO.cleanup()    

如果在 Raspberry Pi 2 (2015-01-31 版本)執行這段程式碼會出現以下訊息:

pi@raspberrypi ~ $ sudo python led_blink.py
Traceback (most recent call last):
  File "led_blink.py", line 1, in 
    import RPi.GPIO as GPIO    
RuntimeError: This module can only be run on a Raspberry Pi!

看起來是沒有 RPi.GPIO 的模組。所以我們用 sudo pip install RPi.GPIO 指令安裝 RPi.GPIO 模組看看。

pi@raspberrypi ~ $  sudo pip install RPi.GPIO
Requirement already satisfied (use --upgrade to upgrade): RPi.GPIO in /usr/lib/python2.7/dist-packages
Cleaning up...

解答:
原來是要升級模組才行。我們要使用 sudo pip install --upgrade RPi.GPIO 指令。

pi@raspberrypi ~ $ sudo pip install --upgrade RPi.GPIO
Downloading/unpacking RPi.GPIO from https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz#md5=9dc3dab6ce2b7ccb833a866efb392821
  Downloading RPi.GPIO-0.5.11.tar.gz
  Running setup.py egg_info for package RPi.GPIO
    
Installing collected packages: RPi.GPIO
  Found existing installation: RPi.GPIO 0.5.9
    Uninstalling RPi.GPIO:
      Successfully uninstalled RPi.GPIO
  Running setup.py install for RPi.GPIO
    building 'RPi.GPIO' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/py_gpio.c -o build/temp.linux-armv7l-2.7/source/py_gpio.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/c_gpio.c -o build/temp.linux-armv7l-2.7/source/c_gpio.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/cpuinfo.c -o build/temp.linux-armv7l-2.7/source/cpuinfo.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/event_gpio.c -o build/temp.linux-armv7l-2.7/source/event_gpio.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/soft_pwm.c -o build/temp.linux-armv7l-2.7/source/soft_pwm.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/py_pwm.c -o build/temp.linux-armv7l-2.7/source/py_pwm.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/common.c -o build/temp.linux-armv7l-2.7/source/common.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/constants.c -o build/temp.linux-armv7l-2.7/source/constants.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv7l-2.7/source/py_gpio.o build/temp.linux-armv7l-2.7/source/c_gpio.o build/temp.linux-armv7l-2.7/source/cpuinfo.o build/temp.linux-armv7l-2.7/source/event_gpio.o build/temp.linux-armv7l-2.7/source/soft_pwm.o build/temp.linux-armv7l-2.7/source/py_pwm.o build/temp.linux-armv7l-2.7/source/common.o build/temp.linux-armv7l-2.7/source/constants.o -o build/lib.linux-armv7l-2.7/RPi/GPIO.so
    
Successfully installed RPi.GPIO
Cleaning up...

再次執行,沒問題了。

[產品] Raspberry Pi 2 Model B + 外殼 + 5V/2.5A電源組

Pi-2-Clear-ABS-Case-PSU
《規格》
1. Raspberry Pi 2 Model B x1
2. 原廠授權外殼(透明) x1
3. 5V/2A USB 電源轉換器 + microUSB 傳輸線 升級為 5V/2.5A 電源轉換器 x1

$ 2,180

Pi-2-Black-ABS-Case-PSU
《規格》
1. Raspberry Pi 2 Model B x1
2. 原廠授權外殼(黑色) x1
3. 5V/2A USB 電源轉換器 + microUSB 傳輸線 升級為 5V/2.5A 電源轉換器 x1

$ 2,180(黑色) –停售

Pi-2-Clear-Anidees-Case-PSU
《規格》
1. Raspberry Pi 2 Model B x1
2. anidees Model B+/Pi 2鋁合金外殼(銀色) x1
3. 5V/2A USB 電源轉換器 + microUSB 傳輸線 升級為 5V/2.5A 電源轉換器 x1

$ 2,980

Pi-2-Black-Anidees-Case-PSU
《規格》
1. Raspberry Pi 2 Model B x1
2. anidees Model B+/Pi 2鋁合金外殼(黑色) x1
3. 5V/2.5A USB 電源轉換器 + microUSB 傳輸線 升級為 5V/2.5A 電源轉換器 x1
$ 2,980

《相關》
- [產品] SanDisk Ultra microSDHC Class10 8G 48MB/s
- [產品] SanDisk Ultra microSDHC Class10 16G 48MB/s
- [產品] EDIMAX EW-7811Un 無線網卡
- [產品] EW-7822UAn 300Mbps 長距離高速 USB 無線網卡
- [產品] HDMI 轉 VGA 轉換器(帶音訊)
- [產品] PL2303HXD USB轉TTL傳輸線
- [產品] 3.5mm轉RCA傳輸線

[產品] Raspberry Pi 2 Model B + microSD卡 + 5V/2.5A電源組

Pi-2-micro8G-PSU
《規格》
1. Raspberry Pi 2 Model B x1
2. SanDisk Ultra microSDHC Class10 8G microSD卡 x1
3. 5V/2A USB 電源轉換器 + microUSB 傳輸線 升級為 5V/2.5A 電源轉換器 x1

$ 2,080 (停售)

 

Pi-2-micro16G-PSU
《規格》
1. Raspberry Pi 2 Model B x1
2. SanDisk Ultra microSDHC Class10 16G 32G microSD卡 x1
3. 5V/2A USB 電源轉換器 + microUSB 傳輸線 升級為 5V/2.5A 電源轉換器 x1

$ 2,180

《相關》
- [產品] Model B+ 霧面原廠授權外殼
- [產品] Model B+ 黑色原廠授權外殼
- [產品] Coupé PiBow Raspberry Pi Case – Model B+
- [產品] anidees Model B+鋁合金外殼 (銀色/黑色)
- [產品] EDIMAX EW-7811Un 無線網卡
- [產品] EW-7822UAn 300Mbps 長距離高速 USB 無線網卡
- [產品] HDMI 轉 VGA 轉換器(帶音訊)
- [產品] PL2303HXD USB轉TTL傳輸線
- [產品] 3.5mm轉RCA傳輸線

[產品] Raspberry Pi 2 Model B

Raspberry-Pi-2-Model-B

《規格》

SoC: Broadcom BCM2836 BCM2837
CPU: 900 MHz;Quad-core ARM Cortex-A7
GPU: Dual Core VideoCore IV® Multimedia Co-Processor; Open GL ES 2.0; hardware-accelerated OpenVG; 1080p30 H.264 high-profie decode
記憶體: 1GB LPDDR2(和 GPU 共享)
視訊輸出: Composite RCA; HDMI
音訊輸出: 3.5 mm jack; HDMI(1.3 & 1.4)
儲存: microSD
USB: USB 2.0 x 4
Ethernet: 10/100 RJ45
GPIO: 40-pin 2.54 mm (100 mil) expansion header: 2×20 strip
工作電流: 700 mA
尺寸: 85mm x 56mm x 17mm
重量: 42g

《新聞》
- [新聞] Raspberry Pi 2 – Model B 釋出

《下載》
- BCM2836 ARM-local peripherals
- Cortex-A7 MPcore Processor Reference Manual

《相關》
- [產品] Raspberry Pi Model B+ 512MB
- [產品] Raspberry Pi Model A+ 256MB RAM
- [產品] UK製Raspberry Pi Rev 2 Model B 512MB
- 周邊(外殼/電源/SD卡/無線網卡/轉接頭)

$ 1680

[新聞] Raspberry Pi 2 – Model B 釋出

Raspberry Pi 2 Model B
圖片來源:RASPBERRY PI 2 ON SALE NOW AT $35

Raspberry Pi 2 出來了,與 Raspberry Pi 1 最大的改變是換了 SoC,由 BCM2835 改成 BCM2836,也因此舊版本的 firmwarekernel 將無法適用,必須更新到最新版本

raspberry-pi-2-model-b-multiple-views
圖片來源:Introducing the Raspberry Pi 2 – Model B

《新的 SoC BCM2836》
1. 900MHz quad-core ARM Cortex-A7 CPU,大約有 6 倍的效能提昇。
2. 1GB LPDDR2 SDRAM。
3. 捨棄 PoP(package-on-package),而是將處理器和記憶體分別焊在板子的正反兩面。
4. 因為採用 quad-core ARMv7 的處理器,所以會有較高的功耗。

《對 OS 的影響》
但因為採用了 ARMv7 的處理器,因此可執行更多的 ARM GNU/Linux 版本,例如過去採用 ARMv6 指令集而無法執行 Ubuntu,現在也可以在 Raspberry Pi 2 上跑 Snappy Ubuntu Core。甚至可支援 Microsoft Windows 10,並且是免費提供給 Makers

《沒有改變的部份》
1. 和 Model B+ 一樣的外型與尺寸。
2. PCB 板固定螺絲開孔處相同。
3. USB、Ethernet、A/V、HDMI、micro SD 和 microUSB 位置相同,尺寸也相同。
4. Camera、Display 和 40-pin GPIO 位置也相同。

《兩代快速比較》

Model B+ Raspberry Pi 2
Processor Chipset: Broadcom BCM2835 ARMv6 Broadcom BCM2836 ARMv7 Quad Core Processor
GPU: Videocore IV Videocore IV
Processor Speed: Single Core @700 MHz QUAD Core @900 MHz
RAM: 512 MB SDRAM @ 400 MHz 1GB SDRAM @ 450 MHz
Storage: microSD microSD
USB 2.0: 4x USB Ports 4x USB Ports
Power Draw / Voltage: 1.8A @ 5V 1.8A @ 5V
GPIO: 40 pin 40 pin
Ethernet Port: Yes Yes
Dimensions: 85 x 56 x 17mm 85 x 56 x 17mm
Weight: 42g 42g

新版本(2015-01-31)的 Raspbian 也一併釋出。release notes 如下:

2015-01-31:
  * Support for Pi2
  * Newer firmware
  * New Sonic Pi release
  * Updated Scratch
  * New Wolfram Mathematica release
  * Updated Epiphany

 

常見問與答:

Raspberry Pi 1 Model B 和 Model B+ 會終止嗎?
目前不會。並且還有許多企業用戶為了穩定,是採用 Model BModel B+ 的版本,我們會盡量維持他們的需求。

Raspberry Pi 2 Model A 什麼時候會出?
大概是 2015 年底。

那 Compute Module 呢?
未來將會釋出 BCM2836 版本的 Compute Module。

相關新聞:
* RASPBERRY PI 2 ON SALE NOW AT $35
* Introducing the Raspberry Pi 2 – Model B
* Raspberry Pi 2 – the New Quad-core A7 Pi2

我們已經開賣。
- [產品] Raspberry Pi 2 Model B (現貨)
- [產品] Raspberry Pi 2 Model B + microSD卡 + 5V/2A電源組
- [產品] Raspberry Pi 2 Model B + 外殼 + 5V/2A電源組