2017/02/28

Raspberry Pi:Sense HAT開箱介紹

很早很早以前,有個Astro Pi計畫,把Raspberry Pi送上太空,加上感測元件,開放讓學生提交想執行的程式,嘿,可惜外人也只能光看乾瞪眼而已,後來,該計畫搭配的擴充板Sense HAT,變成商品開始銷售。

除了Raspberry Pi板子、Sense HAT與官方相機模組,還有那看起來金剛不壞的外殼,真帥,可惜沒賣。

最近買了Sense HAT這塊擴充板,可搭配的板子有Pi 3 / Pi 2 / Model B+ / Model A+,我使用Pi 3,試試吧,雖然已經不新鮮囉,呵呵。
 
規格如下:
  • 8×8 RGB LED矩陣
  • 含5個按鈕的搖桿
  • 溫度(temperature)感測器,0-65°C (Accurate ±2°C)
  • 相對濕度(humidity)感測器,20-80% rH (Accurate ±4.5%, in 15-40°C ±0.5°C)
  • 大氣壓力(barometric pressure)感測器,260 – 1260 hPa (Accurate ±0.1 hPa)
  • 加速計(accelerometer),±2/4/8/16 (g)
  • 磁力儀(magnetometer) ,±4/8/12/16 (gauss)
  • 陀螺儀(gyroscope),±245/500/2000 (dps)
  • 尺寸:65.1mm x 56.6mm x 13.9mm
  • 重量:20.4g
開箱,紙盒的正面與背面。
厚厚的安全手冊,因為有各國語言,嘿,太不環保了吧。
六角隔離柱與螺絲。
拿出放在防靜電袋裡的Sense HAT,終於看到本尊了。一眼就可看到8×8的LED矩陣,其右邊有顆晶片標示著「ACCEL/GYRO/MAG」,再往右則標示著「PRESSURE」與「HUMIDITY」,嗯,沒找到溫度的字樣。右下角是搖桿。上方是要插入Pi板子的40針腳。四個角落各有一個裝設孔。
背面照。
硬體安裝,對準插入,沒什麼好說的。
若要更穩固,加裝六角隔離柱與螺絲。
開機,LED矩陣會發光。
接下來安裝軟體部分,首先更新套件清單:
$ sudo apt-get update

然後安裝Sense HAT的程式庫:
$ sudo apt-get install sense-hat

照理說應該也會啟動I2C,若無,請自己執行raspi-config設定組態。然後重開機:
$ sudo reboot

軟體架構如下圖,有C/C++程式庫(RTIMULib)的部份,也有Python程式庫(python-sense-hat)。
剛剛安裝的套件裡,已經包含許多範例程式,位於/usr/src/sense-hat/examples,底下指令可複製該子目錄到自己的家目錄裡:
$ cp -R /usr/src/sense-hat/examples/ ~/

有Python範例程式、也有C/C++的,後者需要下指令make進行編譯,以RTIMULibDrive11為例,這支程式可測試Sense HAT擴充板的所有感測器:
$ cd ~/examples/RTIMULib/RTIMULibDrive11
$ make
$ ./RTIMULibDrive11

可看到類似下列的輸出訊息,有roll、pitch、yaw、氣壓、海平面高度、溫度、濕度、
Settings file not found. Using defaults and creating settings file
Detected LSM9DS1 at standard/standard address
Using fusion algorithm RTQF
Detected LPS25H at standard address
Detected HTS221 at standard address
min/max compass calibration not in use
Ellipsoid compass calibration not in use
Accel calibration not in use
LSM9DS1 init complete
Sample rate 0: : roll:-0.639063, pitch:-1.415285, yaw:-43.705342
Pressure: 1025.0, height above sea level: -97.7, temperature: 25.2, humidity: 53.8

第一行說找不到設定檔,會使用預設值並新增;另可複製預先校正過的設定檔,讓測量結果更為準確:
$ rm RTIMULib.ini
$ cp /etc/RTIMULib.ini ./

再次執行RTIMULibDrive11,輸出訊息如下:
Settings file RTIMULib.ini loaded
Using fusion algorithm RTQF
Detected LPS25H at standard address
Detected HTS221 at standard address
Using min/max compass calibration
Using ellipsoid compass calibration
Using accel calibration
LSM9DS1 init complete
Sample rate 0: : roll:0.503324, pitch:1.209912, yaw:-2.244175
Pressure: 1025.1, height above sea level: -97.9, temperature: 26.2, humidity: 53.3

發現roll、pitch、yaw的值的確差異甚大。若想自己校準,請參閱Sense HAT - Raspberry Pi Documentation

其他尚有許多範例程式,自己試試吧,如compass.py會以LED指出北方、rainbow.py與rotation.py各自秀出絢麗的動畫效果、text_scroll.py則是文字捲動,還有小遊戲snake貪食蛇。

自己動手寫寫程式,底下這支Python程式,會以LED矩陣營造跑馬燈效果,秀出文字「Hello Sense!」,影片在此(只有10秒而已)
from sense_hat import SenseHat
sense = SenseHat()
sense.show_message("Hello Sense!")

其實呢,Sense HAT有模擬器喔,在瀏覽器上頭就可以嘗試,嘿,真好:
若想在自己的Pi板子上頭執行模擬器,需要安裝底下的套件:
$ sudo apt-get install python-sense-emu python3-sense-emu python-sense-emu-doc sense-emu-tools

哈,看到囉;模擬器可加速開發速度,然而模擬終歸只是模擬。

接下來,想想要做些什麼吧,不如看看MagPiHackster.io,參考別人開發的專案。


參考資料:

2017/02/25

Raspberry Pi的「劍橋」佈景主題:桌布與螢幕保護程式

Raspberry Pi官方為PIXEL桌面環境增添風采,釋出「劍橋」佈景主題,包括桌布與螢幕保護程式,試試看吧。

包裝成套件形式,以底下指令進行安裝,可個別安裝:

$ sudo apt-get update
$ sudo apt-get install cantab-wallpaper
$ sudo apt-get install cantab-screensaver

其中cantab-screensaver約需200 MB的空間,請注意。

或者,以底下指令,通通安裝:
$ sudo apt-get update
$ sudo apt-get install cantab-theme

然後到Appearance Settings設定桌布,桌布圖檔位於/usr/share/pixel-wallpaper目錄裡,約有30多張。

底下列出其中三張,嗯,這是倫敦大橋吧。
美輪美奐圖書館。
懸崖峭壁。
然後到Preferences - Screensaver設定螢幕保護程式,選擇「Cantab」;記得選擇「Only One Screen Saver」。
底下列出其中三部分,大都是從下往上逐漸改變視角,俯瞰景點。
某教堂嗎?
某學院?
順帶一提,我的電源供應器似乎不穩定,正常時畫面應如下:
但有時會花掉,呵呵。

2017/02/10

Raspberry Pi:移除掉沒用到的套件

Raspberry Pi基金會官方釋出的Raspbian,為了方便初學者使用,放入許多套件,但其實我們可能都用不到,這篇試著移除一些沒用到的套件。

另一條路子是使用Raspbian Lite精簡版,但那麼一來,就必須自己安裝想要的套件。

我的環境是Raspberry Pi 3,Raspbian Jessie with PIXEL 2017-01-11。

燒錄、開機、raspi-config初始組態設定後,嘿,居然已經用了3.6G。
pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  3.6G   11G  26% /
...其他省略...


讓我先更新套件,讓系統升級到最新版:
$ sudo apt-get update; sudo apt-get -y dist-upgrade

嘿, 居然佔用4.0G。
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  4.0G  9.9G  29% /

不過,因為下載的套件檔仍在,試著清除吧,也移除掉因相依關係而自動安裝的套件:
$ sudo apt-get clean
$ sudo apt-get autoremove --purge

嗯,其實沒多大變化。
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  3.6G   11G  26% /

然後,看看選單Programming裡頭,嘿,不需要的東西還不少啊。

以底下指令來移除套件,IBM的Node-RED、Mathematica、Scratch、Sonic Pi、Minecraft Pi。
$ sudo apt-get remove --purge --auto-remove nodered wolfram-engine scratch sonic-pi minecraft-pi

其中移除wolfram-engine應可拿回650MB的空間,scratch約100MB,sonic-pi約200MB,

再移除兩套Java IDE:BlueJ與Greenfoot,一套輕量型IDE:Geany。
$ sudo apt-get remove --purge --auto-remove bluej greenfoot geany

移除掉Sense HAT Emulator:
$ sudo apt-get remove --purge --auto-remove python-sense-emu python3-sense-emu python-sense-emu-doc sense-emu-tools

移除掉Email軟體Claws Mail、瀏覽器Chromium(可釋放出約200MB的空間)、瀏覽器Epiphany、瀏覽器Dillo。
$ sudo apt-get remove --purge --auto-remove claws-mail chromium-browser rpi-chromium-mods epiphany-browser dillo

當我移除掉Chromium和Ephiphany,發現還有Dillo,第一次看到這玩意。
都移除掉以後,想開啟瀏覽器的話,就會出現錯誤囉。
如果你不需要的話,也可移除掉很大的Libre Office,記得加上星號,才會移除掉全部:
$ sudo apt-get remove --purge --auto-remove libreoffice*

最後看看,從3.6G降到2.1G,還不錯。
pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  2.1G   12G  15% /


其實也不是非移除不可,既然內建、那就放著就好了,但是想更新套件時,常常會需要連帶更新一堆東西,很煩,若能把不需要的先移除,就能減少需要更新的東西。