顯示具有 HC-05 標籤的文章。 顯示所有文章
顯示具有 HC-05 標籤的文章。 顯示所有文章

2016年6月24日 星期五

利用超音波測量距離和速度

從這邊抄來的,放這邊當作自己的筆記本: http://a-chien.blogspot.tw/2016/06/arduino.html

這可以利用超音波模組測距離,同時配合時間算出速度和加速度。要做到這件事情,測量的時間間隔就要短,所以會一下子跳出大量的數據。只要從serial monitor抓取數據,就可以進行運動學分析。

不過這時候把數據用LCD呈現就沒意義了。不過沒關係,我還是把數據丟給LCD,不過只丟距離的數據就好,LCD就單純測距囉。

阿簡這個設計,還可以利用藍芽模組收數據。利用HC-05, or 06。

接線方式

接線方式
超音波模組
VCC to arduino 5v
GND to arduino GND
Echo to Arduino pin 13
Trig to Arduino pin 12


藍牙模組
VCC to arduino 5v
GND to arduino GND
RXD to D1
TXD to D0

注意藍芽模組的包率要調到9600, 方法在這邊


要怎麼用電腦收到藍芽的數據呢?

1.把arduino先弄好,包含超音波偵測、藍芽模組、code甚麼地都弄好
2.arduino打開,讓電腦連到HC-05
3.到電腦的裝置管理員,找到藍芽模組是哪一個COM
4.打開arduino, 選擇那個藍芽COM
5.打開serial monitor




修改後的程式碼如下

#include <Wire.h>  // Arduino IDE 內建
// LCD I2C Library,從這裡可以下載:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
#include <LiquidCrystal_I2C.h>

// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // 設定 LCD I2C 位址


#define trigPin 12
#define echoPin 13
int x0=0;//一開始的位置
int v0=0;//初速
float temp=20.0;//溫度
float c=(331.5+0.6*temp)/10000;//單位是每微秒幾公分
float intervaltime=100;  //每幾毫秒測量一次
float duration, distance,velocity,acceleration;

void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.begin(16, 2);
}


void loop() {

digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);//超音波來回經過的時間,單位是微秒
distance = (duration/2) *c;//單位是公分
velocity=(distance-x0)/(intervaltime/1000);//每秒速度
acceleration=(velocity-v0)/(intervaltime/1000);//每秒加速度

x0 = distance;
v0=velocity;
Serial.print("E");
Serial.print(distance);
Serial.print(",");
Serial.print(velocity);
Serial.print(",");
Serial.println(acceleration);
lcd.clear();
lcd.print("D=");
lcd.print(distance);
lcd.print(" cm");
delay(intervaltime);

}



2015年6月19日 星期五

使用teraterm終端機程式monitor arduino

我們可以用HC05藍芽晶片,讓電腦發出指令給arduino,控制arduino。那麼反過來,我可不可以讓電腦 monitor arduino輸出的訊息呢?

如果可以的話,就可以讓arduino和電腦分開的情況下,進行實驗,收集到數據。

我本來以為HC05裝上去後,當電腦跟HC05連接,就會給HC05 一個COM,然後我就可以從arduino的程式裡面,直接告訴電腦arduino的板子在那個COM,剩下就和平常做的事情一樣。但是我太傻太天真,這條路是行不通的。

所以要另外想辦法。

參考資料1: http://www.instructables.com/id/Arduino-AND-Bluetooth-HC-05-Connecting-easily/?ALLSTEPS

參考資料2:http://www.instructables.com/id/Cheap-2-Way-Bluetooth-Connection-Between-Arduino-a/step4/Set-up-your-PC-for-serial-Bluetooth-communication/

STEP1 首先,需要一個終端機程式,叫做teraterm。在這邊下載

STEP2 先用USB線連接arduino。把arduino的韌體上傳上去。要超音波測距的,要測pH的都可以,把硬體連接好,韌體傳上去。按下monitor看一下有沒有正常運作。如果有,就把USB線從電腦上拔起來。

STEP3 HC05部分,正負極接好,然後TX接arduino的RX,RX接arduino的TX

STEP4:電腦與HC05連接。從電腦的裝置管理員那邊,新增裝置,找到新的bluetooth,名字叫做HC05,連上去之後,密碼是1234。這樣電腦就和HC05連上了。

STEP5, 到裝置管理員納編會看到HC05, 點內容進去,然後看第二個標籤頁叫做[硬體] 就可以看到HC05現在是佔哪個COM。COM8

STEP6, 打開Teraterm,開啟之後,會跳出一個視窗,大概是問你要跟誰連接,選擇下半部的[連接阜],點進去選擇剛剛看到的COM8,就會跳出一個視窗。

這個視窗就相當於arduino程式裡面的monitor視窗。

如此一來,在做實驗的時候,電腦就可以不用一直跟著arduino跑了!


2015年6月18日 星期四

HC-05 藍芽模組的使用

為了讓電腦用藍芽控制科學魔法車。(就是要學習雄哥的這招)
購買了HC-05藍芽模組和L293D控制馬達的IC

要把藍芽模組搞懂花了點力氣,所以在這邊作筆記

一、HC-05藍芽模組,正常使用共會用到四個接點,分別是5V, GND, 然後TX接到Arduino的RX, RX接到Arduino的TX。

二、運作時,藍芽模組的baud必須要跟arduino韌體的baud相同,如果不同的話,就要將HC-05切換到AT command 模式,下指令將baud改成相同。

三、以下是進入AT command的方式

1.參考影片:https://www.youtube.com/watch?v=fkS1elBSzgs
2.參考文件:http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/step1/Components-Wiring/
3.參考文件:http://gsyan888.blogspot.tw/2014/03/arduino-hc-05.html