(SKU:RB-01C030)CarDuino Leonardo

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索


Carduino Leonardo01.jpg

目錄

產(chǎn)品概述

Carduino Leonardo是一塊完全兼容Arduino Leonardo的基于開放源代碼的USB接口Simple I/O接口板(包括22通道數(shù)字GPIO,7通道PWM輸出,12通道10bit ADC輸入通道),并且具有使用類似Java、C語言的IDE集成開發(fā)環(huán)境。讓您可以快速使用Arduino語言與Flash或Processing等軟件,作出互動作品。

Carduino可以使用開發(fā)完成的電子元件例如Switch或sensors或其他控制器、LED、步進(jìn)馬達(dá)或其他輸出裝置。也可作為鍵盤、鼠標(biāo)等輸入裝置。Carduino Leonardo也可以獨立運作成為一個可以跟軟件溝的接口,例如說:Flash Processing Max/MSP VVVV 或其他互動軟件。Arduino開發(fā)IDE接口基于開放源代碼,可以讓您免費下載使用開發(fā)出更多令人驚艷的互動作品。

規(guī)格參數(shù)

1. 控制器: ATmega32u4
2. 工作頻率: 16 MHz
3. 工作電壓: 5V
4. 輸入電壓(推薦): 7-12V
5. 數(shù)字IO口: 22 (D0~D13,D14-MISO,D15-SCK,D16-MOSI,D18~23[A0~A5])
6. PWM通道: 7(D3,D5,D6,D9,D10,D11,D13)
7. 模擬輸入: 12(A0~A5,D4-A6,D6-A7,D8-A8,D9-A9,D10-A10,D12-A11)
8. 5V數(shù)字/模擬口最大允許電流: 40 mA
9. 3.3V 數(shù)字/模擬口最大允許電流: 50 mA
10. Flash Memory: 32 KB (ATmega32u4) of which 4 KB used by bootloader
11. SRAM: 2.5 KB (ATmega32u4)
12. EEPROM: 1 KB (ATmega32u4)

使用方法

驅(qū)動安裝

1.軟件下載
請下載arduino1.01或以上版本
官方軟件下載地址:http://arduino.cc/en/Main/Software
2.軟件及硬件驅(qū)動安裝
此軟件是綠色版,軟件解壓縮后即可使用。
解壓軟件下載地址:
http://jaist.dl.sourceforge.net/project/sevenzip/7-Zip/9.20/7z920.exe
軟件解壓完成后,接下來要安裝CrduinoLeonardo硬件驅(qū)動。
將Crduino Leonardo上的方頭MiNi USB連接好之后,另外一端的USB連接到計算機任意一個USB接口。

Carduino Leonardo02.jpg

接下來系統(tǒng)就會出現(xiàn)Arduino Leonardo的Windows Update驅(qū)動程序安裝畫面。

Carduino Leonardo03.jpg

不過目前在Windows Update中還無法找到驅(qū)動程序。

Carduino Leonardo04.jpg

這時需要我們手動安裝驅(qū)動,打開“控制面板”下的“設(shè)備管理器”

Carduino Leonardo05.jpg

這時在其他設(shè)備里會出現(xiàn)一個帶有嘆號的Arduino Leonardo設(shè)備。在上圖標(biāo)上點擊右鍵選擇“更新驅(qū)動程序軟件”

Carduino Leonardo06.jpg

在“您想如何搜索驅(qū)動程序軟件”中選擇“瀏覽計算機以查找驅(qū)動程序軟件”

Carduino Leonardo07.jpg

然后選擇你Arduino IDE軟件解壓到盤符找到Drivers文件夾點擊下一步

Carduino Leonardo08.jpg

這時會出現(xiàn)Windows無法驗證此驅(qū)動程序軟件發(fā)布者警告

Carduino Leonardo09.jpg
Carduino Leonardo10.jpg

安裝完成后在“端口(COM和LPT)”下回生成一個新的端口我這里生成的是COM3

Carduino Leonardo11.jpg

軟件使用說明

打開軟件只需雙擊執(zhí)行arduino.exe執(zhí)行文件,就可以看到如下程序編譯窗口。從Arduino1.0開始已經(jīng)支持中文界面了。具體修改方法電機“文件”-“參數(shù)設(shè)置”下。

Carduino Leonardo12.jpg

在輸入程序前需要先選擇板號和COM口,COM口號就是我們剛才驅(qū)動上的COM3。在“工具”-“Serial Port”下選擇。

Carduino Leonardo13.jpg

然后選擇版型位置在“工具”-“Board:”-“Arduino Leonardo”。

Carduino Leonardo14.jpg

基本設(shè)置完畢就可以編寫程序了。首先我們打開一個閃燈的例程。位置在“文件”-“示例”-“01.Basic”-“Blink”。

Carduino Leonardo15.jpg

點擊(圖)可以將程序進(jìn)行編譯,檢查是否有語法錯誤。點擊(圖)可以將程序下載到CarduinoLeonardo中。下載成功會在狀態(tài)窗格顯示“下載完畢”

Carduino Leonardo16.jpg

這時會發(fā)現(xiàn)Carduino Leonardo一秒亮滅交替閃爍。
若需要進(jìn)行與Arduino串口通信點擊通信監(jiān)視窗口(圖),可以看到如下對話框。

Carduino Leonardo17.jpg

Arduino基本語言概述

Arduino使用起來要比其他微處理器更易懂,與Basic Stamp有些相似,Arduino的編程語言更為簡單和人性化,Arduino編程語言基于C語言,但其實用性要遠(yuǎn)高于C語言,主要由于它將一些常用語句組合函數(shù)化,例如:延時函數(shù)delay(1000)即為一秒。

Arduino程序基本架構(gòu)

(1)聲明變量及接口名稱(int val; int ledPin=13;)。
(2)setup()——函數(shù)在程序開始時使用,可以初始化變量、接口模式、啟用庫等(例如:pinMode(ledPin,OUTUPT);)。
(3)loop()——在setup()函數(shù)之后,即初始化之后,loop() 讓你的程序循環(huán)地被執(zhí)行,使用它來運轉(zhuǎn)Arduino。

Arduino常用編程語言

(1)pinMode(接口名稱,OUTPUT或INPUT)將——接口定義為輸入或輸出接口,用在setup()函數(shù)里。
(2)digitalWrite(接口名稱,HIGH或LOW)——將數(shù)字接口值至高或低。
(3)digitalRead(接口名稱)——讀出數(shù)字接口的值。
(4)analogWrite(接口名稱, 數(shù)值)——給一個接口寫入模擬值(PWM波)。對于ATmega168芯片的Arduino(包括Mini或BT),該函數(shù)可以工作于 3,5,6,9,10和 11號接口。老版的 ATmega8芯片的USB和 serial Arduino僅僅支持 9,10和11號接口。
(5)analogRead(接口名稱)——從指定的模擬接口讀取值,Arduino對該模擬值進(jìn)行10-bit的數(shù)字轉(zhuǎn)換,這個方法將輸入的0-5電壓值轉(zhuǎn)換為 0到1023間的整數(shù)值。
(6)delay()——延時一段時間,delay(1000)為一秒。
(7)Serial.begin(波特率)——設(shè)置串行每秒傳輸數(shù)據(jù)的速率(波特率)。在同計算機通訊時,使用下面這些值:300,1200,2400,4800,9600,14400,19200,28800,38400,57600或 115200。你也可以在任何時候使用其它的值,比如,與0號或1號插口通信就要求特殊的波特率。用在setup()函數(shù)里
(8)Serial.read()——讀取持續(xù)輸入的數(shù)據(jù)。
(9)Serial.print(數(shù)據(jù),數(shù)據(jù)的進(jìn)制)——從串行端口輸出數(shù)據(jù)。Serial.print(數(shù)據(jù))默認(rèn)為十進(jìn)制等于Serial.print(數(shù)據(jù),DEC)。
(10)Serial.println(數(shù)據(jù),數(shù)據(jù)的進(jìn)制)——從串行端口輸出數(shù)據(jù),跟隨一個回車和一個換行符。這個函數(shù)所取得的值與 Serial.print()一樣。

例子程序

使用Carduino Leonardo鼠標(biāo)應(yīng)用

使用硬件

實驗連接圖

將傳感器擴(kuò)展板插到Carduino Leonardo上,用3PIN數(shù)據(jù)線將按鍵接到數(shù)字2口上作為啟動和關(guān)閉鼠標(biāo)的功能鍵,將Joystick上B(Button)接到數(shù)字3口上,X(X軸)接到模擬0口,Y(Y軸)接到模擬1口。

Carduino Leonardo24.jpg

例子程序

const int switchPin = 2; // switch to turn on and off mouse control 
const int mouseButton = 3; // input pin for the mouse pushButton 
const int xAxis = A0; // joystick X axis 
const int yAxis = A1; // joystick Y axis 
const int ledPin = 5; // Mouse control LED 
// parameters for reading the joystick: 
int range = 12; // output range of X or Y movement 
int responseDelay = 5; // response delay of the mouse, in ms 
int threshold = range/4; // resting threshold 
int center = range/2; // resting position value 
boolean mouseIsActive = false; // whether or not to control the mouse 
int lastSwitchState = LOW; // previous switch state 
void setup() { 
pinMode(switchPin, INPUT); // the switch pin 
pinMode(ledPin, OUTPUT); // the LED pin 
// take control of the mouse: 
Mouse.begin(); 
} 
void loop() { 
// read the switch: 
int switchState = digitalRead(switchPin); 
// if it's changed and it's high, toggle the mouse state: 
if (switchState != lastSwitchState) { 
if (switchState == HIGH) { 
mouseIsActive = !mouseIsActive; 
// turn on LED to indicate mouse state: 
digitalWrite(ledPin, mouseIsActive); 
} 
} 
lastSwitchState = switchState;// save switch state for next comparison: 
// read and scale the two axes: 
int xReading = readAxis(A0); 
int yReading = readAxis(A1); 
// if the mouse control state is active, move the mouse: 
if (mouseIsActive) { 
Mouse.move(xReading, yReading, 0); 
} 
// read the mouse button and click or not click: 
// if the mouse button is pressed: 
if (digitalRead(mouseButton) == HIGH) { 
// if the mouse is not pressed, press it: 
if (!Mouse.isPressed(MOUSE_LEFT)) { 
Mouse.press(MOUSE_LEFT); 
} 
} 
// else the mouse button is not pressed: 
else { 
// if the mouse is pressed, release it: 
if (Mouse.isPressed(MOUSE_LEFT)) { 
Mouse.release(MOUSE_LEFT); 
} 
} 
delay(responseDelay); 
} 
int readAxis(int thisAxis) { 
// read the analog input: 
int reading = analogRead(thisAxis); 
// map the reading from the analog input range to the output range: 
reading = map(reading, 0, 1023, 0, range); 
// if the output reading is outside from the 
// rest position threshold, use it: 
int distance = reading - center; 
if (abs(distance) < threshold) { 
distance = 0; 
} 
return distance;// return the distance for this axis 
} 

產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品購買地址

Carduino Leonardo 萊昂納多控制器

周邊產(chǎn)品推薦

Mini USB數(shù)據(jù)線
Arduino leonardo原裝進(jìn)口

相關(guān)問題解答

leonardo找不到端口
Arduino UNO和Leonardo的區(qū)別

相關(guān)學(xué)習(xí)資料

Arduino leonardo 電路圖 Eagle 設(shè)計參考文件
Arduino leonardo 電路原理圖 PDF 文件
Arduino leonardo 官網(wǎng)介紹(英文版)
ATmega32U4 芯片資料
奧松機器人技術(shù)論壇