
Kaip ir žadėjau toliau tęsiu eksperimentus su davikliais. Prie jau pajungto LCD ekrano prijungiau SRF05: ultragarsinį atstumo detektorių, kuris bus roboto rega ir leis neatsimušti į kliūtis. Įrenginys yra tos dvi „akys“ schemos dešinėje viršuje. Veikimo principas nesudėtingas: garsiakalbio pagalba siunčiams aukšto dažnio (40 kHz) garsas ir mikrofonas laukia kol nuo netoliese esančio daikto sugrįš aidas. Kai tik aidas sugrįžta išmatuojamas laikas kiek toks procesas užtruko ir atstumas grąžinamas atgal į Arduino kaip impulso trukmė daviklio išėjime. Visa tai vaizdžiai atrodo taip:
Pagaliau nuspirkau FireWire kabelį. Dabar savo eksperimentus galiu filmuoti su DV kamera ir kokybė nepalyginamai geresnė nei nei filmuojant su telefonu.
Kodo galabaliukas, kuris veikia mikroprocesoriuje:
// include the library code:
#include <LiquidCrystal.h>
#define echoPin 6 // the SRF05's echo pin
#define initPin 7 // the SRF05's init pin
unsigned long pulseTime = 0; // variable for reading the pulse
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
// make the init pin an output:
pinMode(initPin, OUTPUT);
// make the echo pin an input:
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(initPin, HIGH);
delayMicroseconds(10);
digitalWrite(initPin, LOW);
pulseTime = pulseIn(echoPin, HIGH);
lcd.setCursor(0,0);
lcd.print(pulseTime / 58, DEC);
lcd.print("cm");
delay(100);
lcd.clear();
}
Kas 100 milisekundžių programa nusiunčia impulsą į SRF05, sulaukia iš jo atsakymo ir rezultatą parodo LCD ekrane.
Su šiuo davikliu galima sukonstruoti labai įdomų instrumentą pavadintą theremin. Net nežinau kaip jis verčiasi į lietuvių kalbą. Principą yra lengviau pademonstruoti, negu paaiškinti:
Flickr Video Flickr Video
Daugiau informacijos apie instrumentą su Arduino:
Roboto kūrimas eitųsi kur kas greičiau jeigu pažingsniui nebloginčiau visko ką darau, bet aprašymas tebūnie irgi proceso dalis. :) Galite matyti kaip sekasi mokintis.