Raspberry Pi 3 Mode B:
- 1.2G 4核 64位 ARM Cortex-A53 CPU
- 4個(gè)USB2.0接口
- 40針 GPIO 接口
- 有線和無(wú)線 Wi-Fi 網(wǎng)絡(luò)
- HDMI
![](https://developer.android.com/things/images/raspberry-pi-3-board.png)
刷入系統(tǒng)鏡像
所需硬件:
- HDMI 線
- HDMI 顯示器
- Micro-USB 線
- RJ45 網(wǎng)線
- MicroSD 讀卡器
下載 Android Things 最新 Preview 版鏡像:
容量至少8G 的 microSD 卡
解壓下載的 Things 系統(tǒng)鏡像
-
按RaspberryPi 官方的教程燒寫(xiě)鏡像到 SD 卡:
把寫(xiě)好鏡像的 SD 卡插入 RaspberryPi 板子
-
連接電源線筏养、HDMI顯示器几莽、網(wǎng)線
驗(yàn)證 AndroidThings 是否運(yùn)行在 RaspberryPi 上。AndroidThings Launcher 會(huì)在顯示器上顯示板卡的信息软棺,包含 IP 地址。
-
通過(guò) adb 連接 RaspberryPi 的 IP
$ adb connect <ip-address> connected to <ip-address>:5555
連接 Wi-Fi
使用 adb 進(jìn)行 Wi-Fi 設(shè)置:
-
向 Wi-Fi Service 發(fā)送一個(gè) intent琳状,參數(shù)包含 SSID 和 本地網(wǎng)絡(luò)的 passcode:
$ adb shell am startservice \ -n com.google.wifisetup/.WifiSetupService \ -a WifiSetupService.Connect \ -e ssid <Network_SSID> \ -e passphrase <Network_Passcode>
如果沒(méi)有密碼绵跷,可以不用 passphrase 參數(shù)
-
使用 logcat 驗(yàn)證是否連接成功:
$ adb logcat -d | grep Wifi ... V WifiWatcher: Network state changed to CONNECTED V WifiWatcher: SSID changed: ... I WifiConfigurator: Successfully connected to ...
-
測(cè)試是否可以 ping 通遠(yuǎn)程 IP:
$ adb shell ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=6.67 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=55.5 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=23.0 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=245 ms
串口調(diào)試 Console
串口控制臺(tái)是一個(gè)很有用的工具,用于調(diào)試主板和系統(tǒng)的 log 信息笙僚。串口 console 是系統(tǒng) kernel 的日志默認(rèn)的輸入位置(如 dmesg)芳肌,并且提供了一個(gè)全功能的 shell 環(huán)境可以使用諸如logcat
的命令。在沒(méi)有網(wǎng)絡(luò)連接時(shí)味咳,如果你沒(méi)有其他方式連接 adb庇勃,串口 console 會(huì)很有用。
接線方式(使用 USB 轉(zhuǎn) TTL 串口線連接設(shè)備 UART 針腳):
![](https://developer.android.com/things/images/raspberrypi-console.png)
使用終端工具訪問(wèn) USB 串口設(shè)備槽驶。不同平臺(tái)的可以用的工具: PuTTY (Windows), Serial (Mac OS), Minicom (Linux)责嚷。
串口參數(shù)如下:
- Baud Rate: 115200
- Data Bits: 8
- Parity: None
- Stop Bits: 1
禁用串口 console
Raspberry Pi 的調(diào)試 console 和 UART0 共用I/O針腳,因此在用 UART 連接其他外圍設(shè)備時(shí)掂铐,會(huì)產(chǎn)生沖突罕拂。在 app 訪問(wèn) UART0 之前,需要按以下步驟禁用串口 console:
斷開(kāi)電源全陨,移除 SD 卡
把 SD 卡插到開(kāi)發(fā)機(jī)
-
在開(kāi)發(fā)機(jī)上訪問(wèn) SD 卡分區(qū):
- Linux: Use dmesg to discover the disk name (e.g. sdX), followed by mount to make the first partition accessible:
$ dmesg ... [...] sd 9:0:0:0: [sda] Attached SCSI removable disk ... $ mount /dev/sda1 /mnt/pisdcard
- Mac: Use diskutil list to discover the disk name (e.g. diskX), followed by mount to make the first partition accessible:
$ diskutil list /dev/disk0 (internal, physical): ... /dev/disk1 (internal, virtual): ... /dev/disk2 (external, physical): ... $ mount -t msdos /dev/disk2s1 /Volumes/pisdcard
- Windows: Open File Explorer and locate the RPIBOOT volume.
-
找到
cmdline.txt
文件爆班,刪除以下行:console=serial0,115200
如果需要再次啟用,可以把這行再加回來(lái)
保存
cmdline.txt
文件辱姨,卸載 SD 卡把 SD 卡插入 RaspberryPi柿菩,通電啟動(dòng)
RaspberryPi I/O 口
![](https://developer.android.com/things/images/pinout-raspberrypi.png)