Ik maak vaak robots of speelgoed op basis van Arduino of soortgelijke borden. Als optie om dergelijke apparaten te bedienen, gebruik ik het infraroodbereik. Qua ontvanger zijn er geen problemen, het is gemakkelijk te vinden en aan te sluiten, maar in het geval van de afstandsbediening is het lastiger.
En hier zijn twee opties:
1. gebruik de afstandsbediening van de tv of andere apparatuur die voorhanden is. Dan is er veel gedoe, problemen en kost het veel tijd. Eerst moet u de knopcodes van de afstandsbediening lezen en vervolgens naar uw firmware schrijven. Een ander probleem is dat de afstandsbediening een signaal verzendt wanneer de knoppen eenmaal worden ingedrukt, het niet herhaalt (als het apparaat beweegt of ver weg is, leest de ontvanger het mogelijk niet per keer) en verzendt het niets wanneer de knop wordt losgelaten, wat erg lastig is wanneer het is noodzakelijk om bewegende machines te besturen. Nou, ik wil niet tegelijkertijd de tv en de machine bedienen.
2. maak je eigen afstandsbediening.
Dit is de tweede manier waarop ik ga. Voor de basis heb ik de oude joystick van de Sega-console gebruikt. Daar is alles wat je nodig hebt. Vier pijlen (handig voor het besturen van auto's) en 8 knoppen.
Dus wat we nodig hebben:
- joystick van Sega
- Arduino Pro Mini 3.3v 8 MHz
- USB-TTL
- 2 Ni-Mn-batterijen 1.2v 1000mA
- IR-LED
- Rode LED
- Blauwe LED
- weerstand 2x75Om, 2x5Om, 1x2Om
draad
- PLSx5 connector "moeder"
- hete lijm
- draden
- batterijvak 4xAAA
- veelkleurige draden
- soldeerbout, soldeer, hars
- rechte armen
Stap 1 Soldeer
We demonteren onze joystick, halen het bord eruit en solderen alle draden eruit. Vervolgens moet je een administratief mes of gewoon een scherp mes nemen en alle tracks van de controller op het bord knippen, zodat het ons niet hindert en niet in strijd is met Arduino. Bij elke knop is er een kleine cirkel met een kale track. Nadat u een soldeerbout hebt genomen, moet u aan elke mok langs de draad solderen, evenals een gemeenschappelijke draad vinden om te solderen en een draad eraan (gewoon, zwart). Het terugwikkelen van de draden zou er ongeveer zo uit moeten zien:
Op de achterkant lijmen we op een dubbelzijdige tape onze Arduino. Een kleine uitweiding over de keuze van Arduino. In principe kun je elk bord gebruiken, het belangrijkste is dat het in de joystick past.
Soldeer onze motieven volgens het volgende schema
Joystick Arduino
Pijl-omhoog 2
Pijl-omlaag 4
Pijl naar links 5
Pijl naar rechts 6
Knop A 8
B-knop 10
C-knop 7
X-knop 12
Y-knop 11
Z-knop 9
Start 14-knop (A0)
Reset RST-knop
IR-LED + 3
Generieke GND
Blauwe LED
door een 75 ohm ruwe weerstand
Rode LED
door de weerstand 75 Om + 5 connectoren
Laat me het uitleggen: ik heb alle knoppen gesoldeerd zoals het handig was met draad, als je het door elkaar haalt, hoef je het alleen maar te naaien. Het belangrijkste IR-positieve contact moet op 3 worden gesoldeerd! Vergeet niet min IR naar soldeer te solderen. De Reset-knop is nodig om de Arduino opnieuw op te starten met firmware.
Stap 2 case-modus
Het is noodzakelijk om na te denken over een conclusie van draden voor aansluiting van USB-TTL. Ik gebruikte de connector op 5 PLS "moeder". Hij maakte een geschikte sleuf in de rechterkant van de joystick, plaatste de connector en vulde alles met hete lijm. + 5v van deze connector voor nu, voer gewoon de draad uit. TX naar RX Arduino, RX naar TX respectievelijk. + 3.3v naar 3.3 Arduino, GND naar GND Arduino. Hij heeft een geschikte sleuf gemaakt aan de rechterkant van de joystick.
Om de opname van de afstandsbediening en de batterijlading aan te geven, is het noodzakelijk om twee gaten met een diameter van 5 mm voor de joystick te boren en de LED's daar in te steken. En snijd ook een gat voor de schakelaar.
Vul aan de binnenkant de diodes en schakelaars met hete lijm.
Stap 3 voeding
Er zijn dus twee opties voor voeding. Ik heb beide gedaan, maar je kunt de juiste kiezen en er een gebruiken.
De eerste op batterijen. Om dit te doen, soldeert u twee NI-MN-batterijen in serie, aan de pluspunten via de schakelaar, soldeert u de volgende 5Om + 5Om + 2Om + Diode in serie en aan +5 van onze connector, dit is voor opladen via USB-TTL. We wikkelen de resulterende piek van de diode en weerstanden met elektrische tape en leggen de rechterbovenhoek. Parallel soldeer onze rode LED door een 75 Om weerstand om een lading aan te geven. De tweede positie van de schakelaar is de werkende draad van deze gaat naar de RAW Arduino en opnieuw parallel, dit keer een blauwe LED, via een weerstand van 75Om. Minus direct aan de GND Arduino.
De batterijen bevinden zich bovenaan de joystick en moeten worden vastgelijmd
De volgende zijn de manipulaties met de Arduino. Het feit is dat de spanning van 2,4 volt klein is en om onze controller te starten, moet je de zekeringbits van de Arduino veranderen. Gedetailleerde instructies met betrekking tot de firmware van de bootloader en fuse-bits vallen buiten het bestek van dit onderwerp en het internet staat vol met schema's en opties. Het belangrijkste resultaat hier is om de Arduino-stroomregeling uit te schakelen. Hier is het ICSP Arduino Pro Mini pinout-diagram.
De tweede optie is eenvoudiger en vereist geen extra manipulaties met Arduino. Soldeer aan de schakelaar de positieve draad van ons batterijcompartiment, minus de GND Arduino. We brengen de draden naar buiten door een kleine snee in de behuizing te maken en lijmen het compartiment op de achterkant van de joystick op een dubbelzijdige tape. Het wordt als volgt:
Het ziet er niet erg mooi uit, maar het is sneller en heeft minder problemen.
Stap 4 Montage
Dus we hebben de volgende constructie:
Bij het monteren is het noodzakelijk om de draden zo te leggen dat ze niet worden gebeten door de interne delen van de joystick. Het is me niet meteen gelukt, maar na vijf pogingen komt alles goed. Hier is mijn afstandsbediening.
Stap 5 firmware
Onze afstandsbediening wordt geflitst via een connector die is aangesloten op USB-TTL, het opladen gaat er ook doorheen. Vergeet niet op Reset te drukken bij het gieten van de kras.
Bij het schrijven van de firmware schreef ik voor elke opdracht (knop) een willekeurige reeks cijfers (codes) op. Ik gebruik deze codes bij het schrijven van de firmware van een beheerd apparaat. Codes worden driemaal verzonden, waardoor het niet meer mogelijk is om een opdracht over te slaan. Wanneer u de knop loslaat, wordt er ook een code verzonden die wordt gebruikt om het beheerde apparaat te stoppen.