撰寫第一版時,筆者最初想法是從改造身邊的電子產品和玩具著手,搭配組裝電子零件來介紹Arduino的應用範例,然而,電子產品的款式眾多,很難做一般化的步驟說明,尤其在教學上,最好要有明確可依循操作的東西。現在很容易買到「Arduino相容」電子模組,像按鍵、距離感測器、LED顯示器…等,本書也盡量採用現成的模組,但為了避免書本淪落成「電子模組操作手冊」,筆者也說明了模組的電路及其運作原理,唯有如此,讀者才能自由整合不同的軟硬體,也不會受制於某些廠商的產品。
《超圖解Arduino互動設計入門》英文版:開箱!
2015年12月17日下午兩點,我跟旗標科技的黃昕暐先生一起到台北多航(Dog Hunter)公司,跟arduino.org創辦人Federico Musto先生會面。Musto先生提到,他們公司在美洲、歐洲和亞洲都有據點,總共有98位員工,Arduino Yún控制板是台北的Dog Hunter開發團隊的傑作。
VL53L0X飛時測距(ToF)感應器模組(二):Arduino與MicroPython測距程式
選擇Arduino IDE主功能表的「草稿碼→匯入程式庫→程式庫管理員」,在「程式庫管理員」中搜尋“VL53L0X ”關鍵字,即可找到相關程式庫,常見的兩個程式庫分別是Adafruit和Polohu公司開發的版本,這兩家公司都是美國的電子零組件供應商;本文採用Polohu的VL53L0X程式庫 ,因為Adafruit的版本佔用的快閃記憶體以及主記憶體都比較多。
VL53L0X飛時測距(ToF)感應器模組(一):硬體簡介
VL53L0X是意法半導體(STMicroelectronics,以下簡稱ST公司)開發的IC,內部整合雷射光發射元件以及紅外線矩陣接收器,並透過計算接收到的雷射光束折射時間求得距離,這種光學測距技術統稱飛時測距(Time of Flight,簡稱ToF),比超音波和紅外線距離感測器精確、快速而且體積迷你。
USB遊戲控制器(手把)DIY:使用Arduino Leonardo(李奧納多)控制板與Wii Classic經典手把
ATmega32u4微控器內建USB介面,採用此微控器的Arduino控制板,例如Leonardo(李奧納多)和Micro Pro,不需要USB序列通訊介面IC,即可連接電腦,而且還能用程式把控制板設置成滑鼠、鍵盤、遊戲控制器(手把)…等裝置。
一個74HC595連接多個七段顯示器
本文將示範用一個74HC595連接兩個7段顯示器,從00開始,每隔一秒加1顯示0~99。底下的電路圖改自《超圖解Arduino互動設計入門》動手做7-2,新增的七段顯示器與前一個並聯。
使用Arduino模擬器測試演算法(二):參數傳值(value)與傳址(reference)
左下圖的swap()自訂函式將接收x和y兩個整數型參數,呼叫此函式傳入並傳遞參數時,資料將被複製給函式參數,因而稱作傳值呼叫(call by value)。此自訂函式執行完畢,資料僅在其內部達成交換,x, y和temp也會被刪除,所以a和b變數值並未交換。
使用Arduino模擬器測試演算法(一):用Tinkercad搭建Arduino實驗電路並驗證程式邏輯
以工程繪圖、輔助設計製造和3D動畫軟體聞名的Autodesk(歐特克)公司,曾推出模擬電子電路並支援Arduino程式設計的123D Circuits (Circuits.io)網站。歐特克公司於2013年併購了線上3D造型設計軟體公司“Tinkercad”,然後在2017年把123D Circuits當中的“Electronics Lab”(電子實驗室)功能移到Tinkercad網站,circuits.io則更名為“library.io”,提供PCB印刷電路板設計和製造相關業務。
BBC micro:bit控制板的ARM Mbed嵌入式作業系統初探(一)
底下是micro:bit控制板的系統架構簡圖。為了進一步優化程式開發環境,英國Lancaster大學開發了一個相當於「中間人」的執行環境(runtime),無論是積木式程式或者JavaScript和MicroPython,都是在此執行環境上運作;此執行環境也叫做裝置抽象層(Device Abstraction Layer,簡稱DAL)。
使用ESP8266 ESP-01模組的USB轉接板燒錄Arduino程式或MicroPython韌體
這個轉接板包含5V轉3.3V降壓IC,以及CH340序列通訊轉換IC,方便透過USB供電給ESP8266 ESP-01模組。但若直接使用這個轉接板,在Arduino IDE中燒錄ESP8266程式,將出現如下的“espcomm_open failed”和“espcomm_upload_mem failed”錯誤。
使用Arduino開發BBC micro:bit(二):LED矩陣捲動文字與自訂圖像
自訂的點陣圖透過一個位元組類型(byte或寫成uint8_t)陣列定義,例如,底下的敘述定義一個名叫“invader”的圖像;由於每一列的顯示寬度是5像素,若用8位元資料定義,資料左邊的3個高位元將被忽略。
使用Arduino開發BBC micro:bit(一):環境設定
住在加拿大渥太華的程式設計師Sandeep Mistry開發了一個 “arduino-nRF5” 核心套件,讓人們得以用Arduino編寫micro:bit,和其他採用Nordic nRF51和nRF52系列晶片的微控制板的程式。如此,micro:bit也就納入Arduino平台,享用其豐富的軟硬體模組和程式庫資源。