Inhoudsopgave:

Met gebaren bestuurde universele afstandsbediening met Node-MCU - Ajarnpa
Met gebaren bestuurde universele afstandsbediening met Node-MCU - Ajarnpa

Video: Met gebaren bestuurde universele afstandsbediening met Node-MCU - Ajarnpa

Video: Met gebaren bestuurde universele afstandsbediening met Node-MCU - Ajarnpa
Video: Handleiding: Stopcontact met afstandsbediening (LOT) 2024, Juli-
Anonim
Gebaargestuurde universele afstandsbediening met Node-MCU
Gebaargestuurde universele afstandsbediening met Node-MCU

Hallo allemaal en welkom bij dit project! Ik ben nogal een lui persoon en de nachtmerrie van een lui persoon is om tv te kijken terwijl je je realiseert dat de afstandsbediening te ver weg is! Ik realiseerde me dat mijn afstandsbediening nooit te ver weg zal zijn als ik hem altijd bij de hand heb. Dat inspireerde me om LAZr te maken, de universele afstandsbediening met gebaren.

In dit project ga ik een handschoen maken die is uitgerust met sensoren die handgebaren kunnen detecteren en signalen naar een tv of ander apparaat kunnen sturen met een simpele vingerbeweging.

Ik hoop dat je dit project leuk vindt en ervoor stemt in de Epilog Laser-wedstrijd!

Stap 1: De onderdelen

De onderdelen
De onderdelen

Dit project bevat de volgende onderdelen:

Een handschoen ($5,00)

Knooppunt-MCU / ESP8266 ($ 3,00)

Dit is de microcontroller en het brein van dit project. Het heeft de mogelijkheid om verbinding te maken met wifi, wat het erg handig maakt in domotica-toepassingen en in projecten zoals deze, omdat wifi-besturing in dit project kan worden geïmplementeerd.

5 Flex-sensoren ($ 7,00 per stuk)

Deze sensoren meten buiging, vergelijkbaar met hoe een LDR (Light Dependent Resistor) lichtniveaus meet. Deze worden gebruikt om vingerbuiging en handgebaren te meten.

IR-zender ($ 0,30)

Deze component verzendt IR-signalen naar apparaten zoals tv's, dvd-spelers, enz.

IR-ontvanger ($ 1,00)

Deze component ontvangt IR-signalen die door afstandsbedieningen worden verzonden. Het is nodig om signalen van afstandsbedieningen te decoderen. Deze signalen kunnen vervolgens worden gebruikt om het apparaat vanuit de handschoen te bedienen. Ik raad de TSOP4838 aan omdat ik hem met succes heb getest met Sharp, Samsung en Apple TV's.

5 10k Ohm-weerstanden ($ 0,01 per stuk)

Deze weerstanden zijn nodig voor elk van de Flex-sensoren.

220 Ohm Weerstand ($ 0,01 per stuk)

Deze weerstanden zijn nodig voor elk van de Flex-sensoren.

Transistor ($ 0,39)

De transistor wordt gebruikt voor IR-overdracht.

74HC4051N Multiplexer-IC ($ 0,22)

Omdat de Node-MCU slechts één analoge poort heeft, wordt dit IC gebruikt om de analoge pin in meerdere te "splitsen", die zijn verbonden met de flexsensoren. Hierover later meer.

Veel startkabels! (Als u besluit een breadboard te gebruiken)

De volgende onderdelen zijn optioneel, maar zijn nuttig als ze worden gebruikt:

16-pins IC-aansluiting

Vrouwelijke kopteksten

Stap 2: De multiplexer-IC (74HC4051N)

De multiplexer-IC (74HC4051N)
De multiplexer-IC (74HC4051N)

Hoewel de Node-MCU boordevol uitstekende functies zit, zoals WiFi en Arduino IDE-compatibiliteit, heeft het zijn nadelen. Het heeft slechts één analoge pin, wat onvoldoende is voor dit project. Omdat de handschoen vijf flexsensoren heeft, zijn er vijf analoge ingangen nodig om te werken. Een eenvoudige en goedkope oplossing voor dit probleem is het gebruik van een Multiplexer IC (74HC4051N). Dit IC is in staat om één analoge ingang om te zetten in acht!

Hoe werkt het?

Het IC werkt door één analoge ingang in te schakelen, deze uit te lezen en uit te schakelen. Vervolgens wordt de volgende analoge ingang ingeschakeld. Door dit te doen, leest het slechts één sensor tegelijk en stuurt het naar de analoge pin van de microcontroller. Het IC kan de analoge ingangen zo snel in-, uitlezen en uitschakelen dat het lijkt alsof hij ze allemaal tegelijk leest. Dit is vergelijkbaar met hoe computer- en smartphoneschermen werken; Elke pixel kan niet zijn eigen aangewezen pin hebben (dat zou een ramp zijn!), dus het zet de pixels zo snel aan en uit dat onze ogen ze allemaal tegelijkertijd als ingeschakeld zien. Om te functioneren heeft het IC drie digitale pinnen nodig. Door de combinaties van de aan- en uitstanden van de pinnen te wijzigen, kan het IC alle 8 analoge ingangen in- en uitschakelen.

Stap 3: Breadboard-indeling

Breadboard-indeling
Breadboard-indeling

De lay-out van het apparaat is weergegeven in de afbeelding hierboven.

BELANGRIJK: Let op het type transistor dat u gebruikt, de collectorpin van de transistor moet worden aangesloten op de IR-LED en niet op de GND-pin.

Stap 4: Signalen ontvangen

Om ervoor te zorgen dat de handschoen het juiste signaal weet om te verzenden, moeten signalen worden ontvangen van de afstandsbediening van uw tv/apparaat en worden geprogrammeerd in de code van de handschoen. Om deze signalen te ontvangen is een IR-ontvanger nodig.

Opmerking: kijk naar het modelnummer van je tv-afstandsbediening en probeer de signaalspecificaties online te vinden. Sommige IR-ontvangers en -zenders werken niet met sommige afstandsbedieningen, dus het is belangrijk om een zender/ontvanger te vinden met de frequentie die overeenkomt met uw tv. Ik gebruik een 4838 IR-ontvanger die werkt met mijn Samsung TV-afstandsbediening.

Stap 5: Code voor het ontvangen van signalen

Code voor het ontvangen van signalen
Code voor het ontvangen van signalen
Code voor het ontvangen van signalen
Code voor het ontvangen van signalen

Om de code te gebruiken, moet de IRremoteESP8266-bibliotheek worden gedownload. De downloadlink staat hieronder:

IRremoteESP8266

Ga in de Arduino IDE naar Sketch > Include Library > Add. ZIP Library. Zoek de twee gedownloade bibliotheken en voeg ze toe aan de IDE. Om toegang te krijgen tot de code om IR-signalen te ontvangen, gaat u naar Bestand > Voorbeelden > IRremoteESP8266 > IRrecvDumpV2. Verander in de code de waarde kRecvPin van 14 in 5. Dit zorgt ervoor dat de Node-MCU de juiste pin (D1) leest.

Nadat u de breadboard-verbindingen hebt aangesloten, uploadt u deze code naar uw Node-MCU en opent u uw seriële monitor (stel de baudrate in op 115200). Als u op een knop op de afstandsbediening van uw tv drukt, worden de signalen afgedrukt op uw seriële monitor. Succes!

U ziet een lange reeks getallen met de waarde rawData. Noteer deze nummers en zorg ervoor dat u de knop noteert die u hebt ingedrukt om die nummers te krijgen. Deze heb je later nodig.

Stap 6: PCB-schema

PCB-schema
PCB-schema

Het PCB-schema is gemaakt in Autodesk Eagle en is zoals weergegeven in de afbeelding hierboven. Alle Eagle-bestanden bevinden zich in deze Instructable en kunnen in de volgende stap worden gedownload.

Stap 7: Het PCB-ontwerp

Het PCB-ontwerp
Het PCB-ontwerp

Hier is mijn PCB-ontwerp. Alle Eagle-bestanden voor deze printplaat staan hieronder, dus u kunt dit ontwerp gebruiken of wijzigen om uw eigen PCB te bouwen! Ik heb SMD-pads toegevoegd voor de extra 3 analoge ingangen, evenals de 3V3- en GND-poort. Hierdoor kan ik dit systeem uitbreiden als ik dat ooit nodig heb, waardoor ik middelen en tijd kan besparen en de PCB veelzijdig kan maken.

Stap 8: Alles samenbrengen

Alles bij elkaar zetten
Alles bij elkaar zetten

Na een paar dagen wachten, kreeg ik eindelijk mijn PCB's per post. Nu is het tijd voor het leuke gedeelte, alles aan elkaar solderen! Door het schema te volgen, was het solderen van de print vrij eenvoudig. In mijn ontwerp heb ik een IC-socket en vrouwelijke headers gebruikt voor mijn multiplexer-IC en Node-MCU. Dit is zodat ik deze chips kan verwijderen als ik ze moet vervangen of hergebruiken. Als u een slankere vormfactor wilt, kunt u de chips rechtstreeks op het bord solderen, maar onthoud dat het vrij moeilijk zal zijn om deze later te verwijderen.

Stap 9: De handschoen samenstellen

De handschoen samenstellen
De handschoen samenstellen

Om de flexsensoren in de handschoen te installeren, heb ik kleine rubberen buisjes in de vingers van de handschoen gelijmd en de sensoren erin geplaatst. Op deze manier hadden de sensoren wat bewegingsruimte en konden ze indien nodig worden verwijderd. Om de print vast te houden, heb ik hem met klittenband op de handschoen gemonteerd. Nogmaals, het is helemaal aan jou om dit samen te stellen. Je kunt creatief zijn!

Stap 10: De opdrachten programmeren

Nu de hardware onder handen is genomen, is het tijd voor de software. Download voor je handschoen onderstaande code.

Om de code met uw tv te laten werken, moet u enkele cijfers wijzigen. Weet je nog die nummers die je opschreef? Nu is het tijd om ze te gebruiken. Als je de nummers niet hebt, maak je geen zorgen, het is heel gemakkelijk om deze signalen te verzamelen; Ga gewoon terug naar de stap IR-ontvangst. Kopieer de dataset rawData en plak deze onder de opmerking "PASTE DATA HERE" in de code. Hernoem deze dataset naar powerOn. Kopieer het nummer naast powerOn (in mijn geval 95). Dit getal is het aantal getallen in de dataset. Ga nu naar de onderkant van de code, onder de opmerking "DISPLAY POWER". Vervang "95" door de waarde die u hebt gekopieerd. Upload nu uw code naar de Node-MCU en trek de handschoen aan. Als je met je hand naar de tv kijkt en een van je vingers buigt, wordt je tv ingeschakeld!

Dit is eenvoudig aan te passen. Om meer functies toe te voegen, voegt u eenvoudig meer datasets toe en kopieert en plakt u de DISPLAY POWER-functie en wijzigt u de informatie in de overeenkomstige dataset en het aantal waarden. Omdat elke flexsensor anders is, moet u mogelijk het nummer "310" wijzigen, zodat het registreert wanneer de vinger wordt gevouwen. U kunt zelfs gebaren met meerdere vingers en "hoofdschakelaars" maken. Ik heb bijvoorbeeld mijn code zo aangepast dat als ik mijn ringvinger en duim buig, het volume van mijn tv wordt gedempt en de bron verandert. De mogelijkheden voor uitbreidbaarheid zijn eindeloos!

Stap 11: Het is klaar

Het is klaar!
Het is klaar!
Het is klaar!
Het is klaar!

Daar heb je het, een universele gebarengestuurde tv-afstandsbediening! Ik hoop dat je dit project leuk vond, en ik hoop dat je op mij stemt in de Epilog Laser-wedstrijd. Als je vragen hebt, voel je vrij om een opmerking te schrijven en ik zal mijn best doen om ze te beantwoorden. Nogmaals, ik hoop dat je het leuk vond!

Aanbevolen: