“(SKU:RB-01C015A)Arduino XBee Sensor Shield”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
?演示視頻
?IIC 端口
 
第251行: 第251行:
 
====程序效果====
 
====程序效果====
 
LED 條形模塊掃描顯示,每個LED連續(xù)顯示亮滅
 
LED 條形模塊掃描顯示,每個LED連續(xù)顯示亮滅
 +
 +
===舵機控制===
 +
====使用硬件====
 +
* [http://gharee.com/goods-546.html Carduino UNO 控制器] * 1個
 +
* [http://gharee.com/goods-707.html  Arduino XBee Sensor Shield] * 1個
 +
* [http://gharee.com/goods-90.html USB接口連接線] * 1個
 +
* [http://gharee.com/goods-105.html RB - 150MG 舵機] * 2個
 +
* [http://gharee.com/goods-728.html 滑條變阻器] * 2個
 +
* [http://gharee.com/goods-318.html USEC 3A 穩(wěn)壓器] * 1個
 +
* [http://gharee.com/goods-321.html 7.4V 1200mAh 鋰電池] * 1個
 +
====硬件連接====
 +
* 將舵機1連接在控制器數(shù)字5引腳;
 +
* 將舵機2連接在控制器數(shù)字6引腳;
 +
* 滑條變阻器1連接在控制器模擬3引腳;
 +
* 滑條變阻器2連接在控制器模擬4引腳;
 +
* 7.4V 鋰電池連接一個 UBEC 3A 穩(wěn)壓器給舵機進行供電;
 +
====實驗代碼====
 +
通過兩個滑條變阻器來控制二自由度舵機云臺的旋轉(zhuǎn)
 +
<pre style='color:blue'>#include <Servo.h>
 +
Servo servo1;
 +
Servo servo2;
 +
int pot1, pot2;
 +
void setup()
 +
{
 +
  servo1.attach(5);
 +
  servo2.attach(6);
 +
  servo1.write(90);
 +
  servo2.write(90);
 +
}
 +
void loop()
 +
{
 +
  pot1 = analogRead(A3);
 +
  pot2 = analogRead(A4);
 +
  pot1 = map(pot1,0,1023,0,180);
 +
  pot2 = map(pot2,0,1023,0,180);
 +
  servo1.write(pot1);
 +
  servo2.write(pot2);
 +
  delay(15);
 +
}</pre>
 +
====程序效果====
 +
分別滑動兩個滑條電阻器可以控制舵機0到180度旋轉(zhuǎn)。<br/>
 +
備注:這里使用的是金屬齒電機,但是由于 Arduino UNO IO 接口電流輸出能力低,所以驅(qū)動金屬齒舵機工作不能穩(wěn)定進行,需要單獨供電,我們使用了一個 7.4 V 鋰電池和降壓器給舵機進行了供電,保證工作的穩(wěn)定性,使用降壓器的原因是:舵機供電電壓范圍是不超過 7.2 V 的,電壓過大會導(dǎo)致舵機損壞。
  
 
==演示視頻==
 
==演示視頻==

2016年1月22日 (五) 11:05的最后版本

RB01C015A01.png

目錄

產(chǎn)品概述

此產(chǎn)品是Arduino傳感器擴展板V5.0的升級版本,保留了原有功能基礎(chǔ)上新增了Xbee接口,省去了需要購買Xbee承載板的成本,此款擴展板還增加了5V和3.3V電源的切換功能,只需要簡單的更改跳線帽的位置,而且也包括了3.3V單獨引出的擴展端子,非常使用。新升級后板載的貼片開關(guān)解決了外接串口模塊不能直接下載程序的問題,操作簡單易用,升級后板載的數(shù)字接口可以由外部直接提供9V —12V的電壓源進行供電,為舵機驅(qū)動提供了便利,此款產(chǎn)品依舊繼承了之前版本表面的沉浸工藝,標(biāo)識清晰,美觀大方。

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

  1. 尺寸大?。?5mm * 55mm
  2. 重量大?。?3g
  3. 模塊接口:APC220/藍牙/SD卡/Xbee模塊/SPI接口/LCD Serial/IIC
  4. 電源接口:5V/3.3V/9V - 12V
  5. 功能開關(guān):程序下載、執(zhí)行切換開關(guān)/電源隔離二極管/3.3V & 5V切換端子
  6. 指示燈:板載電源PWR指示LED/板載數(shù)字D13接口LED/Xbee指示LED
  7. 其他:復(fù)位按鍵
  8. 數(shù)字接口:D0 - D13
  9. 模擬接口:A0 - A5
  10. 特點:舵機單獨供電接口、固定3.3V電源輸出擴展

接口介紹

引腳定義

  • S:信號引腳
  • G/-:電源地
  • V/+:電源正極
  • 3V3:3.3V 電壓輸出
  • 5V:5V 電壓輸出
  • SDA:IIC 數(shù)據(jù)端口
  • SCL:IIC 時鐘端口
  • MOSI:SPI 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入
  • SS:從設(shè)備片選端口
  • MISO:SPI 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出
  • SCK:時鐘信號,由主設(shè)備產(chǎn)生

接口功能說明

RB01C015A02.jpg

1.舵機供電接口:當(dāng)UNO控制器接有舵機的情況下,舵機需要進行單獨供電,這個接口就是給舵機單獨供電使用的。
2.D13 引腳LED:綠色LED,用來反映UNO控制器的D13引腳狀態(tài),D13引腳高電平時LED點亮,D13引腳低電平時LED熄滅。
3.APC220接口:APC220 無線通信模塊接口.
4.數(shù)字接口D0到D13:將Arduino UNO控制器的數(shù)字引腳擴展成3線制接口說明:數(shù)字接口旁有“D”字樣:代表的是數(shù)字信號(Digital Signal)。也就是對應(yīng)連接到控制板的數(shù)字引腳。
(1)黑色:地(GND)
(2)紅色:電源
(3)黃色:數(shù)字引腳信號端(D0 - D13)
5.Xbee擴展板接口:直接可以連接Xbee模塊,實現(xiàn)數(shù)據(jù)的傳輸。
6.模擬接口A0到A5:將Arduino UNO控制器的模擬引腳擴展成3線制接口。
說明:模擬接口旁有“A”字樣:代表的是模擬信號(Analog Signal)。也就是對應(yīng)連接到控制板的模擬引腳。
(1)黑色:地(GND)
(2)紅色:電源
(3)黃色:模擬引腳信號端(A0 - A5)
7.IIC通信接口:分別為+、-、SDA、SCL
(1)+ 接控制器電源正
(2)- 接控制器電源負
(3)SDA 接控制器 A4 引腳
(4)SCL 接控制器 A5 引腳
8.供電選擇:通過跳線帽的插接可以選擇5V或3.3V供電。便于給需要3.3V電源的傳感器進行供電,如果沒有該跳線帽,VCC引腳輸出電壓為0。
9.SD卡模塊接口:分別為:+、-、MOSI、SS、SCK、MISO
(1)+ 接控制器電源正
(2)- 接控制器電源負
(3)MOSI 接控制器 D11 引腳
(4)SS 接控制器 D4 引腳
(5)SCK 接控制器 D13 引腳
(6)MISO 接控制器 D12 引腳
10.電源輸入:接7到12V的供電電源,紅色端子和排針引腳的功能是相同的,為了方便大家不同接口的電池使用。
11.藍牙模塊接口:與藍牙串口模塊可以直接插接在一起,不需要引線連接,分別為:VCC、GND、D1、D0、GND、3.3V。
12.3.3V輸出:提供兩個恒定3.3V電壓輸出引腳,這個電源輸出與其他的VCC引腳輸出電壓有所不同,其他引腳的VCC是與電源跳線帽的選擇有關(guān),而這里則不是,而是恒定的3.3V電壓輸出。
13.復(fù)位按鍵:按下案件可以實現(xiàn)UNO控制器的程序復(fù)位
14.編程開關(guān):分為運行模式(RUN)和下載(PROG)模式,用過Arduino板的用戶可能都知道,Arduino只有一個串口,如果Arduino板上接有占用串口的模塊時,要上傳程序需要將模塊拔掉才能正常,但是這款擴展板可以幫您解決問題,方法就是:將開關(guān)撥到PROG,就可以實現(xiàn)不拔掉占用串口的模塊同時進行程序上傳
15.LCD 串行接口
(1)VCC 接控制器電源正
(2)GND 接控制器電源負(GND)
(3)MOSI 懸空
(4)MISO 接控制器 D4 引腳
(5)SCK 接控制器 D3 引腳
(6)RST 接控制器 D2 引腳
16.供電指示LED:供電電源燈,紅色,在擴展板正常供電狀態(tài)下點亮

使用方法

數(shù)字端口

使用硬件

硬件連接

RB01C015A03.jpg

例子程序

/* LED 接 D4 引腳*/
void setup() 
{
  // initialize digital pin 13 as an output.
  pinMode(4, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(4, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(4, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

程序效果

LED 燈1秒鐘頻閃

模擬端口

使用硬件

硬件連接

RB01C015A04.jpg

例子程序

/* 旋轉(zhuǎn)角度電位計模塊接A0引腳*/
void setup() 
{
Serial.begin(9600);
}
void loop() 
{
Serial.println(analogRead(A0));
delay(100);
}

程序效果

通過串口監(jiān)視器可以觀察旋轉(zhuǎn)角度電位計在轉(zhuǎn)動過程中模擬量的變化

藍牙端口

使用硬件

硬件連接

RB01C015A05.jpg

測試程序

主機測試程序
void setup() 
{ 
Serial.begin(115200); //設(shè)定波特率為 115200 
} 
void loop() 
{ 
Serial.println("www.robotbase.cn"); //串口輸出 www.robotbase.cn 
delay(1000);                                    //延時 1 秒 
}
從機測試程序
char val;          //定義字符變量 val 
int ledpin=13;   //定義 ledpin 引腳為 13 
void setup() 
{ 
Serial.begin(115200);   //設(shè)定波特率為 115200 
pinMode(ledpin,OUTPUT); //設(shè)定 ledpin 引腳為輸出狀態(tài) 
} 
void loop() 
{ 
v al=Serial.read();      //讀串口接收到的數(shù)據(jù) 
if(val!=-1) 
{ 
digitalWrite(ledpin,HIGH);   //ledpin 引腳寫入高電平 
delay(500);                          //延時 0.5 秒 
digitalWrite(ledpin,LOW);        //ledpin 引腳寫入低電平 
delay(500);                        //延時 0.5 秒 
Serial.print(val);                   //串口打印 val 的值 
} 
} 

程序效果

Wtgd15.jpg
使用串口助手觀察結(jié)果,串口助手設(shè)置串口號為從機的串口號,波特率和程序設(shè)置的一致為 115200,其它默認即可,打開串口就可以看見結(jié)果。同時從機的數(shù)字口 13的 LED 燈會閃爍。

SPI端口

使用硬件

測試程序

#include "LCD12864RSPI.h"
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
unsigned char show0[]={
  0xB9, 0xFE, 0xB6, 0xFB,0xB1, 0xF5, 0xB0, 0xC2, 0xCB, 0xC9, 0xBB, 0xFA, 0xC6, 0xF7, 0xC8, 0xCB}; //哈爾濱奧松機器人
unsigned char show1[]="gharee.com";
void setup()
{
LCDA.Initialise(); // 屏幕初始化
delay(100);
}
 
void loop()
{
LCDA.CLEAR();//清屏
delay(100);
LCDA.DisplayString(0,0,show0,AR_SIZE(show0));//第一行第三格開始,顯示文智位機器人
delay(100);
LCDA.DisplayString(2,0,show1,AR_SIZE(show1));;//第三行第二格開始,顯示網(wǎng)址dfrobot.com/
delay(5000);
}

程序效果

程序上傳后12864液晶文字顯示:“奧松機器人,gharee.com”

Xbee端口

使用硬件

硬件接線

01C015A10.jpg

測試程序

int ledPin = 13;
int val;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.print('A');
delay(1000);
val = Serial.read();
if (-1 != val) {
if ('A' == val) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
}
}

程序效果

兩個擴展板的板載LED均每隔1秒閃爍一次。

IIC 端口

使用硬件

例子程序

#include <RobotBase_LED_Bar.h>
RobotBase_LED_Bar bar(A5, A4, 0);
void setup()
{
bar.begin();
}
void loop()
{
for (int i = 0; i <= 10; i++)
{
bar.setLevel(i);
delay(100);
}
}

程序效果

LED 條形模塊掃描顯示,每個LED連續(xù)顯示亮滅

舵機控制

使用硬件

硬件連接

  • 將舵機1連接在控制器數(shù)字5引腳;
  • 將舵機2連接在控制器數(shù)字6引腳;
  • 滑條變阻器1連接在控制器模擬3引腳;
  • 滑條變阻器2連接在控制器模擬4引腳;
  • 7.4V 鋰電池連接一個 UBEC 3A 穩(wěn)壓器給舵機進行供電;

實驗代碼

通過兩個滑條變阻器來控制二自由度舵機云臺的旋轉(zhuǎn)

#include <Servo.h>
Servo servo1;
Servo servo2;
int pot1, pot2;
void setup()
{
  servo1.attach(5);
  servo2.attach(6);
  servo1.write(90);
  servo2.write(90);
}
void loop()
{
  pot1 = analogRead(A3);
  pot2 = analogRead(A4);
  pot1 = map(pot1,0,1023,0,180);
  pot2 = map(pot2,0,1023,0,180);
  servo1.write(pot1);
  servo2.write(pot2);
  delay(15);
}

程序效果

分別滑動兩個滑條電阻器可以控制舵機0到180度旋轉(zhuǎn)。
備注:這里使用的是金屬齒電機,但是由于 Arduino UNO IO 接口電流輸出能力低,所以驅(qū)動金屬齒舵機工作不能穩(wěn)定進行,需要單獨供電,我們使用了一個 7.4 V 鋰電池和降壓器給舵機進行了供電,保證工作的穩(wěn)定性,使用降壓器的原因是:舵機供電電壓范圍是不超過 7.2 V 的,電壓過大會導(dǎo)致舵機損壞。

演示視頻

01C015A11.jpg
01C015A12.jpg


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

Erweima.png

產(chǎn)品購買地址

Arduino XBee Sensor Shield

周邊產(chǎn)品推薦

傳感器擴展板V5.0
12864液晶擴展板
XBee 1mW ZigBee 無線數(shù)傳模塊

相關(guān)問題解答

Arduino XBee Sensor Shield 擴展板接口說明

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

奧松機器人技術(shù)論壇