1、说明
Keyes Voice ARM控制板 V1.0是一款基于ATMEGA328微控制器的控制板,它上传的固件为UNO R3固件。为方便使用,扩展板自带一根60cm的黑色的mini USB线。使用时,控制板上mini USB接口连接mini USB线,既可以用于可控制板供电,又可以用于烧录测试代码。控制板上的POWER-1、POWER-2接口只用作DC 5V电源供电,提供大电流。并且控制板上自带一个复位按键;一个拨码开关,用于控制电源开关。
为方便外接其他传感器模块,控制板用间距为2.54mm的排针将一些常用的接口引出,如串口通信接口、I2C通信接口等。利用间距为2.54mm的白色接口,用于连接激光设备(5V),由D13控制。
同时,为了方便控制板进行扩展板实验,扩展板板上还自带有各种传感器等元件。如控制板自带4个SK6812-P4 RGB灯(D2控制),1个有源蜂鸣器(D3控制)。1个红外接收头(D4控制),2个光敏电阻元件(连接A6 A7),2个遥感元件(连接A0 A1 D7 A2 A3 D8)。
2、开发板参数
Micro USB输入:DC5V 1-2A
主芯片:MEGA 328P
串口芯片:CH340G
主芯片固件:UNO R3固件
Flash Memory:32 KB (ATmega328P-PU) of which 0.5 KB used by bootloader
SRAM:2 KB (ATmega328P-PU)
EEPROM:1 KB (ATmega328P-PU)
Clock Speed:16 MHz
尺寸:94.2*60mm
环保属性:ROHS
3、相关接口说明
4、使用环境说明
4.1 Arduino介绍
什么是 Arduino?
Arduino是一款便捷灵活、方便上手的开源电子原型平台。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
4.2 Arduino IDE安装方法
https://www.arduino.cc/en/Main/OldSoftwareReleases#1.5.x
点击下载arduino-1.5.6-r2-windows.zip文件,解压到文件夹。
双击Arduino-1.5.6 .exe,点击“I agree”。
点击“Next”。
然后点击“Install”。
等待安装成功, 然后点击close。
安装成功显示如下图。
4.3 Arduino driver驱动安装方法
下面我们开始安装Arduino的驱动。
这个开发板的USB转串口芯片为CH340G,在有些电脑系统可以自动安装驱动程序,即将开发板连接到电脑上电脑右下角 有图标就代表在自动安装驱动。安装成功后, 右键点击 “计算机” —>“属性”—> “设备管理器”, 即可以看到对应的COM口。
我们还可以通过驱动精灵软件,对产品进行驱动安装,点击打开驱动精灵,点击驱动管理,即可看到CH340G的驱动,点击安装即可,安装成功后,使用上述方法进入设备管理器,即可以看到对应的COM口。
假如没有安装驱动精灵,需要安装这芯片的驱动,我们提供对应驱动,驱动为usb_ch341_3.1.2009.06,把该驱动放到D盘,然后开始安装驱动。在不同系统在安装驱动方式大同小异,这里我们在win7系统上开始安装驱动。
我们将开发板利用USB线连接到电脑, 右键点击 “计算机” —>“属性”—> “设备管理器”, 你可以看到 “USB2.0-Serial”.
点击 “USB2.0-Serial”, 选择 “更新驱动程序软件”.
在这页面, 点击 “浏览计算机以查找驱动程序软件”.
在D盘找到对应驱动,然后点击下一步.
驱动安装成功,点击 “关闭”。
驱动安装成功,我们就可以在设备管理器中看到对应的COM口。
测试代码
#include <IRremote.h>
#include <Adafruit_NeoPixel.h>
#define PIN 2
Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, PIN, NEO_GRB + NEO_KHZ800);
int RECV_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
//////////////////////////////////////////////////////////////////////////
void IRrecv_()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
//////////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
pinMode(3,OUTPUT);
}
//////////////////////////////////////////////////////////////////////////
void loop() {
if (irrecv.decode(&results))
{
irrecv.resume(); // Receive the next value
Serial.println(results.value, HEX);
}
if(results.value==0xFF30CF) //1
{
Serial.println(“RGB test:”);
colorWipe(strip.Color(127, 127, 127), 1000); // White
colorWipe(strip.Color(0, 0, 0), 500); // Clear
}
if(results.value==0xFF18E7) //2
{
Serial.println(“buzzer test:”);
digitalWrite(3,HIGH);
}
if(results.value!=0xFF18E7)
digitalWrite(3,LOW);
if(results.value==0xFF7A85) //3
{
Serial.println(“Laser test:”);
digitalWrite(13,HIGH);
}
if(results.value!=0xFF7A85)
digitalWrite(13,LOW);
if(results.value==0xFF10EF) //4
{
Serial.println(“CDS test:”);
Serial.print(“CDS1:”);
Serial.println(analogRead(A6));
Serial.print(“CDS2:”);
Serial.println(analogRead(A7));
}
if(results.value==0xFF38C7) //5
{
Serial.println(“JY test:”);
Serial.print(“JY1 X:”);
Serial.print(analogRead(A1));
Serial.print(” JY1 Y:”);
Serial.print(analogRead(A0));
Serial.print(” JY1 Z:”);
Serial.println(digitalRead(7));
Serial.print(“JY2 X:”);
Serial.print(analogRead(A3));
Serial.print(” JY2 Y:”);
Serial.print(analogRead(A2));
Serial.print(” JY3 Z:”);
Serial.println(digitalRead(8));
}
delay(500);
}
//////////////////////////////////////////////////////////////////////////
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait)
{
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
//////////////////////////////////////////////////////////////////////////
//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
for (int j=0; j<10; j++) { //do 10 cycles of chasing
for (int q=0; q < 3; q++) {
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, c); //turn every third pixel on
}
strip.show();
delay(wait);
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0); //turn every third pixel off
}
}
}
}
注意
1.在打开Arduino IDE上传代码前,要把Adafruit_NeoPixel文件夹和
Arduino_IRremote放到 编译器安装目录下的\Arduino\libraries里。不然编译不过。
例如我的:C:\Program Files (x86)\Arduino\libraries
2.在Arduino IDE上传代码前,需设置板为Arduino Uno和COM口(根据设备管理器中显示)。
3.上传代码成功后,测试时需要用到红外遥控。实验中我们用到的红外遥控产品链接为:
https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-441584794.25.4cab29bcECOIGv&id=13724448755
6、测试结果
上传前面测试代码成功后,利用mini USB线连接到电脑,拨码开关拨到ON,上电。打开串口监视器,设置波特率为9600。
红外遥控对照红外接收头按下1键,控制板上4个RGB灯类似流水灯循环亮白灯,串口监视器显示如下。
测试遥控图案
红外遥控对照红外接收头按下2键,控制板上有源蜂鸣器响起,串口监视器显示如下。
红外遥控对照红外接收头按下3键,控制板上有源蜂鸣器关闭,如果外接激光设备(5V驱动),激光设备发射对应激光,串口监视器显示如下。
红外遥控对照红外接收头按下4键,控制板上如果外接激光设备(5V驱动),激光设备关闭对应激光;串口监视器显示两个光敏电阻测试的对应光照的模拟值,光线越暗,数值越大。
红外遥控对照红外接收头按下5键,串口监视器显示两个摇杆对应位置的数值,分别代表两个摇杆X Y Z轴位置数值;X Y轴,对应两个模拟值,Z轴对应数字值,按下Z轴按键时,显示0,;如下图。
7、相关资料下载链接
https://pan.baidu.com/s/1W6OWPXwazYUSLeRLEbH32g
提取码为:oahy
Keyes Voice ARM控制板 V1.0
1、说明
Keyes Voice ARM控制板 V1.0是一款基于ATMEGA328微控制器的控制板,它上传的固件为UNO R3固件。为方便使用,扩展板自带一根60cm的黑色的mini USB线。使用时,控制板上mini USB接口连接mini USB线,既可以用于可控制板供电,又可以用于烧录测试代码。控制板上的POWER-1、POWER-2接口只用作DC 5V电源供电,提供大电流。并且控制板上自带一个复位按键;一个拨码开关,用于控制电源开关。
为方便外接其他传感器模块,控制板用间距为2.54mm的排针将一些常用的接口引出,如串口通信接口、I2C通信接口等。利用间距为2.54mm的白色接口,用于连接激光设备(5V),由D13控制。
同时,为了方便控制板进行扩展板实验,扩展板板上还自带有各种传感器等元件。如控制板自带4个SK6812-P4 RGB灯(D2控制),1个有源蜂鸣器(D3控制)。1个红外接收头(D4控制),2个光敏电阻元件(连接A6 A7),2个遥感元件(连接A0 A1 D7 A2 A3 D8)。
2、开发板参数
Micro USB输入:DC5V 1-2A
主芯片:MEGA 328P
串口芯片:CH340G
主芯片固件:UNO R3固件
Flash Memory:32 KB (ATmega328P-PU) of which 0.5 KB used by bootloader
SRAM:2 KB (ATmega328P-PU)
EEPROM:1 KB (ATmega328P-PU)
Clock Speed:16 MHz
尺寸:94.2*60mm
环保属性:ROHS
3、相关接口说明
4、使用环境说明
4.1 Arduino介绍
什么是 Arduino?
Arduino是一款便捷灵活、方便上手的开源电子原型平台。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
4.2 Arduino IDE安装方法
https://www.arduino.cc/en/Main/OldSoftwareReleases#1.5.x
点击下载arduino-1.5.6-r2-windows.zip文件,解压到文件夹。
双击Arduino-1.5.6 .exe,点击“I agree”。
点击“Next”。
然后点击“Install”。
等待安装成功, 然后点击close。
安装成功显示如下图。
4.3 Arduino driver驱动安装方法
下面我们开始安装Arduino的驱动。
这个开发板的USB转串口芯片为CH340G,在有些电脑系统可以自动安装驱动程序,即将开发板连接到电脑上电脑右下角 有图标就代表在自动安装驱动。安装成功后, 右键点击 “计算机” —>“属性”—> “设备管理器”, 即可以看到对应的COM口。
我们还可以通过驱动精灵软件,对产品进行驱动安装,点击打开驱动精灵,点击驱动管理,即可看到CH340G的驱动,点击安装即可,安装成功后,使用上述方法进入设备管理器,即可以看到对应的COM口。
假如没有安装驱动精灵,需要安装这芯片的驱动,我们提供对应驱动,驱动为usb_ch341_3.1.2009.06,把该驱动放到D盘,然后开始安装驱动。在不同系统在安装驱动方式大同小异,这里我们在win7系统上开始安装驱动。
我们将开发板利用USB线连接到电脑, 右键点击 “计算机” —>“属性”—> “设备管理器”, 你可以看到 “USB2.0-Serial”.
点击 “USB2.0-Serial”, 选择 “更新驱动程序软件”.
在这页面, 点击 “浏览计算机以查找驱动程序软件”.
在D盘找到对应驱动,然后点击下一步.
驱动安装成功,点击 “关闭”。
驱动安装成功,我们就可以在设备管理器中看到对应的COM口。
测试代码
#include <IRremote.h>
#include <Adafruit_NeoPixel.h>
#define PIN 2
Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, PIN, NEO_GRB + NEO_KHZ800);
int RECV_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
//////////////////////////////////////////////////////////////////////////
void IRrecv_()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
//////////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
pinMode(3,OUTPUT);
}
//////////////////////////////////////////////////////////////////////////
void loop() {
if (irrecv.decode(&results))
{
irrecv.resume(); // Receive the next value
Serial.println(results.value, HEX);
}
if(results.value==0xFF30CF) //1
{
Serial.println(“RGB test:”);
colorWipe(strip.Color(127, 127, 127), 1000); // White
colorWipe(strip.Color(0, 0, 0), 500); // Clear
}
if(results.value==0xFF18E7) //2
{
Serial.println(“buzzer test:”);
digitalWrite(3,HIGH);
}
if(results.value!=0xFF18E7)
digitalWrite(3,LOW);
if(results.value==0xFF7A85) //3
{
Serial.println(“Laser test:”);
digitalWrite(13,HIGH);
}
if(results.value!=0xFF7A85)
digitalWrite(13,LOW);
if(results.value==0xFF10EF) //4
{
Serial.println(“CDS test:”);
Serial.print(“CDS1:”);
Serial.println(analogRead(A6));
Serial.print(“CDS2:”);
Serial.println(analogRead(A7));
}
if(results.value==0xFF38C7) //5
{
Serial.println(“JY test:”);
Serial.print(“JY1 X:”);
Serial.print(analogRead(A1));
Serial.print(” JY1 Y:”);
Serial.print(analogRead(A0));
Serial.print(” JY1 Z:”);
Serial.println(digitalRead(7));
Serial.print(“JY2 X:”);
Serial.print(analogRead(A3));
Serial.print(” JY2 Y:”);
Serial.print(analogRead(A2));
Serial.print(” JY3 Z:”);
Serial.println(digitalRead(8));
}
delay(500);
}
//////////////////////////////////////////////////////////////////////////
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait)
{
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
//////////////////////////////////////////////////////////////////////////
//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
for (int j=0; j<10; j++) { //do 10 cycles of chasing
for (int q=0; q < 3; q++) {
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, c); //turn every third pixel on
}
strip.show();
delay(wait);
for (int i=0; i < strip.numPixels(); i=i+3) {
strip.setPixelColor(i+q, 0); //turn every third pixel off
}
}
}
}
注意
1.在打开Arduino IDE上传代码前,要把Adafruit_NeoPixel文件夹和
Arduino_IRremote放到 编译器安装目录下的\Arduino\libraries里。不然编译不过。
例如我的:C:\Program Files (x86)\Arduino\libraries
2.在Arduino IDE上传代码前,需设置板为Arduino Uno和COM口(根据设备管理器中显示)。
3.上传代码成功后,测试时需要用到红外遥控。实验中我们用到的红外遥控产品链接为:
https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-441584794.25.4cab29bcECOIGv&id=13724448755
6、测试结果
上传前面测试代码成功后,利用mini USB线连接到电脑,拨码开关拨到ON,上电。打开串口监视器,设置波特率为9600。
红外遥控对照红外接收头按下1键,控制板上4个RGB灯类似流水灯循环亮白灯,串口监视器显示如下。
测试遥控图案
红外遥控对照红外接收头按下2键,控制板上有源蜂鸣器响起,串口监视器显示如下。
红外遥控对照红外接收头按下3键,控制板上有源蜂鸣器关闭,如果外接激光设备(5V驱动),激光设备发射对应激光,串口监视器显示如下。
红外遥控对照红外接收头按下4键,控制板上如果外接激光设备(5V驱动),激光设备关闭对应激光;串口监视器显示两个光敏电阻测试的对应光照的模拟值,光线越暗,数值越大。
红外遥控对照红外接收头按下5键,串口监视器显示两个摇杆对应位置的数值,分别代表两个摇杆X Y Z轴位置数值;X Y轴,对应两个模拟值,Z轴对应数字值,按下Z轴按键时,显示0,;如下图。
7、相关资料下载链接
https://pan.baidu.com/s/1W6OWPXwazYUSLeRLEbH32g
提取码为:oahy