---
# System prepended metadata

title: 嵌入式系統總整與實作 Raspberrypi 4 環境建置
tags: [嵌入式系統]

---

# 嵌入式系統總整與實作 Raspberrypi 4 環境建置

## 環境建置

1. 下載作業系統映像檔: https://downloads.raspberrypi.com/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2023-12-06/2023-12-05-raspios-bullseye-armhf.img.xz
2. 下載並安裝SD Card Formatter軟體: https://www.sdcard.org/downloads/formatter/sd-memory-card-formatter-for-windows-download/
   :::info
   如果為全新的SD卡，就不用做formatting；如果為已經分割好磁區的SD卡就一定要重新做formatting，否則樹莓派安裝OS時會有磁區分割的錯誤
   :::
   並將SD卡做quick format
3. 下載並安裝balenaEtcher軟體 (燒錄OS至SD卡的軟體): https://etcher.balena.io/
   開啟時**使用系統管理員身分開啟**，並做燒錄
5. 修改/boot/config.txt: 
   ```
   刪除hdmi_force_hotplug的註解 (強制開啟hdmi，可避免安裝攝影機後攝影機與VNC遠端桌面衝突)
   在[all]後的block新增一行enable_uart=1 (讓我們的USB轉TTL線可以支援)
   ```
6. 修改/boot/cmdline.txt:
   ```
   把quiet參數刪除 (enables boot messages from the kernel to also appear there)
   ```
7. 建立檔案ssh至/boot (等於enable ssh)
8. 建立檔案userconf.txt至/boot，內容: (利用headless方式新增使用者，**帳密為pi及pi**)
   ```
   pi:$6$1tbdThc.nwBoOE7R$iV.05jvw31icLYXcXStuQOUt5SIyVjstochOnaqfvhKLxItuqcyhceiIxo5QVIuJ7K0Pw79U4.YT9okW2g9jn1
   ```
9. 下載並安裝USB轉TTL線的driver (Windows11似乎有內建，可不用安裝): https://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41
10. 電腦連接USB端，樹莓派PIN腳6、8、10分別連接TTL端的黑、白、綠線，在樹莓派背面插入SD卡並開機
![20240308_140155](https://hackmd.io/_uploads/rJb7G4O6T.jpg)
12. 下載終端機程式MobaXterm: https://mobaxterm.mobatek.net/download-home-edition.html ，並開啟一個Session->Serial，Serial Port選Prolific USB-to-Serial Comm Port，Speed選115200，並進入樹梅派終端
   :::warning
   進入終端後可能會一直黑畫面，此時**扳動兩次電源線的開關**，終端即可跑出文字![20240308_143951 (1)](https://hackmd.io/_uploads/HkLGQN_Tp.jpg)
   :::
12. 
   ```
   sudo raspi-config
   
   進入System Options -> S1 Wireless LAN
   選擇國家
   設定要連的WiFi的SSID及passphrase
   
   進入System Options -> S2 Audio
   選擇Headphones (之後音源孔輸出)
   
   進入System Options -> S5 Boot / Auto Login
   選GUI登入
   
   進入Display Options -> VNC Resolution
   自己選擇VNC遠端桌面的解析度
   
   進入Interface Options -> I1 Legacy Camera
   enable
   
   進入Interface Options -> I3 VNC
   enable
   
   進入Interface Options -> I5 I2C
   enable
   
   進入Advanced Options -> A1 Expand Filesystem
   expand filesystem (原本分割磁區的第2塊磁區沒有占用全部的剩餘空間，現在改成全部占用)
   ```
13. 下載並安裝VNC Viewer (遠端桌面操控軟體): https://www.realvnc.com/en/connect/download/viewer/ ，打開輸入樹莓派連接WiFi後的IP並做連線 **(樹莓派需與電腦在相同LAN下)**，開啟後右鍵VNC圖示 -> Options -> Troubleshooting-> Enable direct capture mode (在之後用到camera時，camera的影像會在local端，開啟此設定可在遠端桌面下看到local端的camera影像)

## 互傳檔案 (GUI方式)

用MobaXterm軟體選擇用Session->**ssh**登入樹莓派後，左側視窗即會有GUI的傳輸欄

## I2C相關工具

若連接的device有使用到I2C協定，可安裝```i2c-tools```工具檢查I2C的狀態

```sh=
sudo apt install i2c-tools

sudo ls -al /dev/*i2c*  # 列出正在連接的I2C device
sudo i2cdetect -y 1  # 列出正在連接的I2C device及I2C address
```