許多的飛行秘密,其實都在背板的小洞上
小編學習日記這次要來分享,名字很霸氣的Dragon Fly,有購買的這款DragonFly 1.0 飛行器的玩家有沒有發現,它除了正面能插上飛行底板外,背後還留有許多接孔呢?今天小編就來告訴大家Dragon Fly 1.0除了能飛在空中之外,還有什麼新鮮的玩法哦~
超音波避障
超音波感測器是由超音波發射器、接收器和控制電路所組成。當它被觸發的時候,會發射一連串 40 kHz的聲波並且從離它最近的物體接收回音。人類的耳朵只能接收20~20K赫茲的頻率,所以在發射超音波的時候我們是聽不到的。
超音波感測的原理是利用超音波發射器 (Transmitter) 發射音波之後,碰到物體返回使接收器(Receiver)收到回音之間的時間差來計算與物體之間的距離。聲音的速度約為340M/s ;1000000/340*100=29.4
由上面的計算我們可以知道聲音傳播1公分所需要的時間為29.4 毫秒,所以我們在真正計算距離時使用公式distance = (duty/2)/29.4來得到我們需要感測的距離。
而 Arduino 程式碼如下:
int trig = A0;
int echo = A1;
int ini_time =1000;
long current_time =0;
float duty,distance;
void setup(){
Serial.begin(115200);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}
void loop(){
digitalWrite(trig,HIGH);
delayMicroseconds(ini_time);
digitalWrite(trig,LOW);
duty = pulseIn(echo,HIGH);
distance = (duty/2)/29.4;
delay(ini_time);
Serial.print(“data:”);
current_time = millis();
Serial.print(“NO. “);
Serial.print (current_time/1000);
Serial.print(“, d = “);
Serial.print(distance);
Serial.println(” cm”);
}
實際結果如下:
光強度感測
光強度感測主要是通過光敏電阻來感測光源的刺激,當有光線照射時,電阻內原本處於穩定狀態的電子受到激發,成為自由電子。所以光線越強,產生的自由電子也就越多,電阻就會越小。
暗電阻:當電阻在完全沒有光線照射的狀態下(室溫),稱這時的電阻值為暗電阻(當電阻值穩定不變時,例如1kM歐姆),與暗電阻相對應的電流為暗電流。
亮電阻:當電阻在充足光線照射的狀態下(室溫),稱這時的電阻值為亮電阻(當電阻值穩定不變時,例如1歐姆),與亮電阻相對應的電流為亮電流。
光電流 = 亮電流 – 暗電流
當光敏電阻感受到強光時電阻下降,我們設計當電阻讀取的值小於500時將LED關閉,反之當讀取的值大於500代表沒有光源,將LED燈打開。
Arduino程式碼如下:
#define lightsensor A1
#define led A0
float light;
void setup() {
Serial.begin(115200);
pinMode(lightsensor, INPUT); //data pin for ambientlight sensor
pinMode(led, OUTPUT);
}
void loop() {
light = analogRead(lightsensor);
if (light < 500) {
digitalWrite(led, LOW);
}
if(light>500) {
digitalWrite(led,HIGH);
}
Serial.println(light);
delay(100);
}
溫溼度感測
DHT-11 是一個結合濕度計和測溫元件的複合式感測器,並與一個高性能8位元單晶片相連接,將所量測到的溫、濕度資料拆解成為數位訊號,再由 data pin腳將資料送出。使用上很簡單,但是抓取資料時必須要特別注意時間的掌控,而且每筆資料的抓取時間間隔要1~2秒鐘,不能做太快速的取樣。
其規格如下:
- 濕度測量範圍:20~90%RH
- 濕度測量精度:±5%RH
- 溫度測量範圍:0~50℃
- 溫度測量精度:±2℃
- 電源供應範圍: 3~5V
- 頻率不可超過:0.5Hz (每2秒一次)
在編輯arduino 程式碼之前我們需要從Github先下載DHT的 library,在下載完之後就可以來編寫DHT11的程式碼了喔~
Arduno程式碼如下:
#include “DHT.h”
#define DHTPIN A0
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
char o=’127′;
void setup() {
Serial.begin(115200);
Serial.println(“DHT11 test!”);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(“Failed to read from DHT !”);
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(“Humidity: “);
Serial.print(h);
Serial.print(” %\t”);
Serial.print(“Temperature: “);
Serial.print(t);
Serial.print(” C \t”);
Serial.print(f);
Serial.print(” F \t\t”);
Serial.print(“Heat index: “);
Serial.print(hic);
Serial.print(” C \t”);
Serial.print(hif);
Serial.println(” F”);
}
實際測試如下
小編學習日記這次關於Dragon Fly介紹的都是基礎的應用,希望吸引更過人加入Maker 的行列。真正的實用科技不在於技術的高深複雜,而是在於科技事物更符合生活、更有創意,這也是我們Arklab一直推崇的創客精神。下篇的學習日記文章會繼續介紹其他的感測器,如果你對我們的產品有興趣的話,歡迎到 Arklab的蝦皮賣場 或 我們的官網商城內參觀購買哦!