之前曾以4塊Model B+板子,玩玩distcc與MPICH,但只用紙盒裝著板子,相當陽春;到電子材料行找找適當的組具,讓4塊板子合體吧。
Model B+與更新的rpi板子,其孔洞大小、板子高度,應該都差不多,所以皆可適用。
原裝紙盒。
2017/03/27
Raspberry Pi:六角塑膠柱組合四塊Model B+
標籤: Raspberry Pi
2017/03/22
Arduino擴充板:Adafruit的2.8吋觸控式TFT螢幕擴充板
買了Adafruit的Adafruit的2.8吋觸控式TFT螢幕擴充板,開箱並簡單介紹,詳細設定步驟請看Adafruit的文件;我買的是Arduino擴充板形式,另外也有分線板形式。
我的環境:Windows 10、Arduino IDE 1.8.1、Arduino Uno板子。
這款產品主要有三個部分,都是SPI介面:
- TFT LCD,對角線長2.8吋,解析度240x340像素,18-bit顏色(262000個色彩),不過Adafruit的程式庫使用16-bit色彩模式,背光是4個白光LED,驅動器是ILI9341。LCD有8-bit模式與SPI模式,前者需要的腳位較多、速度較快,後者需要的腳位較少、速度較慢。
- 觸控螢幕,屬於電阻式觸控技術,只能感測一個接觸點,控制器是STMPE610。
- microSD插槽,SPI介面。
因為已經是Arduino擴充板了,硬體方面直接插上即可。
軟體方面需要的程式庫:
Adafruit_ILI9341,LCD低階操作動作的程式庫,附帶許多範例。
Adafruit-GFX-Library,高階的泛用圖形繪製程式庫,API參考文件。
Adafruit_STMPE610,觸控螢幕的程式庫。
先執行Adafruit_STMPE610程式庫的測試範例TouchTest,然後用手指按一按觸控螢幕,應可在序列埠監控視窗看到類似下列的訊息。
注意:這支範例程式預設使用I2C介面,需要修改,拿掉I2C的部分,加上底下這兩行使用SPI:
#define STMPE_CS 8
Adafruit_STMPE610 touch = Adafruit_STMPE610(STMPE_CS);
然後執行Adafruit_ILI9341程式庫的範例touchpaint,從左邊選擇顏色,當個小畫家吧。
板子的正面就是螢幕,背面如下圖:
- 左下方,可看到TFT LCD與觸控螢幕(touchscreen) 的控制器晶片型號與介面。
- 左邊中間,microSD卡插槽。
- 右邊中間,可看到腳位編號。
- 右下方,backlite控制要不要從腳位3控制背光(預設為開);TS int控制要不要接收觸控螢幕的中斷訊號;右邊的六個,控制SPI的腳位要不要連到13、12、11與ICSP排針,Leonardo與Mega板子需要修改。
參考資料:
- Resistive vs Capacitive Touchscreen | Tech Explainer,觸控技術簡易說明與比較。
- 2.8 TFT Touch Shield for Arduino with Resistive Touch Screen ID: 1651 - $34.95 : Adafruit。
- 2.8 TFT LCD with Touchscreen Breakout Board w/MicroSD Socket [ILI9341] ID: 1770 - $29.95 : Adafruit。
- 2.8 TFT Touch Shield for Arduino w/Capacitive Touch ID: 1947 - $44.95 : Adafruit,電容式觸控技術,控制器是FT6206,I2C介面。
- 2.8 TFT LCD with Cap Touch Breakout Board w/MicroSD Socket ID: 2090 - $39.95 : Adafruit。
- Downloads | Adafruit 2.8" TFT Touch Shield v2 - Capacitive or Resistive | Adafruit Learning System,資料規格表、電路設計圖。
2017/03/21
Raspberry Pi:RTC即時時鐘PCF8523
簡單記錄一下設定作業:Adafruit的RTC即時時鐘PCF8523電路板模組。其實這篇的內容,幾乎都是來自Adafruit的文件。
PCF8523屬於便宜的RTC,若想要更好的,請選用DS1307(一般)或DS3231(很好)。
我的環境:Raspberry Pi 3,Raspbian 2017-03-02。
硬體線路,參看https://pinout.xyz/的腳位功能圖:
- 實體腳位1(3.3V),接到PCF8523模組的VCC。
- 實體腳位6(GND),接到PCF8523模組的GND。
- 實體腳位3(SDA),接到PCF8523模組的SDA。
- 實體腳位5(SCL),接到PCF8523模組的SCL。
$ sudo apt-get install python-smbus i2c-tools
執行i2cdetect測試,PCF8523模組的I2C位址是0x68。
$ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
編輯 /boot/config,加入底下這行:
dtoverlay=i2c-rtc,pcf8523
重開機,再次執行,此時不會看到68,因為被系統拿去了。
$ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
移除原本的虛擬硬體時鐘套件,註:之後我不知道怎麼恢復。
$ sudo apt-get -y remove fake-hwclock
$ sudo update-rc.d -f fake-hwclock remove
修改/lib/udev/hwclock-set,註解掉底下這三行:
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi
執行raspi-config,進入選單4 Localisation Options - I2 Change Timezone,設定時區。
Current default time zone: 'Asia/Taipei'
Local time is now: Sun Mar 19 11:15:30 CST 2017.
Universal Time is now: Sun Mar 19 03:15:30 UTC 2017.
執行hwclock,讀取即時時鐘的資訊:
$ sudo hwclock -D -r
hwclock from util-linux 2.25.2
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
/dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change
...got clock tick
Time read from Hardware Clock: 2017/03/19 03:13:31
Hw clock time : 2017/03/19 03:13:31 = 1489893211 seconds since 1969
Sun 19 Mar 2017 11:13:31 AM CST -0.431869 seconds
rpi應會上網抓取時間日期,下指令date看看是否正確。
$ date
Sun Mar 19 11:16:04 CST 2017
把日期時間、寫入即時時鐘。
$ sudo hwclock -w
看看對不對。
$ sudo hwclock -r
Sun 19 Mar 2017 11:17:38 AM CST -0.588629 seconds
之後重開機,就會從即時時鐘抓日期時間。
參考資料:
標籤: Raspberry Pi
2017/03/19
Arduino練習:RTC即時時鐘PCF8523
之前曾用過RTC即時時鐘DS1307,自買零件組裝,這篇則購買Adafruit的RTC即時時鐘PCF8523電路板模組。
我的環境:Windows 10,Arduino IDE 1.8.1,Arduino Uno板子。
這款PCF8523模組的基本資料:
- 工作電壓:3.3V或5V
- 電池:CR1220
- 精確度:不高,一天可能誤差2秒
- 介面:I2C,位址0x68
Arduino Uno的5V,接到這款產品的VCC。
Arduino Uno的GND,接到這款產品的GND。
Arduino Uno的A4,接到這款產品的SDA。
Arduino Uno的A5,接到這款產品的SCL。
這款產品的SQW,不接。
參考資料:
DS1307 Real Time Clock Breakout Board Kit | Adafruit Learning System。
Subscribe to:
Posts (Atom)