“(SKU:RB-01C030)CarDuino Leonardo”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
第166行: 第166行:
 
}  
 
}  
 
</pre>
 
</pre>
 +
==产品相关推荐==
 +
购买地址:[http://www.alsrobot.cn/goods-114.html Carduino Leonardo 莱昂纳多控制器]

2015年6月4日 (四) 11:08的版本


Carduino Leonardo01.jpg

目录

产品介绍

Carduino Leonardo是一块完全兼容Arduino Leonardo的基于开放源代码的USB接口Simple I/O接口板(包括22通道数字GPIO,7通道PWM输出,12通道10bit ADC输入通道),并且具有使用类似Java、C语言的IDE集成开发环境。让您可以快速使用Arduino语言与Flash或Processing等软件,作出互动作品。

Carduino可以使用开发完成的电子元件例如Switch或sensors或其他控制器、LED、步进马达或其他输出装置。也可作为键盘、鼠标等输入装置。Carduino Leonardo也可以独立运作成为一个可以跟软件沟的接口,例如说:Flash Processing Max/MSP VVVV 或其他互动软件。Arduino开发IDE接口基于开放源代码,可以让您免费下载使用开发出更多令人惊艳的互动作品。

Arduino基本技术参数

1. 控制器: ATmega32u4
2. 工作频率: 16 MHz
3. 工作电压: 5V
4. 输入电压(推荐): 7-12V
5. 数字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数字/模拟口最大允许电流: 40 mA
9. 3.3V 数字/模拟口最大允许电流: 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)

Arduino下载软件及开发环境

1,软件下载
请下载arduino1.01或以上版本
官方软件下载地址:http://arduino.cc/en/Main/Software
2,软件及硬件驱动安装
此软件是绿色版,软件解压缩后即可使用。
解压软件下载地址:
http://jaist.dl.sourceforge.net/project/sevenzip/7-Zip/9.20/7z920.exe
软件解压完成后,接下来要安装CrduinoLeonardo硬件驱动。
将Crduino Leonardo上的方头MiNi USB连接好之后,另外一端的USB连接到计算机任意一个USB接口。

Carduino Leonardo02.jpg

接下来系统就会出现Arduino Leonardo的Windows Update驱动程序安装画面。

Carduino Leonardo03.jpg

不过目前在Windows Update中还无法找到驱动程序。

Carduino Leonardo04.jpg

这时需要我们手动安装驱动,打开“控制面板”下的“设备管理器”

Carduino Leonardo05.jpg

这时在其他设备里会出现一个带有叹号的Arduino Leonardo设备。在上图标上点击右键选择“更新驱动程序软件”

Carduino Leonardo06.jpg

在“您想如何搜索驱动程序软件”中选择“浏览计算机以查找驱动程序软件”

Carduino Leonardo07.jpg

然后选择你Arduino IDE软件解压到盘符找到Drivers文件夹点击下一步

Carduino Leonardo08.jpg

这时会出现Windows无法验证此驱动程序软件发布者警告

Carduino Leonardo09.jpg
Carduino Leonardo10.jpg

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

Carduino Leonardo11.jpg

3,Arduino编译下载软件使用说明 打开软件只需双击执行arduino.exe执行文件,就可以看到如下程序编译窗口。从Arduino1.0开始已经支持中文界面了。具体修改方法电机“文件”-“参数设置”下。

Carduino Leonardo12.jpg

在输入程序前需要先选择板号和COM口,COM口号就是我们刚才驱动上的COM3。在“工具”-“Serial Port”下选择。

Carduino Leonardo13.jpg

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

Carduino Leonardo14.jpg

基本设置完毕就可以编写程序了。首先我们打开一个闪灯的例程。位置在“文件”-“示例”-“01.Basic”-“Blink”。

Carduino Leonardo15.jpg

点击(图)可以将程序进行编译,检查是否有语法错误。点击(图)可以将程序下载到CarduinoLeonardo中。下载成功会在状态窗格显示“下载完毕”

Carduino Leonardo16.jpg

这时会发现Carduino Leonardo一秒亮灭交替闪烁。
若需要进行与Arduino串口通信点击通信监视窗口(图),可以看到如下对话框。

Carduino Leonardo17.jpg

Arduino基本语言概述

Arduino使用起来要比其他微处理器更易懂,与Basic Stamp有些相似,Arduino的编程语言更为简单和人性化,Arduino编程语言基于C语言,但其实用性要远高于C语言,主要由于它将一些常用语句组合函数化,例如:延时函数delay(1000)即为一秒。

Arduino程序基本架构

(1)声明变量及接口名称(int val; int ledPin=13;)。
(2)setup()——函数在程序开始时使用,可以初始化变量、接口模式、启用库等(例如:pinMode(ledPin,OUTUPT);)。
(3)loop()——在setup()函数之后,即初始化之后,loop() 让你的程序循环地被执行,使用它来运转Arduino。

Arduino常用编程语言

(1)pinMode(接口名称,OUTPUT或INPUT)将——接口定义为输入或输出接口,用在setup()函数里。
(2)digitalWrite(接口名称,HIGH或LOW)——将数字接口值至高或低。
(3)digitalRead(接口名称)——读出数字接口的值。
(4)analogWrite(接口名称, 数值)——给一个接口写入模拟值(PWM波)。对于ATmega168芯片的Arduino(包括Mini或BT),该函数可以工作于 3,5,6,9,10和 11号接口。老版的 ATmega8芯片的USB和 serial Arduino仅仅支持 9,10和11号接口。
(5)analogRead(接口名称)——从指定的模拟接口读取值,Arduino对该模拟值进行10-bit的数字转换,这个方法将输入的0-5电压值转换为 0到1023间的整数值。
(6)delay()——延时一段时间,delay(1000)为一秒。
(7)Serial.begin(波特率)——设置串行每秒传输数据的速率(波特率)。在同计算机通讯时,使用下面这些值:300,1200,2400,4800,9600,14400,19200,28800,38400,57600或 115200。你也可以在任何时候使用其它的值,比如,与0号或1号插口通信就要求特殊的波特率。用在setup()函数里
(8)Serial.read()——读取持续输入的数据。
(9)Serial.print(数据,数据的进制)——从串行端口输出数据。Serial.print(数据)默认为十进制等于Serial.print(数据,DEC)。
(10)Serial.println(数据,数据的进制)——从串行端口输出数据,跟随一个回车和一个换行符。这个函数所取得的值与 Serial.print()一样。

使用Carduino Leonardo鼠标应用

1、需要的器材:
1) Arduino传感器扩展板

Carduino Leonardo18.jpg

接口示意图如下:

Carduino Leonardo19.jpg

2)按压式大按钮模块

Carduino Leonardo20.jpg

3)双轴按键摇杆

Carduino Leonardo21.jpg

4) 3PIN传感器连接线
两条3PIN传感器连接线

Carduino Leonardo22.jpg

5)杜邦线
两条杜邦线

Carduino Leonardo23.jpg

2,硬件连接:
将传感器扩展板插到Carduino Leonardo上,用3PIN数据线将按键接到数字2口上作为启动和关闭鼠标的功能键,将Joystick上B(Button)接到数字3口上,X(X轴)接到模拟0口,Y(Y轴)接到模拟1口。

Carduino Leonardo24.jpg

3,例程源代码:

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 
} 

产品相关推荐

购买地址:Carduino Leonardo 莱昂纳多控制器