Inhoudsopgave:

Een-pins toetsenbord Raspberry Pi Gebruiksgids - Ajarnpa
Een-pins toetsenbord Raspberry Pi Gebruiksgids - Ajarnpa

Video: Een-pins toetsenbord Raspberry Pi Gebruiksgids - Ajarnpa

Video: Een-pins toetsenbord Raspberry Pi Gebruiksgids - Ajarnpa
Video: How To Set Up A GPIO Screen For Raspberry Pi | Waveshare 3.5 Inch Touch LCD 2024, November
Anonim
Een-pins toetsenbord Raspberry Pi Gebruiksgids
Een-pins toetsenbord Raspberry Pi Gebruiksgids

DISCLAIMER: DIT IS EEN GEBRUIKSGIDS VOOR EEN OPEN SOURCE PRODUCT: HET ONE PIN TOETSENBORD. DIT IS GEEN DIY-PROJECT. ALS JE DE BOARDS ZELF WILT MAKEN, ZIJN DE EAGLE-BESTANDEN TE VINDEN AAN HET EINDE VAN DE TUTORIAL

Wat is het One Pin Keypad?

One Pin Keypad maakt het gebruik van een matrixtoetsenbord zo veel gemakkelijker en stelt u in staat uw kostbare I/O-pinnen voor andere doeleinden te reserveren. Een matrixtoetsenbord met 16 knoppen vereist doorgaans 8 digitale ingangen op een microcontroller of een computer met één bord. De meest populaire Arduino's beperken je tot slechts 14 digitale pinnen, dus een toetsenbord met 16 knoppen laat je slechts 6 pinnen over voor de rest van je project. Dit tekort aan middelen kan leiden tot een kostbare afweging van het ontwerp of een duurdere upgrade van de microcontroller. De One Pin Keypad-module elimineert de noodzaak voor al deze digitale ingangen. Zoals de naam al aangeeft, gebruikt One Pin Keypad slechts één pin (een analoge ingang) plus GND- en VCC-verbindingen, dus het bedraden van uw toetsenbord is een fluitje van een cent! Voor Raspberry Pi-gebruikers (de doelgroep voor deze tutorial) heeft het ook een ADS1115 analoog naar digitaal converter nodig, die heel gemakkelijk te bedraden is. Het Python-pakket met één pins toetsenbord (meegeleverd) vereenvoudigt ook de programmering die nodig is om de invoer van het toetsenbord te verwerken, waardoor u meer tijd en moeite bespaart.

Klik hier voor de Arduino-gebruiksgids.

Stap 1: Verzamel alle onderdelen

Verzamel alle onderdelen!
Verzamel alle onderdelen!

Om aan de slag te gaan met uw One Pin Keypad-bord, heeft u het volgende nodig:

  • Een eenpins toetsenbordbord
  • Een Arduino met een bepaalde smaak (in dit geval werd een Arduino Nano gebruikt)
  • 3 M/F startkabels,
  • 4 M/M OF 4 extra M/F-startkabels, afhankelijk van het type headers op je Raspberry Pi
  • Een membraantoetsenbord met 16 toetsen
  • Breadboard (hier wordt een hele kleine gebruikt)
  • Een ADS1115-module (van Adafruit of een kloon)
  • Een Raspberry Pi met een internetverbinding en Raspbian OS (ik gebruikte Stretch)
  • Raspberry Pi-accessoires (een HDMI-kabel, een voeding, dongles, monitor, enz. Hangt af van de smaak van uw Raspberry Pi)

Stap 2: Bedrading

Bedrading!
Bedrading!
Bedrading!
Bedrading!

Bedraad het One Pin Keypad volgens het Fritzing-diagram, de foto of beide, wat u maar wilt.

Let op: de opmerking op het Fritzing-diagram vertegenwoordigt het One Pin Keypad (en de afkortingen GND VCC en AOUT duiden de pinouts van het One Pin Keypad-bord aan)

Stap 3: Installatie van Python-pakket

Installatie van Python-pakket!
Installatie van Python-pakket!
Installatie van Python-pakket!
Installatie van Python-pakket!

Open een terminalvenster en typ de volgende opdrachten:

sudo apt-get update

dan

pip3 installeer Progetto-One-Pin-Keypad

om het pakket en de noodzakelijke afhankelijkheden te installeren

Stap 4: De voorbeelden installeren

De voorbeelden installeren
De voorbeelden installeren

Ik heb een dev-map gemaakt om de repository onder home/pi te huisvesten als je hetzelfde wilt doen (het is volledig optioneel), voer dan deze opdracht uit:

mkdir dev

typ vervolgens om naar de map te navigeren:

cd-ontwikkelaar

Voer ten slotte de volgende opdracht in om de repository te klonen:

git clone

Stap 5: I2C inschakelen

I2C. inschakelen
I2C. inschakelen
I2C. inschakelen
I2C. inschakelen
I2C. inschakelen
I2C. inschakelen

De ADS1115 ADC (Analog to Digital Converter) vertrouwt op het I2C-protocol (Inter-Integrated Circuit) om met de Raspberry Pi te communiceren, standaard is de I2C-bus uitgeschakeld, om deze in te schakelen, typt u:

sudo raspi-config

die u naar een blauw configuratievenster brengt, van daaruit, met behulp van de pijltoetsen en de enter-toets, kiest u

  1. Interface-opties
  2. I2C
  3. Ga dan naar beneden naar

Tip: verwijzen naar de bovenstaande schermafbeeldingen kan een beetje helpen! Als je nog steeds vastzit, vrees dan niet! Raadpleeg deze geweldige how-to van Sparkfun!

Stap 6: Voer Calibratethresholds uit

Voer Kalibratiedrempels uit!
Voer Kalibratiedrempels uit!

Navigeer naar de repository als je dat nog niet hebt gedaan en ga naar de map met voorbeelden met behulp van deze opdrachten:

Tip: typ 'cd Prog' en druk vervolgens op Tab, het zou de naam van de repository automatisch moeten aanvullen!

cd Progetto_One_Pin_Keypad_Python_Package

typ dan:

cd-voorbeelden

voer vervolgens het calibratethresholds-voorbeeld uit met deze opdracht:

python3 kalibreerdrempels

en volg de instructies die op de console worden weergegeven om uw bord te kalibreren. Nadat de kalibratie alle knoppen heeft doorlopen, test u uw nieuwe analoge waarden om te zien of ze werken door op enkele knoppen te drukken wanneer u wordt gevraagd om te "Begin". Als de nieuwe waarden onnauwkeurig blijken te zijn, gebruikt u Ctrl C om het programma te beëindigen en uit te voeren opnieuw.

Het kalibratievoorbeeld zou je 2 regels code moeten geven die je nodig hebt in het volgende voorbeeld, zorg ervoor dat je de console open houdt en/of kopieer ze allebei!

Stap 7: Wijzig en voer vervolgens Readkeypadwithtimeout uit

Wijzig en voer vervolgens Readkeypadwithtimeout uit
Wijzig en voer vervolgens Readkeypadwithtimeout uit
Wijzig en voer vervolgens Readkeypadwithtimeout uit
Wijzig en voer vervolgens Readkeypadwithtimeout uit
Wijzig en voer vervolgens Readkeypadwithtimeout uit
Wijzig en voer vervolgens Readkeypadwithtimeout uit

Nu uw One Pin Keypad is gekalibreerd, is het tijd om het in gebruik te nemen. Hoewel je dit vanaf de opdrachtregel met vi zou kunnen doen, gebruik ik persoonlijk liever een IDE zoals IDLE.

Open IDLE (u wilt de python3-versie) en pas de volgende regels aan:

Weet je nog die analoge waarde-array die je hebt gekopieerd? Vervang regel 13 (zie hieronder) door die nieuw gekalibreerde analoge waarden.

# ex: my_thresholds = [gekalibreerde waarden zouden hier zijn]

wordt vervangen door dit:

my_thresholds = [225, 2116, 3904, 5200, 6300, 7350, 8450, 9325, 10000, 10750, 11500, 12100, 12550, 13100, 13800, 14250]

Voeg vervolgens de volgende regel code toe na regel 23, (zie hieronder):

keypad.useCalibratedThresholds(my_thresholds)

wordt toegevoegd na regel 23:

# ex: keypad.use_calibrated_thresholds (uw arraynaam)

regel 22 t/m 24 er uiteindelijk zo uit laten zien:

# Als er gekalibreerde waarden worden gebruikt, gebruik dan de onderstaande_calibrated_thresholds:

# ex: keypad.use_calibrated_thresholds (uw arraynaam)

keypad.use_calibrated_thresholds(my_thresholds)

Voer daarna de code uit en test deze door op enkele knoppen te drukken! Voel je vrij om de voorbeeldschets aan te passen aan je projecten! Onthoud dat read_keypad_with_timeout de ingedrukte knop teruggeeft als een teken en de time-out is ingesteld in milliseconden! Als u geen time-out wilt, gebruikt u het toetsenbord. NO_TIMEOUT constant.

Stap 8: Hoe het eenpins toetsenbord werkt

Hoe het eenpins toetsenbord werkt
Hoe het eenpins toetsenbord werkt
Hoe het eenpins toetsenbord werkt
Hoe het eenpins toetsenbord werkt

Een groot deel van het ontwerp van het One Pin Keypad is gebaseerd op Hari Wiguna's implementatie van een spanningsdeler om een unieke analoge waarde te verkrijgen voor elke toets in een 16-pins toetsenbord. Het ontwerp van One Pin Keypad blijft grotendeels hetzelfde, met een paar tweaks. Als je een geweldige tutorial wilt over hoe het One Pin Keypad werkt, kun je hier de geweldige video van Hari Wiguna bekijken!

Stap 9: Conclusie

Conclusie
Conclusie

In deze instructable hebben we besproken hoe u aan de slag kunt met uw One Pin Keypad-bord. Nu, de nieuwsgierigen onder jullie hebben zich misschien afgevraagd waarom de readKeypadInstantaneous-voorbeeldschets nooit werd gebruikt, de reden is dat het niet zo handig is, omdat de knop moet worden ingedrukt wanneer het wordt aangeroepen, de functie readKeypadInstantaneous() wordt voornamelijk gebruikt om te vereenvoudigen readKeypadWithTimeout() in de bibliotheek. Als het je aandacht trekt, voel je vrij om het eens uit te proberen. Veel succes met hacken!

Als je vragen hebt, laat dan hieronder een reactie achter of stuur een e-mail naar [email protected]. Al het beste, Progetto Company P. S. Zoals beloofd, een link naar de Eagle Files van het bord.

Aanbevolen: