Inhoudsopgave:

AIY universele IR-afstandsbediening - Ajarnpa
AIY universele IR-afstandsbediening - Ajarnpa

Video: AIY universele IR-afstandsbediening - Ajarnpa

Video: AIY universele IR-afstandsbediening - Ajarnpa
Video: How To Reset Samsung's TV LCD LED Remote Control | Fixed Samsung TV Remote Control Not Work 2024, November
Anonim
AIY Universele IR-afstandsbediening
AIY Universele IR-afstandsbediening

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

PCB maken
PCB maken
PCB maken
PCB maken

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

Maak verbinding met de AIY-hoed
Maak verbinding met de AIY-hoed
Maak verbinding met de AIY-hoed
Maak verbinding met de AIY-hoed

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: