Inhoudsopgave:

Eén sleutelschrijver: 4 stappen
Eén sleutelschrijver: 4 stappen

Video: Eén sleutelschrijver: 4 stappen

Video: Eén sleutelschrijver: 4 stappen
Video: WEGMISBRUIKERS | Één Uur Compilatie #4 2024, November
Anonim
Eén sleutelschrijver
Eén sleutelschrijver

Herinner je je Stephen Hawking nog? Hij was de Cambridge-professor en beroemde wiskundige in de rolstoel met een door de computer gegenereerde stem. Hij leed aan de ziekte van motorneuronen en tegen het einde van zijn leven, nadat hij zijn spraak verloren had, was hij in staat om te communiceren via een spraakgenererend apparaat - aanvankelijk door middel van een handschakelaar en uiteindelijk met behulp van een enkele wangspier.

Ik dacht dat ik zou proberen een tekstschrijfapparaat met één schakelaar te maken. Slechts één schakelaar - AAN of UIT. Wat kun je daarmee?

We moeten rekening houden met de tijd. Als je een schakelaar sluit en even later opent, heb je controle over een andere variabele. We kunnen gebruik maken van de tijdsvertraging tussen het sluiten en openen van de schakelaar om verschillende inputs te genereren en deze om te zetten in tekststrings of berichten. Ik wil "HELLO, WORLD!" kunnen schrijven. en stuur het naar de seriële monitor - allemaal met een enkele knop.

Er loopt een milliseconde timer in je Arduino. Het klikt elke 0,001 seconden met 1 aan. Je kunt de waarde ervan lezen met de verklaring

int t = millis();

// Doe iets

int tt = millis();

int timeDiff = tt - t;

Benodigdheden

Ik ga items gebruiken die de meeste Arduino-gebruikers al hebben en die vrij goedkoop zijn om te kopen:

  • Arduino UNO
  • 16x2 LCD
  • 220 Ohm en 10K Ohm weerstanden
  • 10K Ohm potentiometer
  • Knop schakelaar
  • Breadboard of stripboard
  • Draden aansluiten

Stap 1: De methode:

De methode
De methode

Hier hebben we een raster met alle letters, cijfers 0 tot 9 en leestekens. De letter "A" staat in rij 1 en kolom 2. Het cijfer "9" staat in rij 7 en kolom 1. (Misschien wilt u dit scherm afdrukken om het voor u te hebben terwijl u het script later uitvoert.)

De instructies vertellen u hoe u de schakelaar moet gebruiken. Als u de knop ingedrukt houdt, telt de rijwaarde langzaam op vanaf nul. Haal uw vinger van de knop wanneer de rijwaarde 1 is.

Houd de knop opnieuw ingedrukt en het kolomnummer begint vanaf nul op te tellen. Til je vinger op als er 2 staat en je hebt de "A" uit rij:1 en kolom:2 gekozen.

We moeten nu de "A" overbrengen naar het bericht op de onderste rij. Houd de knop ingedrukt en til uw vinger op bij actie 1 - voeg het teken toe.

Om de "9" in te voegen, kiezen we rij 9 en kolom 1 en voegen deze vervolgens toe met actie 1.

Actie 2 wist het hele bericht.

Actie 3 Dumpt een verkeerd gekozen teken zonder het aan de berichtreeks toe te voegen. (Mis-picks komen vaak voor!)

Actie 4 stuurt het bericht van het LCD-scherm naar de seriële monitor.

Stap 2: Dingen aansluiten

Dingen verbinden
Dingen verbinden

Als u een Liquid Crystal Display-scherm heeft, zult u dit waarschijnlijk de hele tijd gebruiken. Het is een goed idee om een klein verbindingsbord te bouwen met daarin het LCD-scherm, de potentiometer (voor het aanpassen van de helderheid van het scherm) en de beschermende weerstand met enkele draden voor 5 volt en GND. Het spoor wordt aan de achterkant van het bord doorgesneden, onder de 220 Ohm-weerstand. Ik heb later output-sockets aan het bord toegevoegd voor 5V en GND omdat de Arduino maar een enkele 5V-socket heeft. Dit bespaart tijd, kabels en testen de volgende keer dat u het LCD-scherm in een ander project nodig heeft. De "officiële methode" is hier:

www.arduino.cc/en/Tutorial/HelloWorld

De knop was aangesloten op pin 8 met een 10K pull-up weerstand en op GND.

Stap 3: Hier is mijn installatie

Hier is mijn setup
Hier is mijn setup

Op de volgende pagina staat een link naar de Tinkercad-versie om te proberen.

Gebruik de muisaanwijzer en -knop om de knopschakelaar in het midden van het diagram te sluiten en te openen. U moet het codevenster openen en vervolgens de seriële monitor onderaan de pagina om een bericht van het LCD-scherm naar de seriële monitor te kunnen sturen. De knop "Start simulatie" begint met het uitvoeren van de code.

In het begin zul je het waarschijnlijk best moeilijk vinden. Bedenk eens hoe frustrerend het zou zijn als dit je enige manier van communiceren was.

Stap 4: Tinkercad-versie

Tinkercad-versie
Tinkercad-versie

Ik heb hier een Tinkercad-versie ingesloten, maar er waren te veel buffer- en timingproblemen om een goede ervaring te geven. Het venster was ook te klein om het circuit, de code en het essentiële seriële monitorvenster correct weer te geven.

www.tinkercad.com/things/daSgRAOl0g1-oneke…

Hier is de link naar het origineel van Tinkercad, die waarschijnlijk een stuk groter is en veel gemakkelijker om het codevenster tijdens de simulatie te openen, zodat u de seriële monitor kunt zien. De essentiële timings werken naar behoren.

Ik hoop dat je genoten hebt van deze Instructable en onderweg iets hebt geleerd.

Ik heb deze Instructable ingevoerd in de Arduino-wedstrijd en zou je dankbaar zijn voor je stem als je ervan genoten hebt.

Aanbevolen: