# I2C Lab #### 組員: A1105129 吳祥毅 M1115114 楊皓翔 #### 指導老師:林宏益 --- ### 一、實驗目的 1. 使用CSI camera 完成驅動,並進行拍照 1. 使用I2C協定完成: (A) Random byte read (B) Random byte write ### 二、實驗原理 1. 利用內建函式庫的照片拍攝程式 2. 利用I2C協定完成24LC02與樹莓派的溝通 ### 三、實驗材料 1. 筆電(Ubuntu 20.04) 2. 樹莓派 3. 24LC02 ### 四、實驗步驟&成果 1. **實驗一** (1) 使用 `sudo raspi-config`指令,將相機功能與Glamor啟用。 (2) `nano /boot/config.txt`,修改`gpu_mem=144` (3) 在命令列輸入`raspistill -o output1.jpg`,以拍攝照片 (4) 插入USB至樹莓派,將照片傳到USB再用電腦打開照片  **成果**  2. **實驗二** (1)利用杜邦線將與24LC02對應的PIN腳連接  (2)在命令列輸入`i2cdetect -y 1` ,確認I2C的裝置位址`0x50`  (3)程式撰寫 ```python= import smbus import time bus = smbus.SMBus(1) time.sleep(1) red while 1 : write_reg = int(input("Write Which Register:")) write_value = int(input("value:")) bus.write_bus_byte_data(0x50,write_reg,write_value) time.sleep(1) #不加時間延遲會報錯 read_reg = int(input("Read Which Register:")) read_value = bus.read_bus_byte_data(0x50,read_reg) print("Value :",read_value) ``` **成果**  ### 五、實驗討論&心得 在I2C實驗中,因為沒加上時間延遲`time.sleep(1)`,導致程式不斷報錯,雖然變得愈加挫折,但在解決完BUG時,仍有很大的成就感。在實驗中時常出現報錯情形,透過增加實作累積經驗,越來越能掌握到錯誤所在並加以改進。 ### 六、參考文獻 :::danger 參考文獻 : * [助教的HackMD](https://hackmd.io/@neko-yoru/rJrW8nbkp) // [Stackoverflow Fix IOError](https://stackoverflow.com/questions/52735862/getting-ioerror-errno-121-remote-i-o-error-with-smbus-on-python-raspberry-w) ::: :::info * 編輯人員 :[name=吳祥毅] :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up