Arduino是一款簡單易學(xué)的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。它通過各種各樣的傳感器來感知環(huán)境,再通過控制燈光、電機(jī)和其他的裝置來完成很多自動(dòng)控制任務(wù),在創(chuàng)客里非常受歡迎。
1. 硬件
Arduino有多個(gè)型號,標(biāo)準(zhǔn)版uno,小型nano,大型mega 2560。
uno電路板各部分介紹
2. 軟件
Arduino的編程語言是建立在C/C++基礎(chǔ)上的,它通過封裝好的API,使得程序中的語句更容易被理解,不用理會(huì)單片機(jī)中繁雜的寄存器配置,就能直觀的控制Arduino,增強(qiáng)程序的可讀性的同時(shí),也提高了開發(fā)效率。
Arduino程序基本結(jié)構(gòu)由setup() 和loop() 兩個(gè)函數(shù)組成。
1) setup()
Arduino控制器通電或復(fù)位后,即會(huì)開始執(zhí)行setup() 函數(shù)中的程序,該部分只會(huì)執(zhí)行一次。通常在setup() 函數(shù)中完成Arduino的初始化設(shè)置,如配置I/O口狀態(tài),初始化串口等操作。
2) loop()
在setup() 函數(shù)中的程序執(zhí)行完后,Arduino會(huì)接著執(zhí)行l(wèi)oop() 函數(shù)中的程序。loop()函數(shù)是一個(gè)死循環(huán),其中的程序會(huì)不斷的重復(fù)運(yùn)行。通常在loop() 函數(shù)中完成程序的主要功能,如驅(qū)動(dòng)各種模塊,采集數(shù)據(jù)等。
Arduino IDE是官方提供的編程環(huán)境,編寫代碼,上傳到arduino。支持windows, linux, mac。官網(wǎng)下載 www.arduino.cc/en/software
此外,還有一些圖形化編程環(huán)境,如米思齊mixly,通過拖拽積木塊的形式編程,界面對初學(xué)者更友好。mixly.org/
3. 示例程序
Arduino IDE自帶了很多示例程序,是很好的入門材料。例如01.Basics里的Blink,使用板載的13引腳LED,交替亮滅。
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
4. 編譯上傳
1)編譯代碼:項(xiàng)目->編譯/驗(yàn)證,或工具欄第1個(gè)按鈕(✓)。
通過編譯檢查代碼是否正確,如有錯(cuò)誤根據(jù)IDE底部的消息修改代碼。編譯通過的代碼才可以上傳到arduino板。
2)選擇開發(fā)版類型:工具->開發(fā)板(以Arduino Nano為例)
3)選擇處理器:工具->處理器
Uno只有一種處理器不需要選,Nano處理器有2個(gè)版本,新的選ATmega328P,舊的選ATmega328P (old bootloader)。
如果上傳失敗,提示"avrdude: stk500_recv(): programmer is not responding",一般都是處理器版本不對,切換成另一個(gè)試試。
4)指定端口
如不清楚是哪個(gè),到設(shè)備管理器里查看。進(jìn)口原裝板的驅(qū)動(dòng)在安裝IDE時(shí)就裝了,國產(chǎn)兼容板使用CH340串口芯片,需要單獨(dú)安裝驅(qū)動(dòng)。
www.wch.cn/downloads/CH341SER_EXE.html

5) 上傳程序:項(xiàng)目->上傳,或工具欄第2個(gè)按鈕(->)。
上傳成功,底部狀態(tài)欄會(huì)提示,代碼就開始在arduino板上運(yùn)行了。
5. 其他
- 控制電機(jī),PWM調(diào)速,常用在智能車上
- 控制舵機(jī),實(shí)現(xiàn)角度控制,常用在機(jī)器人/機(jī)械臂上
- 一些有意思的項(xiàng)目,如OTTO跳舞機(jī)器人 www.ottodiy.com/