Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Korak 1: Dijelovi i alati
Dijelovi: ~ 2 x servo motori - lokalna trgovina elektronike ~ 4 x LDR -ovi - lokalna trgovina elektronike ~ 4 x 10 k otpornika - lokalna trgovina elektronike ~ Arduino Uno - Sparkfun.com ~ 2 x 50 k promjenjivi otpornik - lokalna trgovina elektronikeAlati: ~ lemilica - Sparkfun.com ~ Lemljena žica - Sparkfun.com ~ Premosne žice - Sparkfun.com ~ Protoboard - lokalna trgovina elektronike Svi dijelovi će vas koštati manje od 30 USD (Bez arduina i svih alata)
Korak 2: Izgradite krug
Krug je prilično jednostavan, spojite četiri LDR -a na analogne pinove 0, 1, 2 i 3 preko 10k otpornika. Spojite dva serva na digitalne pinove 9 i 10 respektivno. Priključite dva promjenjiva otpornika na analogne pinove 4 i 5. a Pogledajte slike koje zaista pomažu. Pogledajte posljednju sliku za dijagram kruga (Možda je to najgore što ste ikada vidjeli).
Korak 3: Izgradite sklop senzora
Za izradu sklopa senzora uzmite dva pravokutna komada kartona, izrežite dugački prorez kroz sredinu prvog kartonskog komada. Izrežite kratki prorez kroz sredinu drugog kartonskog komada, a zatim ih prekrižite i lijepo popravite pomoću nekih traka. Trebalo bi izgledati kao 3D križ sa 4 presjeka.. Moramo postaviti naša četiri LDR -a u ova četiri dijela križa. Pogledajte slike koje zaista pomažu.
Korak 4: Postavite ga
Pronađite bazu (Nescafe boca u mom slučaju) i zalijepite šakač servo na nju, a zatim na rotor prvog servo priključite drugi servo. Na rotor drugog servoa povežite sklop senzora koji smo napravili ranije. Da biste testirali svog robota iznesite ga na sunce i on bi se trebao automatski poravnati prema suncu. Ako se nalazi u zatvorenom prostoru, smjestit će se prema najsvjetlijem izvoru svjetlosti u prostoriji. Pogledajte slike koje zaista pomažu.
Korak 5: Kôd
Evo koda za vašeg solarnog robota za praćenje: #include // include Servo library Servo horizontal; // horizontalni servo int servoh = 90; // horizontalno postolje servo vertikalno servo; // vertikalni servo int servov = 90; // vertikalni servo postolja // LDR pin veze // name = analogpin; int ldrlt = 0; // LDR gore lijevo int ldrrt = 1; // LDR top rigt int ldrld = 2; // LDR dolje lijevo int ldrrd = 3; // ldr prema dolje rigt void setup () {Serial.begin (9600); // servo veze // name.attacht (pin); horizontalno.priključak (9); vertikalno.priključak (10); } void loop () {int lt = analogRead (ldrlt); // gore lijevo int rt = analogRead (ldrrt); // gore desno int ld = analogRead (ldrld); // dolje lijevo int rd = analogRead (ldrrd); // down rigt int dtime = analogRead (4)/20; // očitavanje potenciometara int tol = analogRead (5)/4; int avt = (lt + rt) / 2; // prosječna vrijednost top int avd = (ld + rd) / 2; // prosječna vrijednost dolje int avl = (lt + ld) / 2; // prosječna vrijednost lijevo int avr = (rt + rd) / 2; // prosječna vrijednost right int dvert = avt - avd; // provjeravamo razliku gore i dolje int dhoriz = avl - avr; // provjeravamo razliku og lijevo i rigt if (-1*tol> dvert || dvert> tol) // provjeravamo je li razlika u toleranciji else promijeni vertikalni ugao {if (avt> avd) {servov = ++ servov; if (servov> 180) {servov = 180; }} else if (avt <avd) {servov = --servov; if (servov <0) {servov = 0; }} vertical.write (servov); } if (-1*tol> dhoriz || dhoriz> tol) // provjerite je li razlika u toleranciji; promijenite horizontalni kut {if (avl> avr) {servoh = --servoh; if (servoh <0) {servoh = 0; }} else if (avl <avr) {servoh = ++ servoh; if (servoh> 180) {servoh = 180; }} else if (avl = avr) {// ništa} horizontal.write (servoh); } kašnjenje (dtime); }
Korak 6: Sve je gotovo
Nadam se da će ovaj projekt potaknuti daljnja eksperimentiranja. Arduino ploča je nevjerojatno svestrana, jeftina i dostupna svim hobistima. Ovo je samo jedan od mnogih jednostavnih projekata koji se mogu konstruirati pomoću arduina. Razmišljajte dalje.