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 VideoDaugiau 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.

rvydas.net




Sunku patikėti, jog programa tiek mažai kodo užima :) Robotukui “akis” jau turi.
Aš tai su RGB LED žaidžiu http://www.youtube.com/watch?v=7rmqjpD2sis
Taip, kodo labai mažai, bet čia reikia dėkoti Arduino platformai. Visas kodas yra užslėptas pagalbiniuose API failuose. Gavau aš irgi porą RGB LED’ų kai pirkau detales iš Oomlaut, bet dar nesugalvojau ką su jais nuveikti. :) Kol kas pažingsniui darau viską, kad susikurti savo robotą.
šakės, nemaniau, kad tokių dalykų, apartų programavimas toks paprastas :)
Būtent! Aš iki šiol neatsistebiu. :)
Įmanoma ką nors pasirašyti ir duomenis išvesti į kompą?
Žinoma galima! Va kodas kurio pagalba duomenys perduodami per COM portą:
/* Ultrasonic Sensor sketch This program reads a Devantech SRF04 ultrasonic distance sensor. The SRF04 sensor's pins are connected as described below. Created 9 November 2006 By Tom Igoe and Neilson Abeel */ #define echoPin 2 // the SRF04's echo pin #define initPin 3 // the SRF04's init pin unsigned long pulseTime = 0; // reading the pulse void setup() { // make the init pin an output: pinMode(initPin, OUTPUT); // make the echo pin an input: pinMode(echoPin, INPUT); // initialize the serial port: Serial.begin(9600); } void loop() { // send the sensor a 10microsecond pulse: digitalWrite(initPin, HIGH); delayMicroseconds(10); digitalWrite(initPin, LOW); // wait for the pulse to return. The pulse // goes from low to HIGH to low, so we specify // that we want a HIGH-going pulse below: pulseTime = pulseIn(echoPin, HIGH); // print out that number Serial.println(pulseTime, DEC); }Arduino MEGA ar Decimilinova prie kompiuterio jungiama per USB, o specialūs draiveriai sukuria virtualų COM portą, per kurį galima komunikuoti su bet kuria programavimo kalba, sugebančia atidaryti COM portą ir iš jo nuskaityti duomenis.
O yra kas nors, ko stebuklas negali? :D
vinies iš sienos neištrauktų :)
Koks maksimalus atstumas? Ir kokia paklaida?
Matavimo atstumas yra nuo 3 cm iki 6m. Sonaras labai tikslus, bet netikslumai atsiranda, kai detektuojamas daiktas stovi dideliu kampu, tuomet garsas neatsispindi tiesiai į mikrofoną. Daugiau techninės info gali rasti čia:
http://www.robot-electronics.c.....05tech.htm
Galėtum pateikti itemsų kainas įrašų pabaigoje? Pats tuo neužsiemu (kolkas?), tad po elektronikos webus nelandžioju, tačiau įdomu žinot kiek viskas kainuoja.
Jeigu kas nors domina konkrečiai, galiu pasakyti kainas, bet skelbti jas čia nelabai man verta, nes Lietuvoj perkant viskas gerokai užkelta.
Arduino Mega: £50,00
LCD ekranas: £6,00
SRF05: £13,45
Megą puikiai veikiančią galima ir už 25 svarus gauti (Ne kinišką) Aišku klonas.
Kur? Man reikia! :)
http://cgi.ebay.co.uk/Arduino-.....4a9bddfc73
Prašau :) Buvau radęs pigiau, bet to pardavėjo listinge kažkodėl nebėra “mega”
http://shop.ebay.co.uk/jzhaoke.....ksid=p3686 Čia mano mėgstamiausias pardavėjas. LABAI smagiai sukalbamas ir daro nuolaidas.
O geras, ačiū už nuorodą. Superinės kainos! :)
Radau LCD dar pigiau, http://cgi.ebay.co.uk/ws/eBayI.....0360691061 Man kainavo 5.28 svaro su pristatymu į Lietuvą. Tau kainuotų tik 4.28. Čia išvis pigiau grybo :) Ir ne Kinijoje o Anglijoje.