Inhoudsopgave:
- Stap 1: Maak PCB
- Stap 2: Maak verbinding met de AIY Hat
- Stap 3: Installeer LIRC
- Stap 4: Download of maak LIRC-bestanden voor uw apparaten
- Stap 5: Codeer AIY om uw apparaten te bedienen
Video: AIY universele IR-afstandsbediening - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Deze instructable beschrijft hoe je een AIY universele infrarood afstandsbediening maakt. Hiermee kun je elke tv, soundbar, digibox, dvd of bluray-speler bedienen met je stem.
Ik noem het universeel omdat het een IR-ontvanger bevat die kan worden gebruikt om het infraroodsignaal van elke afstandsbediening op te nemen.
Het AIY-project gebruikt het LIRC-programma om het IR-signaal op te nemen en uit te zenden.
Stap 1: Maak PCB
Onderdelen lijst:
Twee 940nm 5mm infrarood LED-stralers
Eén TSOP38238 infraroodontvanger
Een 2n3904-transistor
Een weerstand van 10 ohm
Een veroboard
Vier enkele connectoren (optioneel - ik heb een zes-pins connector in enkele connectoren gesneden)
Kabels om aan te sluiten op de AIY-hoed.
Zorg ervoor dat de IR-LED's het lange been op de eerste rij hebben en het korte been op de tweede rij. Tweede LED met lange poot op tweede rij en korte poot op derde.
De transistor moet de basis op de derde hebben, de collector op de vierde en de emitter op de vijfde. Zorg ervoor dat de platte kant van de weerstand naar de connector is gericht.
De weerstand gaat tussen rij vijf en rij acht.
Gebruik een kort stuk draad om rij één met rij zeven te verbinden.
Sluit de IR-ontvanger aan op rij zeven, acht en negen.
Voeg de connectoren toe aan rij één, vier, acht en negen.
Aansluitingen zijn:
Rij één - +5v vermogen
Rij vier - zendersignaal
Rij acht - Grond
Rij negen - ontvangersignaal
Stap 2: Maak verbinding met de AIY Hat
Ik heb header-pinnen op mijn AIY gesoldeerd om het aansluiten van dingen veel gemakkelijker te maken.
De pinnen die ik heb gebruikt zijn Servo 0 (GPIO 26) en Servo 5 (GPIO 24) voor het signaal. Ik gebruikte ook +5v van de horizontale pin boven de servo-pinnen. Ik nam de grond van de GND naast Servo 0, maar je kunt elke grond gebruiken die je wilt.
Met behulp van de juiste kabels heb ik de AIY-hoed als volgt op het bord aangesloten:
+5V om één te roeien
Servo 0 (GPIO 26) naar rij vier
GND naar rij 8
Servo 5 (GPIO 24) naar rij negen.
Stap 3: Installeer LIRC
Ervan uitgaande dat je AIY al hebt ingesteld en getest:
We moeten LIRC installeren. Volg deze waardevolle instructable door mirza irwan Osman:
www.instructables.com/id/Install-Linux-Infrared-Remote-Control-LIRC-Package
OF een alternatieve instructie kan hier worden gevonden door Alex Bane:
alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/
OPMERKING: voor mijn installatie moest ik ervoor zorgen dat het /boot/config.txt-bestand het volgende had:
dtoverlay=lirc-rpi, gpio_in_pin=24, gpio_out_pin=26
Stap 4: Download of maak LIRC-bestanden voor uw apparaten
Deze volgende stap maakt het lircd.conf-bestand aan dat de details bevat over de afstandsbediening voor de apparaten die u wilt gebruiken.
Er zijn twee manieren om dit bestand te maken:
1. Als je geluk hebt, kun je een bestaand bestand vinden op de LIRC-pagina's voor je apparaat
2. Als u het niet kunt vinden, moet u een bestand opnemen met de IR-ontvanger en uw afstandsbediening.
Ga voor stap 1 naar de LIRC-startpagina en bekijk de lijst met ondersteunde apparaten:
www.lirc.org/
Als u het bestand voor het apparaat kunt vinden, moet u de informatie in het bestand overbrengen naar het lircd.conf-bestand /etc/lirc
Omdat mijn AIY headerless is, gebruik ik WINScP om de wijzigingen aan te brengen in lirc.conf.
De informatie die je nodig hebt begint met "begin remote" en eindigt met "end remote"
OPMERKING: Als u meer dan één apparaat wilt bedienen, voegt u gewoon de extra afstandsbedieningscode toe aan hetzelfde bestand na de bestaande "eindafstandsbediening". Zorg ervoor dat elke afstandsbediening een unieke naam heeft. Ik gebruik "mytv" voor mijn televisie en "sky" voor mijn sky digibox enz.
Als u de code voor uw apparaat niet kunt vinden, moet u deze opnemen.
Volg deze instructie om te leren hoe u elke afstandsbediening kunt opnemen met LIRC:
www.instructables.com/id/Record-Infrared-Codes-of-Any-Remote-Control-Unit-f/
Nadat u de eerste afstandsbediening hebt opgenomen, herhaalt u het proces totdat u alle afstandsbedieningen hebt opgenomen. U kunt dan het lirc.conf-bestand bijwerken met alle codes die u hebt opgenomen. Ik had dit nodig voor mijn soundbar.
Stap 5: Codeer AIY om uw apparaten te bedienen
Om de IR-zender vanaf AIY te bedienen, brengt u de nodige wijzigingen aan in het bestand "assistant_library_with_local_commands_demo.py"
U kunt "assistant_library_with_local_commands_demo.py" uitvoeren vanaf de Start Dev Terminal om te zien of uw code werkt.
Ik laat mijn AIY automatisch starten bij het opstarten door de instructie hier te volgen:
aiyprojects.withgoogle.com/voice/#makers-guide-3-4--run-your-app-automatically
Houd er rekening mee dat als u uw code wilt wijzigen, u AIY moet stoppen en opnieuw moet starten door deze te gebruiken:
sudo service my_assistant stop
sudo-service my_assistant start
De bijgevoegde code bevat mijn huidige werkprogramma.
(Merk op dat deze code ook extra functies bevat, zoals internetradio).
De code maakt gebruik van variaties op het verzenden van de LIRC send_start en send_stop om het vereiste IR-signaal te verzenden. Ik heb gemerkt dat het nodig is om een pauze in te voeren tussen het starten en stoppen van het signaal, en dit kan per apparaat verschillen (mijn Panasonic TV heeft een langer signaal nodig dan de skybox). Dus bijvoorbeeld:
subprocess.call('irsend SEND_START mytv KEY_POWER', shell=True)
tijd.slaap(0.5)
subprocess.call('irsend SEND_STOP mytv KEY_POWER', shell=True)
Om combinaties van signalen te verzenden, bijvoorbeeld de Sky TV-zender, heb ik een lijst gemaakt die een zin aan een zendercode toewijst. Merk op dat de AIY soms niet altijd het juiste woord zal horen, dus ik heb ook variaties op de zin opgenomen (zoals bbc 1 en bbc one, of het woord 'guide' en 'dave' omdat AIY dat altijd teruggaf toen ik zei 'dave' - het moet mijn accent zijn!). Ik gebruikte toen een routine die de code van drie tekens uit de lijst zou oppikken en elk nummer zou verzenden (zie module ##Sky channel change-routine##)
Het is ook mogelijk om combinaties van signalen naar meerdere apparaten te sturen. Dus ik heb bijvoorbeeld een "systeem aan"-routine die de tv aanzet, de soundbar aanzet, de skybox start en overschakelt naar BBC 1.
Zodra de IR-zender met AIY werkt, is het mogelijk om alle verschillende combinaties te bedenken om hem te gebruiken. Ik kan bijvoorbeeld een tijdcommando sturen om het volume op de soundbar aan te passen.
Gelukkige AIY IR-afstandsbediening!
Aanbevolen:
Een 'universele' klok: 10 stappen (met afbeeldingen)
Een 'universele' klok: deze klok kan de tijd weergeven in 24 tijdzones van de wereld; deze prestatie wordt bereikt dankzij de opstelling die wordt weergegeven in de tekening die de basiscomponenten van de klok toont.Het uurwerk 1 is geïnstalleerd in de steun 2 die rond kan draaien
Universele voeding voor alles: 7 stappen
Universele voeding voor alles: Hallo vrienden, als elektronicahobbyist hebben we allemaal een voeding nodig op de werkbank, we hebben ook een -ve railvoeding nodig om verschillende elektronica van stroom te voorzien, bijv. OpAmp enz. Vandaag in dit deel ga ik een heel gemeenschappelijke voeding bestaande uit gemeenschappelijke
Universele Arduino-controller: 5 stappen (met afbeeldingen)
Universele Arduino-controller: Een paar weken nadat de school uitkwam, bouwde ik een kleine Arduino-robot. Ik wilde naar de volgende stap en ik had een controller nodig. Ik ging op zoek naar een controller waarmee ik kon kiezen wat voor soort signaal ik wilde gebruiken, maar dat lukte niet. Dus ik maakte mijn eigen. L
Model van een universele uit-schakelaar: 10 stappen
Model van een universele uit-schakelaar: Ben je het zat om te controleren of alle lichten in je huis uit zijn voordat je gaat slapen? Zou je willen dat je elk licht in één keer uit kon doen zonder gedoe? Om energie en tijd te besparen, hebben we besloten om een systeem te creëren dat in theorie
Hoe u een consolekabel voor de universele printplaat bouwt: 11 stappen
Hoe maak je een consolekabel voor de universele printplaat: Het project Universal PCB (kortweg UPCB) is gestart om een enkele gamecontroller, met name vechtsticks, op zoveel mogelijk verschillende consoles mogelijk te maken. Informatie over het project is te vinden in de volgende thread op Shoryuken.com