God eftermiddag fortsætter vi med at lave robotter og legetøj. I dag er det næste trin modifikationen af min tankmodel. Læsbare produktionsinstruktioner her
Essensen af ændringen er at ændre styringsmåden. Denne gang vil vi bruge en laserpointer til kontrol. Mere præcist vil tanken køre bag laserprikken. Tanken bestemmer placeringen af punktet gennem fotoresistorer. Listen over nødvendige svarer til listen fra ovenstående hjemmelavetmen ikke helt:
- Tamiya 70168 dobbelt gear
- Tamiya 70100 sæt ruller og spor
- Tamiya 70157
- Krydsfiner 10 mm (et lille stykke)
- Arduino Pro Mini 5V AtMega 328
- DRV 8833
- Fotoresistorer 5506 4 stk.
- USB-UART til Arduino firmware
- Rektangulære røde og grønne lysdioder
- Hvide lysdioder 5 mm 2stk.
- Modstande 3x 150 ohm
- Li-ion 18650 batterier
- Dupont-far-mor-stik
- Ledninger i forskellige farver
- lodning
- Rosin
- loddejern
- Bolte 3x40, 3x20, møtrikker og skiver til dem
- 2x10 træskruer
- Træbor 3 mm og 6 mm
- Elektrisk fretsav
- Akrylmaling
Trin 1 Produktion af tankdele.
detaljeret tankfremstillingsproces beskrevet i hjemmelavet.
At gentage det giver ingen mening. Derfor er det første og andet trin i ovennævnte hjemmelavede komplet.
Trin 2 Installation af fotoresistorer.
Vi har brug for de mest almindelige fotoresistorer, de er lette at købe i radiobutikken:
Før du installerer sporene skal du derefter forberede steder til fotoresistorerne og indsætte dem der. Så vi har fire fotoresistorer, to foran og to bagpå. De vil alle være placeret i den nederste del af sagen, i hjørnerne. Retreat 5 mm fra hver side, lav to huller til fotoresistorens ben. Afstanden mellem hullerne er 4 mm. Du kan bruge boremaskinen med den mindste diameter eller bare gennembore finer med en vinkel. Når du har gjort dette, skal du indsætte fotoresistorerne. Lad os starte med fronten:
Når du har indsat fotoresistorerne i krydsfiner, lod du ledningerne til kontakterne og moderens Dupont-stik. Vi isolerer stedet for lodning. Du kan bruge elektrisk tape, eller du kan ligesom mig lægge isolering på tråden.
Og bagpå gør vi også:
Nedenfor ser det sådan ud:
Vi samler sagen yderligere i henhold til instruktionerne, hvis link er vist ovenfor.
For at øge fotoresistorenes følsomhed over for laserpunktet og slippe af med unødvendig interferens, skal de males med en rød markør eller maling. Det vigtigste er, at lys trænger gennem belægningen. Mal ikke helt over dem.
På denne måde øger vi sensorenes følsomhed over for laserens røde prik.
Trin 3 Elektriker.
I det fjerde trin beskriver instruktioner til fremstilling af tanken detaljeret, hvad og hvordan man tilslutter. Vi gør alt efter det, med undtagelse af tilslutning af Bluetooth-modulet. Vi har ikke brug for ham. Vi forbinder en af fotoresistorenes kontakter med GND. Den anden er forbundet til Arduino i henhold til ordningen:
Foran til højre til A0 (Pin14)
Foran til venstre til A1 (Pin15)
Bageste venstre til A2 (Pin16)
Bagerste højre til A3 (Pin17)
Som kontrolværktøj vil vi bruge den sædvanlige kinesiske laserpointer med en rød stråle:
Trin 4 Redigering af en skitse.
For at redigere og udfylde skitsen skal du downloade Arduino IDE. Vi går til embedsmanden projekt site og download den nyeste version.
Ingen yderligere biblioteker er nødvendige.
Fotoresistorer er langt fra den mest nøjagtige måleenhed. Dens karakteristika afhænger i praksis af et stort antal faktorer. Derfor er det nødvendigt at justere hver fotoresistor for korrekt drift. Vi korrigerer målingerne ved at redigere skitsen ved hjælp af Arduino IDE og portmonitor. Åbn skitsen:
Lad os starte med de forreste fotomodstande. Læg i bunden de tre linjer til frontsensorerne:
//Serial.print(senLF); // Uncomment for at justere frontfotoresistorer
//Serial.print ("");
//Serial.println(senRF);
Og du skal også tilføje en pause for at få tid til at se dem. Fravælg derfor også denne linje:
// forsinkelse (500);
Udfyld skitsen. Vi lægger tanken på bordet, når vi tænder rummet med en almindelig lysekrone, skal bordlampen ikke være tændt. Og åbn Arduino IDE-portmonitoren. Under normal belysning skal aflæsningerne være større end 500 og på samme tid omtrent de samme for begge sensorer. Lad os prøve at bevæge laserpekeren foran næsen på tanken. Indikationerne bør variere. Jo nærmere punktet er, jo mindre skal tallene være. De skal være i området fra 80 (ved punktets maksimale nærhed) til 500 (i en afstand af ca. 2-3 cm.).
Brug variablerne på skitsen til at justere:
int corLF = 0; // Korrektionsvariabler, foran til venstre
int corRF = 30; // Højre forreste
Korrektionsvariabler kan enten være positive (tilføjet til sensoren) eller negative (trækkes fra målingerne). Når du ændrer disse variabler, skal du igen udfylde skitsen og se, at indikatorerne ligger i de områder, vi har brug for.
Gør nu det samme med de bagerste fotoresistorer. For at gøre dette skal du kommentere linjerne for frontsensorerne og fjerne følgende linjer:
//Serial.print(senLB); // Frakobling for at justere de bagerste fotoresistorer
//Serial.print ("");
//Serial.println(senRB);
En pause skal efterlades ukommenteret. Vi udfører de samme målinger, først nu med fotoresistorer bagpå. Og skriv de korrigerende variabler:
int corLB = 0; // Bageste venstre
int corRB = 35; // bagved højre
For at gøre det klart, hvordan alt fungerer. Den venstre forreste sensor styrer bevægelsen af det højre spor fremad, og den højre forreste sensor styrer det venstre spor fremad, og så videre. Sensoraflæsninger justeres efter følgende formler:
senLF = (analogRead (senLFPin) + corLF); // foran til venstre
senRF = (analogRead (senRFPin) + corRF); // Højre forreste
senLB = (analogRead (senLBPin) + corLB); // Bageste venstre
senRB = (analogRead (senRBPin) + corRB); // bagved højre
Hvor, senLF, senRF, senLB, sen RB - korrigerede aflæsninger
analogRead (senLFPin), (analogRead (senRFPin), (analogRead (senLBPin), (analogRead (senRBPin) - "rene" sensormålinger
colLF, colRF, corLB, corRB - korrektionsvariabler.
Og så oversættes målingerne til omdrejningshastigheden for det modsatte spor:
walRF = kort (senLF, 80, 500, 100, 255);
walLF = kort (senRF, 80, 500, 100, 255);
walRB = kort (senLB, 80, 500, 100, 255);
walLB = kort (senRB, 80, 500, 100, 255);
Hvis du ikke kan korrigere aflæsningerne på nogen måde, skal du ændre de maksimale og minimale aflæsninger, hvor sporene begynder at bevæge sig. Dette er numrene 80 og 500 i de konverteringslinjer, der er skrevet ovenfor.
Når du er færdig med alle procedurer, skal du kommentere alle disse linjer og udfyld tegningen. Nu kører tanken bag den røde prik på laserpekeren.