在找免費的電路模擬器?123D Circuits 滿足你的願望!

本服務已轉移至Tinkercad Circuits,教學影片已更新:https://www.youtube.com/watch?v=HhhhWwSH0YU

又快過完一個學期了,是否正在為專題煩惱呢? 或是你正因為學校所教的電子電路課程在家無法實做而感到麻煩嗎? 還是說你是一位剛剛接觸 Arduino 的自造者(Maker),對於自己所創造的東西不會動又找不出原因而感到煩躁?

試試 123D CIRCUITS 吧!這個由 AUTODESK 提供的線上模擬器擁有相當全面的功能,你只需要打開瀏覽器、登入這個網站然後你就可以開始接線路還能在上面寫 Arduino 程式來測試呢!如果你還有印象,之前發表過的 Arduino 教學文章也有用到這個網站。

閱讀全文〈在找免費的電路模擬器?123D Circuits 滿足你的願望!〉

Beaglebone Black – 透過 NodeJS 使用 RF24 Library

RF24 是一個相當完整的 nRF24L01 函式庫(library),它目前支援許多平台,例如 Arduino、樹莓派等等,先前有草草的介紹過。

最近因為在使用 Beaglebone Black (BBB) 這個單板電腦在做些實驗,需要用到 nRF24L01,本來是想直接用已寫好並放在 NPM 中的套件,結果發現無法使用,於是就想起了 RF24 有支援到 BBB,但遇到了些麻煩。

因為我只想用 NodeJS 去做大部分的控制,並不想要用 RF24 那種全 C/C++ 的方式來做,所以我就寫了一個簡單的程式來讓 NodeJS 與 RF24 能夠傳遞訊息並且操作 nRF24L01 模組。

閱讀全文〈Beaglebone Black – 透過 NodeJS 使用 RF24 Library〉

Arduino Basic (6) – AnalogRead 類比輸入

前面幾節講的都是數位的處理,也就是只有 0 和 1 兩種訊號,但我們的世界並不是只有 0 和 1 兩種訊號而已,我們還有更複雜的類比訊號。

諸如電壓、聲音、光亮、溫度等等的,都無法單純的由 0 和 1 構成。

那當我們需要處理這些訊號的時候該怎麼辦呢?

這時候就是 ADC (Analog to Digital Convert, ADC) 出場的時候啦!

閱讀全文〈Arduino Basic (6) – AnalogRead 類比輸入〉

Arduino Basic (5) – PWM 類比輸出

當你想用單晶片控制馬達時,最大的麻煩一定是轉速的控制。一般來說,數位電路只能會送出高態與低態兩種電壓,也就是 Arduino 的正 5V 以及 0V。而這種電壓只能控制馬達轉或不轉,並無法控制轉速。因此我們需要倚靠 PWM 來做控制。

閱讀全文〈Arduino Basic (5) – PWM 類比輸出〉

Arduino Basic (4) – Serial Communication

這一周我們要給各位認識的是 Serial Communication ,也就是串列通訊。

通訊在嵌入式系統中是非常重要的功能,原因除了要與其他設備交換資料之外,還有在 Debug 時所能提供的資料遠比只用 LED 來做 Debug 來得好很多。

當然,更好的 Debug 方式是使用專用的 Debugger 與軟體來做,但在軟硬體較為欠缺的時候,利用預先寫在晶片中的程式輸出一些資訊來了解系統運作是較好的選擇。

閱讀全文〈Arduino Basic (4) – Serial Communication〉

讓 Beaglebone Black 自動連上你的 WiFI!

先前我們曾經講過 Beaglebone Black(簡稱 BBB) 如何透過它內建的 USB 網路連線方式與電腦連結後再從電腦連到網際網路上,而今天我們要來教各位設定的是,如何讓 BBB 能夠透過 USB 無線網路卡自動連上你家的 WiFi AP,讓你不需要連上電腦也能讓他自動上網囉~

閱讀全文〈讓 Beaglebone Black 自動連上你的 WiFI!〉

Arduino Basic (3) – Click Click Click

Click Click Click

如果一個單晶片的系統只做 LED 顯示,未免也太單調了些。在這一節中,我們將教你如何讓 Arduino UNO 讀取外部按鍵的狀態,然後變更 LED 的閃爍速度。

事前準備

  • Arduino UNO
  • 麵包板
  • 按鈕 x1
  • LED x5
  • 220歐姆電阻 x5

LED 控制

上一節我們只是讓 LED 在固定的時間內亮起、滅掉,或者是讓一整排的 LED 能夠個別點亮或滅掉,而當你要改變閃爍速度或亮滅順序的時候,你就必須要重新撰寫一次程式碼、編譯然後燒錄到 Arduino 中。

這樣的過程其實一點也不有趣,如果我們能夠靠按下一個或多個按鈕來讓閃爍速度改變或讓 LED 跑馬燈的順序改變,那應該會有去得多對吧?

這一節將告訴你,如何讓 Arduino 能夠讀取按鈕按下的動作,並且讓上述的功能實現!

閱讀全文〈Arduino Basic (3) – Click Click Click〉

Arduino Basic (2) – Hello World

Hello World

這部分我們開始進入正式的課程內容,首先從硬體版的 Hello World 開始。

事前準備

  • Arduino UNO
  • 麵包板
  • LED 若干

Arduino UNO

Arduino UNO 是 Arduino 系列中最常被拿來做實驗與開發的板子,它具有便宜、輕便、資源多、模組多等特色,因此非常建議作為 Arduino 的新手入門選擇。

Arduino UNO

閱讀全文〈Arduino Basic (2) – Hello World〉

Arduino Basic (1) – Wiring Framwork

Wiring Framwork

Arduino 所採用的是一個稱作 Wiring 的架構所設計的程式設計流程,他拿掉 main() 這個制式的主程式進入點,改由 setup() 以及 loop() 來取代。

據說這樣可以更容易理解整個程式的運作,並且提高可閱讀性。現在就讓我們一起來看看這是什麼樣的架構吧~

閱讀全文〈Arduino Basic (1) – Wiring Framwork〉

Beaglebone Black – 開啟 GPIO 上的 UART 接腳

UART Cape

Beaglebone Black 有 4.5 個 UART 接腳可供使用,但預設的情況下為關閉的狀態。也就是說,你無法透過這些腳位來正常的接收資料,就算你透過一些軟體的方式來強制運行,他還是會自動關閉連線狀態,導致連接不穩。為什麼我知道這些呢? 因為我最近在測試的時候發現有這樣的狀況,拜讀過 Google 大神的幾篇資料後才得以解決。這搞了我好幾天啊啊啊!

閱讀全文〈Beaglebone Black – 開啟 GPIO 上的 UART 接腳〉