Raspberry Pi 101

raspberrypi

#1

ดูเหมือนเป็นเรื่องๆ ง่ายๆ แต่บางทีก็แปลกๆ 55+

Installation

  1. ลง OS ใน microSD
    1. download มันมาก่อนเลย image มัน จะเอาตัวไหนก็เอา ถ้าอยากจะง่ายก็เอาตัวมี desktop ด้วย
    2. ง่ายก็ใช้นี่เลย Ether โปรแกรมสวยงาม ใช้ electron ก็น่าจะมีครบทุก platform
    3. (หรือ) ถ้าไม่คิดจะโหลดก็ dd if=<image file> of=/dev/xxxx ก็ไม่ยากเหมือนกัน
  2. ถ้ามีจอมีอะไรก็เสียบ microSD แล้ว ใช้งานได้ตามสบาย
  3. แต่ถ้าไม่มีชีวิตก็เริ่มประหลาดละ เพราะอย่างตัว lite ก็จะไม่เปิด ssh เป็น default ดังนั้นก็มีหลายทางเลือก แต่ที่คิดว่า ง่ายสุดคือ หา Linux ซักตัวซะ แล้ว chroot เข้าไปแก้ซะ ถ้าไม่ได้ใช้ Linux ก็ใช้ VirtualBox สร้างตัวที่ชอบไปครับ
    • การ chroot ถ้าเป็น Debian ก็

      sudo apt-get install qemu-user proot  # ถ้ายังไม่ได้ลง
      sudo proot -q qemu-arm -S /mnt/path/to/raspbian/
      
    • จากนั้นก็เหมือน root ของใน pi ละ จัดการนู้นนี่นั่นได้ตามใจชอบ

Configuration

สำหรับ raspbian-lite

อันนี้ไม่มี ssh ดังนั้นก็ต้อง chroot เข้าไปลงและ enable มัน ไม่ก็เสียบจอ config มันก่อนนะ

สำหรับ raspberry pi มีอยู่ 2-3 อย่างที่ควรใช้ให้คุ้นมือ

  1. raspi-config ใช้สำหรับปรับค่านู่นนี่นั่น เปิด ssh เปิด gpio ขยาย partition ให้เต็ม card blah blah blah ก็เข้ามาใช้กดๆ ดูให้ชินครับ ยังไงก็ต้องใช้
  2. การ update มี 2 ส่วน
    • update OS (debian)

      sudo apt-get update
      sudo apt-get dist-upgrade
      
    • update firmware

      sudo rpi-update
      
  3. ถ้า apt-get แล้วมีปัญหา ก็น่าจะเกิดจาก apt sources ใช้ไม่ได้ ก็แนะนำให้เปลี่ยนใน /etc/apt/sources.list ด้วย mirror ต่างๆเหล่านี้

Module อื่นๆ

GPIO

Vcc, Gnd, GPIO ก็มีตามนี้

อยากดูงามกว่านี้ ก็คงต้อง https://pinout.xyz/

Python rPi

sudo apt-get -y install python3-rpi.gpio

ถ้าเป็น python 2 ก็ python-rpi.gpio แต่ก็ไม่น่าจะมีเหตุผลอะไรที่ยังต้องใช้ py2 นะ (ตั้งแต่ปี 2018 เป็นต้นไป)

การใช้ 1-wire

◎ Easy UI

เข้าไปเปิดที่

sudo raspi-config

น่าจะง่ายที่สุด -> Interfacing options -> 1-wire

◎ CLI way

หรือแก้เองที่ /boot/config.txt โดยเพิ่ม

dtoverlay=w1-gpio

แล้วก็ reboot // อันนี้คือ ใช้ GPIO4 เป็น 1-wire interface และสามารถเข้าไป devices ที่เสียบๆ มา ได้ที่

ls /sys/bus/w1/devices/

◎ hardware

มันต่อได้เยอะแยะมากมายหลายตัว จำไม่ได้ว่ากี่ตัว แต่การต่อก็คือต้องมี 4.7kΩ เป็น pull-up resistor คร่อม Vcc กับ data ตัวนึง ส่วน 1-wire device อื่นๆ ก็ต่อเสียบมาที่เดียวกันนี่แหละ มันแยกด้วย id เอง // ที่เคยเห็นมีคนเอา CAT6 มาแล้วก็เสียบ DS18B20 ทุก 1-2m เป็น sensor ตามทาง

Camera

raspistill -o test.jpg

ถ้าเจอ error

* failed to open vchiq instance

ก็มีเดาได้ว่า user นั้นไม่มีสิทธิ ก็ใช้ root ไม่ก็ต้องเอา user เราเองไปใส่ใน group video ด้วย

usermod -a -G video myusername

ถ้าสนใจเขียนด้วย python ก็ลองดูตัวอย่างที่ makeuseof.com ได้

ทางเลือกซื้อกล้องถูกๆ

Wifi

Sound

ถ้าเราต้องการปิด sound module

=== snd_bcm2835: found that the Pi sound module is loaded. ===
Don't use the built-in sound of the Pi together with this lib; it is known to be
incompatible and cause trouble and hangs (you can still use external USB sound adapters).

ก็สร้าง file /etc/modprobe.d/sound-blacklist.conf ใส่แค่บรรทัดเดียวนี่

blacklist snd_bcm2835

แล้วก็ reboot ซะ ก็จะเรียบร้อย

หรือ จะแก้ /boot/config.txt ใส่

dtparam=audio=off