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

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

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

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

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

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〉

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〉

三個非 Arduino 官方整合開發環境讓你當個更快樂的 Maker!

Arduino 是現在頗為流行的一個嵌入式系統開發板,但他官方提供的開發環境實在非常的「簡潔」,實在不是非常好用。除了缺少自動完成以及,還缺少了許多在程式開發上需要的資訊,例如語法檢查、錯誤提示、編譯資訊,最重要的是,官方給的有時還會莫名其妙卡死不動…(新版本似乎已解決卡死問題)

這些問題也有不少人注意到,他們透過自行開發的擴充功能或外掛,讓其他的整合式開發環境也能夠開發 Arduino,大大的加快了程式開發與撰寫的速度,同時也大大提升了爽度(重點)。

接下來要介紹的這些是我實際用過且想要推薦給你參考的三個非官方整合開發環境(IDE),比起官方給的,非官方所提供的功能非常多且完整很多。

閱讀全文〈三個非 Arduino 官方整合開發環境讓你當個更快樂的 Maker!〉

RF24 專屬於 nRF24L01 的程式函式庫。

nRF24L01

我在大學研究的專題可以說是自幹一個 Zigbee 的無線網路系統,我所採用無線傳輸模組是不在 IEEE 規範中的 2.4GHz 無線網路模組 nRF24L01,並且利用 Arduino 以及 Raspberry Pi 做雛形開發。很久之前還有為了它與 Launchpad 之間的通訊而寫過一篇文章。至於我專題的細節,改天再來說說。

閱讀全文〈RF24 專屬於 nRF24L01 的程式函式庫。〉

Arduino 之軟體 PWM

PWM 是 Pulse-width Modulation 的縮寫,即脈波寬度調整或稱頻寬調整,常用於電子式的電壓調整,例如燈光亮度、馬達控制、螢幕亮度…等等。 其原理是藉由調整脈波的工作週期(Duty cycle)並影響平均值(Average)來達到電壓的控制…我知道這聽起來很複雜,讓我用幾張圖來解釋給你看看吧!

前一陣子忙完一個比賽,忙到連文章一直都沒有去動手完成,仍然只是兩篇的草稿。所以想一窺 Widows 8 其他功能的讀者可能還得要等等了…

先讓我用最近開始接觸的 Arduino 來補補這中間的空白吧!

閱讀全文〈Arduino 之軟體 PWM〉