理論描述到此為止,現在我們將其付諸實踐!我們從最簡單的Arduino基本功能開始:LED和串接輸出。我使用的Arduino程式如下所示。我對Arduino的“淡入淡出”程式進行了簡單修改。該程式透過PWM(脈衝寬度調製)調節LED的亮度,並將當前PWM值列印到控制台。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// GPIO pin with PWM support int pwmLedPin = 12; // GPIO pin without PWM support int onOffLedPin = 6; void setup() { // set both pins to output pinMode(pwmLedPin, OUTPUT); pinMode(onOffLedPin, OUTPUT); } void loop() { // turn the first LED fully on digitalWrite(onOffLedPin, HIGH); // fade in the second LED for(int pwm = 0; pwm <= 255; pwm += 5) { // set the PWM value analogWrite(pwmLedPin, pwm); // print the PWM value to console Console.println(pwm); delay(30); } // turn the first LED fully off digitalWrite(onOffLedPin, LOW); // fade out the second LED for(int pwm = 255; pwm >= 0; pwm -= 5) { // set the PWM value analogWrite(pwmLedPin, pwm); // print the PWM value to console Console.println(pwm); delay(30); } } |
有了代碼之後,我們需要將所有元件連接在一起。其實並不複雜,只需連接兩個LED和幾個10k電阻即可。
對Arduino研發板進行程式設計的最後一步:點擊神奇的“Upload”按鈕,然後系統會自動編譯器並將其上傳到硬體中。在RasPiArduino框架下,將程式上傳到Raspberry有兩種方法。
1. 使用“Upload”按鈕。將Raspberry連至您的本地網路,在“Tools”功能表中的“Ports”部分應該能看到其IP位址。選擇該位址,就像選擇Arduino COM埠一樣,然後點擊“Upload”。然後,系統會提示您輸入超級使用者(root)密碼。輸入後,系統會上傳程式並自動執行。您可以在Arduino序列監視器中查看控制台輸出結果。
2. 手動上傳。在Arduino IDE中,進入功能表“Sketch”,然後點擊“Export compiled binary”。系統會編譯您的程式,並將二進位檔案匯出為.bin檔,檔的存放路徑為程式資料夾。現在,我們得把此檔複製到Raspberry Pi。下一步是用以下命令將這個二進位檔案變成可執行檔:
chmod +x exported_binary.bin
現在,您可以透過另一個命令來運行該二進位檔案,必須以超級用戶身份執行:
sudo ./exported_binary.bin
現在,所有控制台輸出都將顯示在控制台中。與其他任何端子程式一樣,我們可以透過鍵盤快速鍵Ctrl+C停止。我更喜歡手動上傳,因為它不需要設定其他服務,並且通常更可靠(至少在我的配置中是這樣的)。
請用以上兩種方法其中的一種上傳程式,然後觀察兩個LED。其中一個LED應該會不斷閃爍,而另一個則會呈現淡入淡出效果!
程式還將當前的PWM值列印到控制台中,具體輸出情況如下圖所示。