Raspberry Pi 筆記

參考連結

Raspberry Pi 輕鬆學

NOOBS (New Out Of Box Software)

startx
sudo shutdown -h now    # shutdown
sudo shutdown -r now     # shutdown and reboot
sudo apt-get install xxx   # Find xxx from internet and install it 
sudo apt-get update        # update version information
sudo apt-get upgrade      #

Scratch

Turtle Graphics

Sonic Pi

GPIO

$ sudo apt-get install python-RPi.GPIO
$ sudo python
import RPi.GPIO as GPIO
GPIO.RPI_REVISION

Make: 感測器 運用 Arduino 和 Raspberry Pi 感測的專題與實驗

替 Raspberry Pi 安裝作業進行故障排除 p7

將 SD card 格式化為 FAT32

Linux:
sudo gparted
sudo pal impsest
sudo gnome-disks

Windows:
www.sdcard.org/downloads/formatter_4/

紅色電源指示燈沒亮?變暗或閃爍?短暫亮起?

-> 電力不夠,要 5V 1A 以上

電源指示燈亮,但螢幕黑的

-> 可能無法讀取 SD card

  • bootcode.bin 要在 SD 卡的最上層
  • 重新格式化 SD 卡並解壓 NOOBS.zp 上去
  • 或者換張卡試試

顯示器顯示四種顏色的盒子?

-> kernel.img 無法正常啟動

  • 重新格式化 SD 卡並解壓 NOOBS.zp 上去
  • 或者換張卡試試

出現錯誤訊息

  • 移除 USB 裝置和 WIFI 轉接器。只留下 SD 卡、顯示器、電源。

開機時同時按住 Shift 鍵,可選擇重新安裝 Raspbian 選項

網路問題

LNK 燈
100 燈
FDX 燈(全雙工)
ifconfig # 顯示網路轉接器設定
route -n # 顯示網路連接的轉接圖
cat /etc/resolv.conf # 顯示 DNS
ping -c 1 google.com # 測試能否連到 google

透過 CLI 控制 GPIO 引腳

# echo "27" > /sys/class/gpio/export
# echo "out" > /sys/class/gpio/gpio27/direction
# echo "1" > /sys/class/gpio/gpio27/value
# echo "0" > /sys/class/gpio/gpio27/value

不需要 Root 權限的 GPIO

$ sudoedit /etc/udev/rules.d/88-gpio-without-root.rules
SUBSYSTEM=="gpio", RUN+="/bin/chown -R root.dialout /sys/class/gpio"
SUBSYSTEM=="gpio", RUN+="/bin/chown -R root.dialout /sys/devices/virtual/gpio"

# Sticky bit
SUBSYSTEM=="gpio", RUN+="/bin/chmod g+s root.dialout /sys/class/gpio"
SUBSYSTEM=="gpio", RUN+="/bin/chmod g+s root.dialout /sys/devices/virtual/gpio"

SUBSYSTEM=="gpio", RUN+="/bin/chmod -R ug+rw root.dialout /sys/class/gpio"
SUBSYSTEM=="gpio", RUN+="/bin/chmod -R ug+rw root.dialout /sys/devices/virtual/gpio"

可在 botbook.com 下載

$ echo "27" > /sys/class/gpio/unexport
$ echo "27" > /sys/class/gpio/export
$ echo "out" > /sys/class/gpio/gpio27/direction
$ echo "1" > /sys/class/gpio/gpio27/value

用超音波(PING)測量距離

  • gpio.interruptMode(pin, "both")
  • t = gpio.pulseInHigh() 傳回從開始(上緣;0->1)到結束(下緣;1->0)的時間(us)

安裝 SpiDev [p63]

MCP3002 ADC 使用 SPI

$ sudo apt-get update
$ sudo apt-get -y install git python-dev
$ git clone https://github.com/doceme/py-spidev.git
$ cd py-spidev/
$ sudo python setup.py install

$ sudoedit /etc/modprobe.d/raspi-blacklist.conf
to delete blacklist spi-bcm2708
save: Ctrl-X, y enter

不需 root 允許存取 SPI

$ sudo cp 99-spi.rules /etc/udev/rules.d/99-spi.rules
SUBSYSTEM=="spidev", MODE="0666"

QT113 電容感測器 [p111]

實驗:製作你自己的觸控感測器 [p121]

void loop() {
    int time = 0;
    digitalWrite(sendPin, HIGH);
    while (digitalRead(readPin == LOW) time++;
    Serial.println(time);
    digitalWrite(sendPin, LOW);
    delay(100);
}

SMBus 和不需要 Root 權限的 I2C [p231]

$ sudo apt-get update
$ sudo apt-get inatall python-smbus

$ sudoedit /etc/modprobe.d/raspi-blacklist.conf
to delete "blacklist i2c-bcm2708"
save: Ctrl-X, y, enter

$ sudoedit /etc/modules
add the following 2 lines

i2c-bcm2708
i2c-dev

$ sudo cp 99-i2c.rules /etc/udev/rules.d/99-i2c.rules

SUBSYSTEM=="i2c-dev", MODE="0666"

Raspberry Pi 的太陽能監控程式碼與連接 [p333]

$ sudo apt-get update
$ sudo apt-get -y install python-matplotlib
# voltage_record.py

import matplotlib
matplotlib.use("AGG") # a back-end to save png files
import matplotlib.pyplot as plt

#…
plotFile = "/home/pi/public_html/history.png"
#…
plt.savefit(plotFile)
[[/code]]

用 Cron 執行定時任務 [p336]

$ crontab -e
add the following lines
*/5 /home/pi/voltage_record/voltage_record.py
*/1 touch /tmp/botbook-cron

啟用 Raspberry Pi 的串列埠功能[p344]

要先改設定登出,否則會被 login shell 佔用
$ sudoedit /etc/inittab

  1. T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

$ sudo shutdown -r now

Raspberry Pi 的視覺化程式碼與連接 [p345]

$ sudo apt-get update
$ sudo apt-get -y install python-pygame python-numpy

這裡很潮濕嗎?[p357]

DHT11 使用的通訊協定比較少見。發送的位元訊息是一種非常快速的極短脈衝
Arduino 本身沒有 OS 因此反應比 Raspberry Pi 即時。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License