Arduino Basic (2) – Hello World

Hello World

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

事前準備

  • Arduino UNO
  • 麵包板
  • LED 若干

Arduino UNO

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

Arduino UNO

核心晶片為 ATmega328p,其細節規格如下表:

項目 規格
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
PWM Digital I/O Pins 6
Analog Input Pins 6
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328P)of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
Length 68.6 mm
Width 53.4 mm
Weight 25 g

話說我每次看到這規格,都會對那 32KB 的 Flash Memory 大為驚嘆啊!

接下來我們進入這次文章的正題,Hello, World!

點亮 LED

嵌入式系統的 Hello World 通常都是用 LED 來做,這有兩個意義,第一是證明程式能夠執行,第二是測試嵌入式系統的晶片是否正常。看似無聊,涵義卻如此之深的 LED。

程式碼

如果板子上的 LED 不會亮,有可能是你沒燒錄成功,也有可能是板子損毀,但通常都是程式沒燒好或者是燒錄出問題。

LED 閃爍

在這個範例中我們嘗試讓 LED 閃爍起來,大約每秒鐘會閃爍一次。

程式碼

LED 閃爍之二

慢慢地閃看起來很無聊對吧? 我們來點有趣的。如同警示燈一樣,閃兩下便停一段時間,然後再繼續閃。

程式碼

如果你是初次接觸程式語言,看到 for 迴圈不是很了解是什麼的話,你可以參考這篇文章:程式設計迴圈之章,for。

這星期的內容就到此結束,是否覺得只控制一顆 LED 很無聊呢? 下一回我們將控制更多的 LED,嘗試更多的變化。

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 接腳"

如何設定 Beaglebone Black 透過 USB 的網路連線?

Beaglebone Black

不久之前我曾經在 FaceBook 的粉絲頁中貼過 Beaglebone Black 這個類似於 Raspberry Pi 單板電腦的電子書,然而,我在 Single.9 中幾乎沒有寫過他的介紹文章,主要更新都在那本電子書比較多。

Beaglebone Black 有一個相當方便的特色,除了他隨機附上的作業系統外,他與電腦之間的聯繫也非常簡單只要透過一條 USB 線就可以連上 Beaglebone Black ,並且開始操作與使用他。

這有點類似於手機的 USB 網路分享功能,只不過在未設定的情況下只限於 Beaglebone Black 與 PC 之間的聯繫,而無法連上其他外部網站。

這篇文章正是要教你如何讓 Beaglebone Black 可以連上其他網站。

繼續閱讀 “如何設定 Beaglebone Black 透過 USB 的網路連線?"

mbed 基礎教學實驗 – 藍芽模組

藍芽是目前非常普遍的一種無線通訊技術,在許多資訊設備都能找到他的蹤影,而目前幾乎所有的智慧型裝置以及筆記型電腦都有配備這樣的無線通訊設備,這對於許多無線控制的應用是一個非常友善的環境。

本篇文章將會為各位介紹 mbed LPC1768 如何使用藍芽模組來與電腦通訊。

繼續閱讀 “mbed 基礎教學實驗 – 藍芽模組"

mbed 基礎教學實驗 – UART / RS232

mbed 基礎教學實驗 UART RS232

UART 是一種常見的有線通訊方式,幾乎所有的電腦相關設備都支援這個通訊方式,他透過最少三條訊號線:發射、接收、地線,來進行設備之間的資料交換與通訊。或許你對 UART 這名稱較不熟悉,他還有另一個名稱:RS232 串列通訊。

繼續閱讀 “mbed 基礎教學實驗 – UART / RS232″

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

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

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

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

繼續閱讀 “三個非 Arduino 官方整合開發環境讓你當個更快樂的 Maker!"