視頻為使用Freaduino 藍牙Bee和藍牙擴板控制小車,這裡我們DIY了一個arduino改裝小車的項目,採用恩孚電子提供的Freadduino 328主板和Arduino Pro,通過藍牙的方式來無線控制小車。
改裝流程可看新浪博客:http://blog.sina.com.cn/s/blog_837566200100zl0f.html
簡介:
將Arduino Bluetooth Shield 藍牙擴展板直接插在Arduino主控板上,可以擴展Arduino藍牙通訊功能。同時該擴展板是可堆疊的,可以在此基礎上堆疊其他擴展板(如以太網擴展板,搖桿擴展板,按鍵擴展板等等),實現更多功能。
該藍牙模塊同時具備主從功能,可根據用戶需要通過AT指令自由設置,默認為從模式,波特率38400,配對密碼 1234,數據都是通過串口和主開發板傳遞通信。
由於Arduino UNO僅有一個硬件串口,當你想用串口回打信息到PC調試同時又要用串口控制藍牙模塊的時候將會遇到麻煩。該擴展模塊很好的解決了這個問題,你可以選擇D0~D7的任意一個引腳連接到模塊,配合我們提供的軟件串口庫就能用硬件串口以外的IO來控制模塊,硬件串口可以用來與PC通信,回打調試信息。板載撥動開關用來手動設置模塊控制電平,用於進入AT模式。跳帽可以選擇模塊控制引腳是連接到引腳用IO軟件控制還是連接到撥動開關用硬件控制。
使用實例:
此模塊有三種串口鏈接方式和Arduino主板通信,
第一種: 直接串口控制,需要取下Arduino主板主控IC,DIN to RX_H(D0) , DOUT to TX_H(D1) ,為硬件串口傳遞。如圖:
第二種:間接串口鏈接方式,及講完整的AT指令代碼燒入主控,通過主控將數據讀入寫出到藍牙模塊,鏈接方式是DIN to TX_H(D1) , DOUT to RX_H(D0). 不過次方式會佔用Arduino本身的串口,造成無法從Monitor監控調試打印信息,要求你的代碼完整無誤。一般不建議。如圖:
第三種:軟件串口鏈接方式,此方法最為靈活,使用Arduino官方提供的的軟件串口庫,我們可以指定任意兩個IO為TX和RX。 通過軟件串口和藍牙模塊交互的同時,我們還可以通過硬件串口Monitor工具監控答應信息,通過硬件串口設置藍牙模塊等等。除去D0,D1,你還有D2-D7的IO可以自由設置為軟件串口端口。這裡我們使用D2, D3。如圖:
測試程序實例:
如圖我們採用第三種方式連接
/*********************************************************************
** Description: **
** This file is a sample code for your reference. **
** **
** Copyright (C) 2011 ElecFreaks Corp. **
** Created by ElecFreaks Robi.W /29 Sep 2011 **
** **
*********************************************************************/
#include <NewSoftSerial.h>
#include <TimerOne.h>
#define rxPin 2
#define txPin 3
NewSoftSerial mySerial(rxPin, txPin);
void Callback()
{
Serial.println("-------> Callback Send AT");
mySerial.print("ATrn");
}
void setup()
{
// define pin modes for tx, rx pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
mySerial.begin(38400);
Serial.begin(38400);
//Timer1.initialize(2000000); // setting callback is 2s
//Timer1.attachInterrupt(Callback);
}
void loop()
{
int i = 0;
char someChar[32] = {0};
// when characters arrive over the serial port...
if(Serial.available()) {
do{
someChar[i++] = Serial.read();
//As data trickles in from your serial port you are grabbing as much as you can,
//but then when it runs out (as it will after a few bytes because the processor
//is much faster than a 9600 baud device) you exit loop, which then restarts,
//and resets i to zero, and someChar to an empty array.So please be sure to keep this delay
delay(3);
}while (Serial.available() > 0);
mySerial.println(someChar);
Serial.println(someChar);
}
while(mySerial.available())
Serial.print((char)mySerial.read());
}
另外你可以通過此藍牙擴展板和我們的Freaduino Game Kit搭配,完成無線遊戲的簡單開發流程
此套件包括了Freaduino ATMage328 , Joystick Shield搖桿擴展板, Nokia5110 LCD 液晶顯示屏。通過他們的搭配,你不需要焊接即可快速的進行Arduino的搖桿遊戲開發。 而且通過RF你可以進行聯機開發,讓開發的遊戲更加強大和更有趣的可玩性。
發貨清單:
提供文檔:
1.PDF格式原理圖
2.Arduino示例代碼
3.軟件串口庫
4.模塊使用手冊
資料包下載: