» Elektronica » Arduino »Tanchik drijft een laserpointer aan

Tanchik bestuurt een laseraanwijzer

Tanchik bestuurt een laseraanwijzer

Goedemiddag, we blijven robots en speelgoed maken. Vandaag is de volgende stap de aanpassing van mijn tankmodel. Leesbare productie-instructies hier

De essentie van de wijziging is het veranderen van de manier van beheer. Deze keer gebruiken we voor controle een laserpointer. Om precies te zijn rijdt de tank achter de laserpunt. De tank bepaalt de locatie van het punt via fotoresistors. De lijst met noodzakelijke is vergelijkbaar met de lijst van hierboven zelfgemaaktmaar niet helemaal:

- Tamiya 70168 dubbele versnelling
- Tamiya 70100 set rollers en tracks
- Tamiya 70157
- Multiplex 10 mm (een klein stukje)
- Arduino Pro Mini 5V AtMega 328
- DRV 8833
- Fotoweerstanden 5506 4 stuks.
- USB-UART voor Arduino-firmware
- Rechthoekige rode en groene leds
- Witte LED's 5 mm 2st.
- Weerstanden 3x 150 Ohm
- Li-ion 18650-batterijen
- Dupont Dad-Mom-connectoren
- Draden van verschillende kleuren
- soldeer
- Hars
- soldeerbout
- Bouten 3x40, 3x20, moeren en ringen voor hen
- 2x10 houtschroeven
- Houtboren 3 mm en 6 mm
- Elektrische fretzaag
- Acrylverf

Stap 1 Productie van tankonderdelen.
Gedetailleerd tank productieproces beschreven in zelfgemaakte.

Het herhalen heeft geen zin. Daarom zijn de eerste en tweede stap van bovenstaande zelfgemaakte compleet.

Stap 2 Installatie van fotoresistors.
We hebben de meest voorkomende fotoresistors nodig, ze zijn gemakkelijk te kopen in de radiowinkel:


Vervolgens moet u, voordat u de sporen installeert, plaatsen voorbereiden voor de fotoresistors en deze daar plaatsen. We hebben dus vier fotoresistoren, twee vooraan en twee achteraan. Ze bevinden zich allemaal in het onderste deel van de behuizing, in de hoeken. Trek 5 mm van elke kant terug en maak twee gaten voor de poten van de fotoresistor. De afstand tussen de gaten is 4 mm. U kunt de boor met de kleinste diameter gebruiken of het fineer gewoon doorboren met een priem. Nadat u dit hebt gedaan, plaatst u de fotoresistors. Laten we beginnen met de voorkant:


Nadat je de fotoweerstanden in het triplex hebt geplaatst, soldeer je de draden aan de contacten en de Dupont-connector van de moeder. We isoleren de plaats van solderen. Je kunt isolatietape gebruiken, of je kunt, zoals ik, isolatie op de draad aanbrengen.


En achterin doen we ook:


Hieronder ziet het er zo uit:


We monteren de koffer verder volgens de instructies, de link waarnaar hierboven is aangegeven.
Om de gevoeligheid van de fotoresistoren voor het laserpunt te vergroten en om onnodige interferentie te voorkomen, moeten ze worden geverfd met een rode marker of verf. Het belangrijkste is dat licht door de coating dringt. Verf ze niet volledig.


Op deze manier verhogen we de gevoeligheid van de sensoren voor de rode stip van de laser.

Stap 3 Elektricien.
In de vierde stap beschrijven instructies voor het maken van de tank in detail wat en hoe te verbinden. We doen er alles aan, met uitzondering van het aansluiten van de Bluetooth-module. We hebben hem niet nodig. We verbinden een van de contacten van de fotoresistors met GND. De tweede is verbonden met Arduino volgens het schema:

Rechtsvoor naar A0 (Pin14)
Linksvoor naar A1 (Pin15)
Linksachter naar A2 (Pin16)
Rechtsachter naar A3 (Pin17)

Als controle-instrument gebruiken we de gebruikelijke Chinese laserpointer met een rode straal:


Stap 4 Een schets bewerken.
Om de schets te bewerken en in te vullen, moet je de Arduino IDE downloaden. We gaan naar de ambtenaar project site en download de nieuwste versie.

Er zijn geen extra bibliotheken nodig.
Fotoresistoren zijn verre van het meest nauwkeurige meetinstrument. De kenmerken ervan zijn in de praktijk afhankelijk van een groot aantal factoren. Daarom is het voor een goede werking noodzakelijk om elke fotoresistor aan te passen. We zullen de metingen corrigeren door de schets te bewerken met behulp van de Arduino IDE en poortmonitor. Open de schets:
unitank_laser.rar [1.01 Kb] (downloads: 76)


Laten we beginnen met de fotoweerstanden aan de voorkant. Schrap helemaal onderaan de drie lijnen voor de voorste sensoren:

//Serial.print(senLF); // Uncomment Om de fotoresistors aan de voorkant aan te passen
//Serial.print ("");
//Serial.println(senRF);


En je moet ook een pauze toevoegen om tijd te hebben om ze te bekijken. Verwijder daarom ook deze regel:

// delay (500);

Vul de schets in. We zetten de tank op tafel, bij het verlichten van de kamer met een gewone kroonluchter mag de tafellamp niet aangaan. En open de Arduino IDE-poortmonitor. Onder normale verlichting moeten de metingen groter zijn dan 500 en tegelijkertijd ongeveer hetzelfde voor beide sensoren. Laten we proberen de laseraanwijzer voor de neus van de tank te plaatsen. Indicaties moeten variëren. Hoe dichterbij het punt, hoe kleiner de cijfers moeten zijn. Ze moeten in het bereik liggen van 80 (op de maximale afstand van het punt) tot 500 (op een afstand van ongeveer 2-3 cm.).
Gebruik de variabelen in de schets om aan te passen:

int corLF = 0; // Correctievariabelen, linksvoor
int corRF = 30; // Rechtsvoor


Correctievariabelen kunnen positief zijn (toegevoegd aan de sensor) of negatief (afgetrokken van de metingen). Als u deze variabelen wijzigt, vult u opnieuw de schets in en ziet u dat de indicatoren in het bereik liggen dat we nodig hebben.

Doe nu hetzelfde met de achterste fotoresistors. Om dit te doen, geeft u commentaar op de regels voor de voorste sensoren en maakt u een commentaar op de volgende regels:

//Serial.print(senLB); // Uncomment om de achterste fotoresistors aan te passen
//Serial.print ("");
//Serial.println(senRB);


Een pauze moet zonder commentaar worden gelaten. We voeren dezelfde metingen uit, alleen nu met fotoresistors aan de achterkant. En schrijf de correctievariabelen:

int corLB = 0; // Linksachter
int corRB = 35; // Rechtsachter


Om duidelijk te maken hoe alles werkt. De sensor linksvoor bestuurt de beweging van het rechter spoor vooruit, en de sensor rechtsvoor bestuurt het linker spoor vooruit, enzovoort. Sensormetingen worden aangepast volgens de volgende formules:

senLF = (analogRead (senLFPin) + corLF); // linksvoor
senRF = (analogRead (senRFPin) + corRF); // Rechtsvoor
senLB = (analogRead (senLBPin) + corLB); // Linksachter
senRB = (analogRead (senRBPin) + corRB); // Rechtsachter


Waar senLF, senRF, senLB, sen RB - gecorrigeerde metingen
analogRead (senLFPin), (analogRead (senRFPin), (analogRead (senLBPin), (analogRead (senRBPin) - "schone" sensormetingen
colLF, colRF, corLB, corRB - correctievariabelen.

En dan worden de meetwaarden vertaald in de rotatiesnelheid van het andere spoor:

walRF = kaart (senLF, 80, 500, 100, 255);
walLF = kaart (senRF, 80, 500, 100, 255);
walRB = kaart (senLB, 80, 500, 100, 255);
walLB = kaart (senRB, 80, 500, 100, 255);


Als u de meetwaarden op geen enkele manier kunt corrigeren, wijzig dan de maximale en minimale meetwaarden waarop de tracks beginnen te bewegen. Dit zijn de nummers 80 en 500 in de conversielijnen hierboven geschreven.

Nadat u alle procedures hebt voltooid, geeft u commentaar op al deze regels en vult u de schets in. Nu rijdt de tank achter de rode stip van de laseraanwijzer.

Rijpunt
Totaal aantal stemmen: 53
9
7.9
8.1

Voeg een opmerking toe

    • lachglimlachtxaxaokweet het nietyahoonea
      baaskrabbendwaasjaja-jaagressiefgeheim
      sorrydansdance2dance3pardonhulpdrankjes
      stopvriendengoedgoedfluitjebezwijmdtong
      rookklappencrayverklarenbeledigenddon-t_mentiondownloaden
      hittebooslach1mdavergaderingmoskingnegatief
      not_ipopcornstraffenlezenschrikschriktzoeken
      bespottendankjewelditto_clueUmnikacuutmee eens
      slechtbeeeblack_eyeblum3: oopscheppenverveling
      gecensureerdbeleefdheidgeheim2bedreigenoverwinningyusun_bespectacled
      shokrespektlolvoorgekomenwelkomkrutoyya_za
      ya_dobryihelperne_huliganne_othodifludverbodsluiten
6 opmerkingen
Oleg Olegov
nee, niet echt netjes. ok
lanceer een satelliet met een laser in een baan om de aarde
En wat is dit onderwerp, we sluiten een multilaterale internationale overeenkomst over uniforme softwarestandaarden en snijden onszelf in tanks op wereldschaal! lach
De auteur
Goochelarij en geen fraude!
Verdomme, we zijn hier al bang, met jou in de buurt-)))) ne_huligan
lanceer een satelliet met een laser in een baan om de aarde, rust alle tanks en ayda opnieuw uit
Verdomme, zorgvuldig gedaan, respect!

We raden je aan om te lezen:

Geef het voor de smartphone ...