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:
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.
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ą:
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.
Kokia priežastimi taip stipriai laidai įtempti? :)
Jie nėra įtempti, jie tiesiog tokie yra kieti ir paruošti jungti į breadboardą.
Pastebejau kad cia pas tave Limited edition o jie daug skiriasi nuo iprastu?
Arvydai, ka reiskia tos raides „DEC“?
Ir kodel man blogai kodas veikia, gal zinai?
Kodas:
#include
LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
#define TRIGPIN 23
#define ECHOPIN 22
void setup()
{
lcd.begin(16, 2);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print(Distance());
}
float Distance () {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
// Distance Calculation
float distance = pulseIn(ECHOPIN, HIGH);
distance= distance/58;
return(distance);
}
P. S. pas mane lcd maunasi ant arduino, taigi nieko papildomai jungineti nereikia :)
DEC nurodo dešimtainį formatą kuriuo reikia atspausdinti skaičių. Jei būtų HEX, tuomet spausdintu šešioliktainį.
Kokie to neveikimo simptomai?
Kai as priartinu ranka (lapa, tapke, bet ka), mai lcd rodo virs 7 metru (man rodos 746)
O tai skaičius are keičiasi kai tu judini tą tapkę?
Skaicius keiciasi, bet labai jau keistai palyginus su tavo (pas tave kazkaip sklandziau viskas vyksta)
O kai visiskai uzdengiu atstumo jutikli, man, kaip sakiau, rodo virs 7m. Gali pats isbandyti koda, paziureti (gal as kanors netaip darau)
Labas, arvydai. Cia gal klausimas nelabai su tema susijes, bet per kur tu svetaine kuri?
As tai bandau per jigsy.com
( http://aidoidejos.jigsy.com)
Pats hostinu savo WordPress sistemą.