總網頁瀏覽量

2011年12月22日 星期四

手機遙控玩具車 = Motoduino (Arduino) + Bluetooth + a Toy Car + Android Phone

這次利用小孩子不玩的玩具車改裝成手機遙控車(本來是用RF遙控),改裝此種遙控車要注意的地方是前輪馬達控制左右轉,後輪馬達控制前進及後退.車子的速度感及操控感改善­許多! 跟一般市場賣的遙控車感覺差不多,只是這是用Android手機藍芽操控!! 

使用材料:
1. Motoduino (Arduino + L293D)  x 1
2. Bluetooth  x 1
3. Toy Car with two motors   x 1
4.螺絲起子及焊接工具









Youtube video: http://www.youtube.com/user/sinocgtchen


有任何問題或興趣朋友可以參考我的Blog:
  影片請看: http://www.youtube.com/user/sinocgtchen
   部落格 : http://sinocgtchen.blogspot.com
   Motoduino資訊: http://motoduino.com

My Email: sinocgtchen@gmail.com

Motoduino 上修改藍芽模組Baud Rate

在 Motoduino上修改藍芽模組Baud Rate很簡單 步驟如下:

範例說明是以傳輸速率內設Baud Rate為 9600 bps 改成 57600 bps

1.打開 Arduino IDE 輸入底下程式(下圗)


2.把Motoduino接上PC

3.Compile程式然後upload到板子.

4.等upload完後,移開motoduino跟PC連線,插上藍芽模組(如下圗).



5.把Motoduino再接上PC,然後開啟Arduino的Monitor如下圖注意右下角的baud rate欄位選成9600
bps,  monitor內會顯示AT+BAUD7 (如下圗), 此時藍芽模組已改成57600 bps.

























  注意: 從此Arduino Monitor右下角的baud rate欄位選成57600 bps才看的到訊息!!

2011年12月11日 星期日

WiFi Remote Car = Motoduino (Arduino+L293D) + WiFi Shield + Web Server

這次利用 Motoduino (Arduino + L293D motor driver IC)加上WiFi Shield來遙控車子,在motoduino上建立一個web server. 利用Http protocol來控制車子前進後退轉彎. 此次利用Motoduino來控制比上次簡單許多!!





使用材料:
1.Motoduino ---------- 1 片
2. WiFi Shield --------- 1 片
3. 9V Battery ---------- 2 顆
4. 少許接線
5. 車子底盤及馬達. ------- 1 台

參考影片在此: http://www.youtube.com/user/sinocgtchen#p/u/6/wg6Wa3pRHcM
If you have any questions, please send email
My email : sinocgtchen@gmail.com
My Youtube: http://www.youtube.com/user/sinocgtchen
Motoduino 參考網站: http://motoduino.com

2011年12月10日 星期六

Fan RPM Meter (測量風扇轉速) = Motoduino (Arduino) + CNY70 + 12V Fan

這次利用CNY70及一個沒在用的小風扇,來測量其風扇轉速,方法很簡單, Arduino Sketch如下.
此次利用一顆9V電池當風扇電源.





使用材料如下:
1.電池9V 一顆
2.Motoduino (Arduino) x 1
3.CNY70 光感測器  x 1 (圖中五顆只用一顆)
4.黑色膠帶一小條
5. 少許線材.

Arduino Sketch:
程式說明: 此次是用attachInterrupt(0, rpm_fun, RISING), 第一參數0表示Pin2為外部中斷,
當0-->1時(Rising)就產生中斷執行rpm_fun. 利用 if(rpmcount >= 20) 來調整 RPM resolution.

#############################

volatile byte rpmcount;
unsigned int rpm;
unsigned long timeold;

void setup()
{
  Serial.begin(9600);
  attachInterrupt(0, rpm_fun, RISING);
  rpmcount = 0;
  rpm = 0;
  timeold = 0;
  }

void loop()
{
  if (rpmcount >= 20)
  {
    rpm = (30 * 1000 / (millis()- timeold)) * rpmcount;
    timeold = millis();
    rpmcount = 0;
    Serial.println(rpm, DEC);
  }
}
void rpm_fun()
{
  rpmcount++;
}

#############################

有興趣或有問題網友可以發mail來, 謝謝!
My Youtube : http://www.youtube.com/watch?v=I3pIOMORmHQ
My Email : sinocgtchen@gmail.com

相關購買資訊: http://motoduino.com


2011年12月1日 星期四

Motoduino = Arduino + Motor driver L293D

Motoduino整合arduino跟L293D馬達驅動IC的控制板,完全相容於Arduino Duemilanove.
Motoduino主要結合Arduino和馬達驅動IC(L293D),可以應用於自走車,尋跡車等有馬達需求應用上. Motoduino也可以很容易加上藍芽模組做成遙控車,例如手機遙控車.
motoduino picture
 主要特性:
1.      可驅動兩顆馬達 7V ~ 12 V
2.       channel工作電流 <= 1A
3.      PIN 5, PIN 6, PIN 7PIN 8專門用來驅動馬達
4.      支援PWM 馬達轉速控制

商品內容包含:
1.      Motoduino 電路板一片
2.      藍芽模組一片
3.      Arduino 範例程式(遙控車用)
4.      Android 範例程式(遙控車用, android 2.2) 
5.     Motoduino 使用手冊

  相關影片請看: http://www.youtube.com/user/sinocgtchen
   部落格 :  http://sinocgtchen.blogspot.com
   購買資訊: http://motoduino.com

   有任何問題或有興趣朋友,歡迎來信討問,謝謝!!

2011年11月7日 星期一

Email Alarm = Arduino + Ethernet Shield + PIR Motion Sensor

This is a simple E-Mail Alerter/Alarm. If PIR motion sensor detected something or someone active/moving, an E-Mail will be sent to a specified E-Mail account by arduino. I specified my gmail account to receive it.

這次利用手邊放了一陣子的Ethernet Shield來做Email的警報器,如果紅外線人體感測器感測到有人或有東西在移動(測試大約6公尺左右距離都沒問題),馬上發出一封email到我的gmail信箱. 我的手機馬上就會通知我有來信.



使用的材料:
1.Arduino board  x 1
2.Ethernet Shield x 1
3.PIR Motion Sensor
4.I/O Expansion Shield (option)
5.2 Email accounts, one is sender(from), another one is receiver(to)

Sketch: (for Arduino 0022 version)

-----------------------------------------------------------------------

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xAF, 0xCE, 0xDD }; // whatever mac you want
byte ip[] = { 192, 168, 0, 109};
byte server[] = { 203, 188, 201, 253 }; // Mail server address  smtp.mail.yahoo.com.tw)
Client client(server, 25);  // yahoo's mobile smtp server ip/port 587

/////////////////////////////
//VARS
//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime = 30;      

//the time when the sensor outputs a low impulse
long unsigned int lowIn;        

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped
long unsigned int pause = 5000;

boolean lockLow = true;
boolean takeLowTime;

int pirPin = 3;    //the digital pin connected to the PIR sensor's output
int ledPin = 13;
int nPIR_detect;

void setup()
{
 Ethernet.begin(mac, ip);
 Serial.begin(57600);

  pinMode(pirPin, INPUT);
  digitalWrite(pirPin, LOW);
 
  //give the sensor some time to calibrate
  Serial.print("calibrating sensor ");
    for(int i = 0; i < calibrationTime; i++){
      Serial.print(".");
      delay(1000);
      }
    Serial.println(" done");
    Serial.println("SENSOR ACTIVE");
    delay(50);
     nPIR_detect = 0;
}

void loop()
{
  delay(1000);
  if(PIR_detected())  // PIR : HIGH
  {
     if (client.available()) {
       char c = client.read();
       Serial.print(c);
     }

    Serial.println("connecting...");

     if (client.connect()) {
       Serial.println("connected");
       client.println("EHLO smtp.mail.yahoo.com.tw");
//       client.println("AUTH PLAIN AHNpbm9jZ3RjbGVuQHlhaH9vLmNvbSgwet323tcxYTU=");  // example
       client.println("AUTH PLAIN *************************************************=");  // replace the **'s with your auth info from the perl script.
       client.println("MAIL FROM:<**@yahoo.com.tw>");  // replace the ** with your mail address
       client.println("RCPT TO:<**@gmail.com>");       // replace the ** with to mail address
       client.println("DATA");
       client.println("From: <**@yahoo.com.tw>");
       client.println("TO: <**@gmail.com>");
       client.println("SUBJECT: Something has been detected by PIR");
       client.println();
       client.println("This is PIR testing.");
       client.println("Warning: detected something!!");
       client.println(".");
       client.println(".");
     
       delay(1000);
       client.stop();
       Serial.println("mail sent!!");    
       delay(30000);
     }
     else
     {
       Serial.println("connection failed");
     }
  }
}

boolean PIR_detected()
{
  boolean bPIR;
 
     if(digitalRead(pirPin) == HIGH){
       digitalWrite(ledPin, HIGH);   //the led visualizes the sensors output pin state
       if(lockLow){
         //makes sure we wait for a transition to LOW before any further output is made:
         lockLow = false;          
         Serial.println("---");
         Serial.print("motion detected at ");
         Serial.print(millis()/1000);
         Serial.println(" sec");
         delay(50);
         }        
         takeLowTime = true;
       
         bPIR = true;
       }
   
     if(digitalRead(pirPin) == LOW){      
       digitalWrite(ledPin, LOW);  //the led visualizes the sensors output pin state
     
       if(takeLowTime){
        lowIn = millis();          //save the time of the transition from high to LOW
        takeLowTime = false;       //make sure this is only done at the start of a LOW phase
        }
       //if the sensor is low for more than the given pause,
       //we assume that no more motion is going to happen
       if(!lockLow && millis() - lowIn > pause){
           //makes sure this block of code is only executed again after
           //a new motion sequence has been detected
           lockLow = true;                      
           Serial.print("motion ended at ");      //output
           Serial.print((millis() - pause)/1000);
           Serial.println(" sec");
           delay(50);
           }
           bPIR = false;
       }
    return bPIR;
}


-----------------------------------------------------

my blog: http://sinocgtchen.blogspot.com/
my Youtube: http://www.youtube.com/user/sinocgtchen

相關購買資訊: http://motoduino.com

2011年11月5日 星期六

手機遙控車 = Arduino + XBee (Zigbee) + Bluetooth + Android phone


這次利用兩塊Arduino board, 一塊(arduino duemilanove)是接在車子上,此塊另堆疊著一個XBee模組, 另一塊是arduino mega 2560, 此塊板子上面接者bluetooth跟XBEE(Zigbee),手機透過藍牙(bluetooth)傳輸控制指令到ardui­no mega 2560, ATMEGA2560收到data馬上再利用XBee(Coordinator)傳到車子上的XBee模組(End Device),如此車子就可以得到控制.
好像有點多此一舉,直接用bluetooth遙控即可. 主要利用XBee特性可以長距離遙控.我試著把車子放到房間內,客廳也能操控(隔了一兩座牆). 有興趣或有問題的朋友可以email. 

使用的材料:
1.arduino duemilanove x 1
2.arduino mega 2560  x 1
3.bluetooth module x 1
4.XBee module  x 2
5 XBee shield x 2.
6.android phone x 1
7.L298N Shield x 1
8. Car Chassis  x 1
9. others







相關影片請看: http://www.youtube.com/user/sinocgtchen
   部落格 :  http://sinocgtchen.blogspot.com
   相關購買資訊: http://motoduino.com


2011年10月17日 星期一

手機藍牙監控溫度 = Android phone + arduino + MAX6675 + Bluetooth

延續上次做的手機溫度監控,這次為了改善Arduino IO Pin腳不夠用, 把LCD改成I2C介面,以及為了要偵測高溫所以改用K-Type的熱偶合溫度感測器, 可以測到700度C以上的高溫, 配合一顆MAC6675 IC 做數位訊號轉換接到Arduino. 黃色按鈕可以設定cooking temperature and holding temperature(此系統未來設計給BBQ 烤箱用的), 控制馬達(推進燃料)跟風扇(快速加溫)未接上去. 透過藍牙可以傳輸溫度以及馬達風扇的運作情形到Android 手機. 有興趣進一步了解的朋友可以email to me : sinocgtchen@gmail.com.

我使用的材料:

1. Arduino Duemilanove
2.Proto-Screw Shield 擴充板 
3.MAX6675 
4. 5-buttons 擴充板 (analog in 分壓辨識按鈕)
5. K-type 熱偶合溫度 sensor
6. I2C LCD1602 (16x2) 
7. 藍牙模組
8. Android 手機


下圗是組合起來的prototype.








下圗是 proto-screw shield 未疊上的圗


 下圖中間IC是 MAX6675, 只要連接 K-Type Sensor





  相關影片請看: http://www.youtube.com/user/sinocgtchen
   部落格 :  http://sinocgtchen.blogspot.com
   購買資訊: http://motoduino.com

   有任何問題或有興趣朋友,歡迎來信討問,謝謝!!

2011年10月3日 星期一

紅外線遙控車( 坦克車 ) = Arduino + IR receiver + TV remote control + L293D

利用紅外線遙控車子比較不好,容易受障礙物及角度影響. 這次利用家裡電視遙控器攔截五個按鈕訊號作為遙控車子前進,後退,左轉,右轉及停止動作.也順便把手邊組好的履帶式車子做個連結遙控. 影片中兩層板子,上層是自己焊接的Arduino,下層是馬達驅動IC L293D組成的線路板. 想進一步了解或有問題可以email me : sinocgtchen@gmail.com

影片在我的Youtube : http://www.youtube.com/user/sinocgtchen 

使用材料:
1. Arduino board (ATMEGA328P-PU)
2. Motor Driver IC L293D x 1
3. 74HC00D x 1
4. 1.5V battery x 4
5. 9V x 1
6. 38KHz IR Receiver  x 1





2011年9月27日 星期二

Line Tracing Robot (自走車) = Arduino + CNY70 + L298N

這幾天把放一段時間的五顆 CNY70 紅外線sensor拿出來自做了一台自走車,還沒有調整很好,隨手用蝴蝶夾固定sensor,意思到就好! 用家裡也擺一段時間的黑色膠帶黏在白板背面當作車子軌道.9V的電池被我操的快沒電了! 有興趣或有問題的朋友們可以email to me: sinocgtchen@gmail.com 




材料:
1. CNY70 sensor x 5 (三顆也可以)
2.Arduino board x 1
3. L298N board x 1
4. 9V battery x 2
5. 線材幾條


ps.所有材料拍賣網站都可以買到包含平台車.







My email : sinocgtchen@gmail.com
My Youtube: http://www.youtube.com/user/sinocgtchen
Motoduino 參考網站: http://motoduino.com



2011年9月26日 星期一

Arduino Atmega328 supporting

很少人會拿到Atmega328要用在arduino上開發,通常都是用Atmega328P, 如何修改Arduino環境來使用 Atmega328(不是Atmega328p),基本上只有Signature不一樣,Atmega328P是1E950F, Atmega328是1E9514,最簡單方式就是修改arduino signature的check.底下做法也可以用在其他Mega系列.

1.修改AtmegaBoot_168.c
增加底下定義
#elif defined __AVR_ATmega328__
#define SIG2 0x95
#define SIG3 0x14
#define PAGE_SIZE 0x40U //64 words

2.修該Makefile
增加底下定義
atmega328_pro16: TARGET = atmega328_pro_16MHz
atmega328_pro16: MCU_TARGET = atmega328
atmega328_pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -DDOUBLE_SPEED
atmega328_pro16: AVR_FREQ = 16000000L
atmega328_pro16: LDSECTION  = --section-start=.text=0x7800
atmega328_pro16: $(PROGRAM)_atmega328_pro_16MHz.hex

3.產生bootloader的 command :
    >make clean
    >make atmega328_pro16
  將產生  ATmegaBOOT_168_atmega328_pro_16MHz.hex
   
4.修改avrdude.conf

#------------------------------------------------------------
# ATmega328P
#------------------------------------------------------------

 signature = 0x1e 0x95 0x0F;
改成
 signature = 0x1e 0x95 0x14;

5.在 boards.txt修改或增加一項,如下
##############################################################

pro5v328.name=My Arduino Pro(16MHz) w/ ATmega328

pro5v328.upload.protocol=stk500
pro5v328.upload.maximum_size=30720
pro5v328.upload.speed=57600

pro5v328.bootloader.low_fuses=0xFF
pro5v328.bootloader.high_fuses=0xDA
pro5v328.bootloader.extended_fuses=0x05
pro5v328.bootloader.path=atmega328Led
pro5v328.bootloader.file=ATmegaBOOT_168_atmega328_pro_16MHz.hex
pro5v328.bootloader.unlock_bits=0x3F
pro5v328.bootloader.lock_bits=0x0F

pro5v328.build.mcu=atmega328p
pro5v328.build.f_cpu=16000000L
pro5v328.build.core=arduino

6.利用Arduino把bootloader燒錄:
  a.打開arduino選擇Tools的Board: "My Arduino Pro(16MHz) w/ ATmega328"
  b.選擇Burn Bootloader 如USBtinyISP

下圖(手機拍攝不是很清楚)我把Atmega328 mounting上去的arduino板子,一切正常work.
有興趣或有問題的arduino同好,可以mail me: sinocgtchen@gmail.com

2011年9月17日 星期六

手機無線遙控車 = mobile phone + Arduino + WiFi + Car + L298N

這次改用田宮出品的玩具車套件來組裝一台車,Arduino板子可以用螺絲固定在底板上面,電池用雙面膠暫時黏住,提供Arduino電源. 利用 Android 手機來控制 WiFi (http server)車子. 影片在此  http://www.youtube.com/user/sinocgtchen , 架起來拍錄比較容易.

田宮材料表較貴但是質感比較好,拍賣網站可以買到我組裝的所有材料!
想了解如何製作或有興趣可以mail me : sinocgtchen@gmail.com



                                               利用自己寫的簡單web page控制車子.


My email : sinocgtchen@gmail.com
My Youtube: http://www.youtube.com/user/sinocgtchen
Motoduino 參考網站: http://motoduino.com




 有任何問題或有興趣朋友,歡迎來信討問,謝謝!!

                   

無線遙控車 = Arduino + WiFi + Web Server + Browser + Car + L298N

這次利用Cooperhead WiFi Shield 加到Arduino board可以透過手機,PC, Notebook來控制小車子, Arduino上寫了一個簡單的web server (Http server),可以解析從瀏覽器傳過來的命令, 試過無線AP設定網路安全機制為WEP及 WPA都可以正常運作.
車子可以前進,後退,左轉,右轉,停止.




 WiFi Shield 未疊上去

 WiFi Shield 疊上去後


簡單控制車子的 webpage


材料需求:
1. Arduino L298N or L293 Motor Driver Shield (驅動馬達用)
2.Cooperhead WiFi Shield (802.11b 無線傳輸擴充板)
3. 9V 電池一顆(Arduino用), 1.5V電池四顆or 9V電池一顆也可以(Motor用)
4. 兩輪車子底盤一組
5. 一些24 or 20 AWG線材等.....


這些材料拍賣網站都可以買的到,有興趣的可以自己DIY,有問題可以互相討論,
順便看一下影片:  http://www.youtube.com/user/sinocgtchen

我的email: sinocgtchen@gmail.com  



2011年9月4日 星期日

Arduino + UltraSonic + Servo + L293D + Car


This time I attached a ultrasonic and Servo to arduino (Atmega328P) with motor driver IC(L293D). The car can avoid objects by using a ultrasonic. If anyone is interested in this, or any questions, mail me: sinocgtchen@gmail.com (my youtube: http://www.youtube.com/user/sinocgtchen  ) . 


這次把超音波感測器裝上arduino小車,偵測障礙物距離避開障礙物. 整個控制還未調整到理想狀態.有時間在進行改良! 這次也把兩個輪子的馬達改成減速馬達,扭力較大在圓型的底盤也較好控制. 詳細做法及sketch可以參考這期的 Make: 01雜誌.


影片在我的Youtube : http://www.youtube.com/user/sinocgtchen 







相關影片請看: http://www.youtube.com/user/sinocgtchen
   部落格 :  http://sinocgtchen.blogspot.com
   相關購買資訊: http://motoduino.com

   有任何問題或有興趣朋友,歡迎來信討問,謝謝!!

2011年8月25日 星期四

Arduino + SPI LED (8 digital bits serial LED)

今天來試試小東西 SPI 介面的 LED 如下圗,程式也不難.
此例是從PC鍵盤輸入任何數字都可以顯示(數字會往右Shift).







//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 8;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 3;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 9;
byte Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("reset");
}
void loop() {
  if (Serial.available() > 0) {
    // ASCII '0' through '9' characters are
    // represented by the values 48 through 57.
    // so if the user types a number from 0 through 9 in ASCII, 
    // you can subtract 48 to get the actual value:
  int bitToSet = Serial.read() - 48;
  // write to the shift register with the correct bit set high:
  digitalWrite(latchPin, LOW);
  // shift the bits out:
  shiftOut(dataPin, clockPin, MSBFIRST, Tab[bitToSet]);
    // turn on the output so the LEDs can light up:
  digitalWrite(latchPin, HIGH);
  }
}







2011年8月17日 星期三

Arduino: bluetooth name/baud rate changing 使用FT232RL(USB轉TTL)改變藍牙Baud rate

這次來說明最簡單的方式修改bluetooth設定值,如  Name, Baud rate,......
1.把bluetooth module和FT232RL連接起來.如圖 .
2.插入USB到PC,打開Arduino 的COM Port Monitor.
3.注意monitor中的"baud rate"設定跟 "no line ending".要設定正確!
4.直接在monitor的command line下AT command.例如 AT+BAUD7(表示設定baud rate成 57600)
5.然後按下Send, bluetooth 將會回應 OK57600之類的訊息,表示修改成功!
有問題可以email me: sinocgtchen@gmail.com




2011年8月14日 星期日

Arduino Car = L293D + 74HC00 + ATMEGA328P

這次把實驗麵包板都改成自己焊接的小板子:
製作主要材料:
1. L293D motor driver IC  x1
2. 74HC00 NAND logic gate   IC x1
3. ATmega328   (arduino 相容線路) IC  x 1
4. 幾顆電容,電阻及接頭等,
5.電池 1.5V x 4 (提供馬達電源)
6. 電池 9V x 1 (提供 IC 電源)

Arduino Sketch如下: (前進一秒--->停一秒--->後退一秒--->停一秒--->右轉一秒 ---> 停一秒 ----> 左轉一秒 ---> 停一秒)


const int Motor_M1 = 7;     // Pin ? of L298N
const int Motor_M2 = 4;    // Pin ? of L298N
const int Motor_E1 = 6; // Pin ? of L298N    
const int Motor_E2 = 5;  // Pin ? of L298N  

void setup()
{
  Serial.begin(57600);
  // set all color leds as output pins
  pinMode(Motor_M1, OUTPUT);
  pinMode(Motor_M2, OUTPUT);
 
}

void loop()
{
  forward(0,0);
  delay(1000);
  motorstop(0,0);
  delay(1000);
  back(0,0);
  delay(1000);
  motorstop(0,0);
  delay(1000);
  right(0,0);
  delay(1000);
  motorstop(0,0);
  delay(1000);
  left(0,0);
  delay(1000);
  motorstop(0,0);
  delay(1000);
 
}

void motorstop(byte flag, byte numOfValues)
{
  digitalWrite( Motor_E1, 0);
  digitalWrite( Motor_E2, 0);
  Serial.println("stop : ");

}

void forward(byte flag, byte numOfValues)
{

  Serial.println("forward : ");

  digitalWrite( Motor_M1, HIGH);
  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, 255);
  analogWrite( Motor_E2, 255);
 
}

void back(byte flag, byte numOfValues)
{

  Serial.println("back : ");
  digitalWrite( Motor_M1, LOW);
  digitalWrite( Motor_M2, LOW);

  analogWrite( Motor_E1, 255);
  analogWrite( Motor_E2, 255);
 
}

void right(byte flag, byte numOfValues)
{
  Serial.println("right : ");

  digitalWrite( Motor_M1, HIGH);
  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, 255);
  analogWrite( Motor_E2, 0);
 
}

void left(byte flag, byte numOfValues)
{
  Serial.println("left : ");

  digitalWrite( Motor_M1, HIGH);
  digitalWrite( Motor_M2, HIGH);

  analogWrite( Motor_E1, 0);
  analogWrite( Motor_E2, 255);
 
}


圗中最底層放入電池,第二層是馬達驅動IC L293D 板子,最上層是Arduino相容板.
有問題或有興趣的朋友可以mail me :  sinocgtchen@gmail.com



我的 Youtube: http://www.youtube.com/user/sinocgtchen

2011年8月9日 星期二

製作 Arduino Pro board


今天來說說前陣子買的一塊Arduino Pro的板子,這塊版子是從露天買ATmega328P QFP封裝送的PCB空板子.發現把每個零件焊上後,TX和RX有問題,請參考下圖,把兩顆電阻移到要燒錄code的pin腳位置.這樣兩端的TX 和 RX就可以正常work. ps.這板子沒有FT232RL chip,燒錄code需要外接小板子(如USB2TTL(FT232RL)).我興趣的朋友或有任何問題可以mail給我, sinocgtchen@gmail.com


2011年7月8日 星期五

Changes Bluetooth Baud Rate on Arduino

這次在網路上買一個NT$300左右的藍芽模組,接在Arduino上修改Baud 率,
材料:
1.Arduino Duemilanove
2.Bluetooth module (如圖)


步驟如下:
1.寫sketch如下(此BT module 的Baud rate內設值是9600), 然後download到arduino上.
   void setup()
{
   Serial.begin(9600);
   delay(1000);
   Serial.write("AT+BAUD7");   // set baud rate as 57600
}
void loop()
{
  char ser_char;
      if(Serial.available()>0)
     {
        ser_char = Serial.read();
        Serial.write(ser_char);
      }
}

2.sketch燒入後電源移除,接腳對應 BT module的 RxD接Arduino的TxD, BT的TxD接Arduino的RxD,  
    BT的Vcc接Arduino 3.3V. BT的GND接Arduino GND. BT其他兩隻腳可以不接.  
3. 腳位接好後上電源,幾秒鐘後,此時如果開Serial Monitor可以看到 AT+BAUD7的字串.
4. 這樣就已經完成修改Baud Rate.