Konvertera ett ZX82 spektrum tangentbord till ett utbyggbart USB-tangentbord med Arduino (2 / 3 steg)
Steg 2: Bygga tangentbord hårdvara gränssnitt
Arduino LeoStick har fångat min öga ett tag; Det är mycket kompakt och har USB-anslutningen på PCB - verkligen praktiskt! Det gör den perfekt för trånga utrymmen. Alternativt Arduino Leonardo skulle fungera lika bra och stöds av Arduino IDE som standard.
Till finna ut hur tangentbordet anslutningarna fungerade, jag hittade detta schema (bläddra till rubriken "Tangentbordet Scanning"), som i princip ger mig följande bitar av information:
- Filma med 5 kontakter har Data linjer
- Data raderna har pull-up motstånd till + 5V
- Filmen med 8 kontakter har adressraderna
- Tangentbordet är ordnade i en 5 x 8 matris (Data x adress)
Jag ska ta itu med hur en matris fungerar i nästa avsnitt som jag inte omfatta skriver mjukvaran, det räcker att säga att viktigt nu är att data rader individuellt hålls hög. All denna information är schematiskt representerat i det första diagrammet ovan.
Ledningar till Arduino
Jag har tagit den PIN-kod för att du ska ansluta Arduino stiften i ovanstående diagram. Jag rekommenderar löder kablar och motstånd först, sedan placera PCB ner där du kommer att ha dem (helst de kommer sitta i övre fördjupningen av locket). På så sätt kan du se till att kontakterna metallkontakterna på sidan av membranet som har synliga anslutningar innan du löda. Placeringen av de anslutningar som behövs för att vara flexibla för att inte att tug eller stress tangentbord membranet.
Skära ner två tomma prototyping PCB vara tillräckligt stor för att bifoga tangentbord kopplingar, plus motstånd och sladdar till Arduino. Den 30x45mm som föreslås bör vara en bra passform. När du gör det, lämna din Arduino ledningar längre än du behöver. Du kan förkorta dem när du har sorterat ut placeringarna av allt. Min PCB med ZX Spectrum-kontakter visas ovan i den andra bilden. Motstånden på data PCB (grön, höger) alla Anslut från anslutningen till gula 5V tråd på toppen av PCB.
Blå adressraderna är de ändras av registeransvarige (vår oberoende variabel) och de gröna data linjerna är de testade (vår beroende variabel). Så adressraderna ansluta till digital stift (markerade med siffror 0-13) och data linjer är anslutna till analog ingång stift (märkt A0-A4) i ovanstående sekvens.
I den tredje bilden placeras PCB bara i en Arduino Uno så att du kan se hur det ser ut trådbunden upp. Om du använder Leonardo, är pin layouter för Leonardo och Uno samma, så att du kan kopiera detta exakt. Du kan se data rader i grön går till A0-4 stift, blå adressraderna ska D2-9 stiften och gula + 5v tråd ska en VCC anslutning. Använda digital stift 2-9 i stället för 0-7 eftersom digital stift 0 och 1 används för seriell anslutning (Tx och Rx) som används av USB-anslutningen. Som sådan, lämna digital stift 0 och 1 osammanhängande(Använd stift 2-9). När lödas till LeoStick och lade i locket, bör Spectrum-USB Arduino tangentbord kortet likna den fjärde bilden. Observera att banden ännu inte är ansluten.
Testa anslutningarna
I detta skede, testa din lödning genom att ange alla pin nummer (< pin >) till utgång för både analoga och digitala stiften:
pinMode (< pin >, OUTPUT);
och ställ sedan in dem till + 5V:
digitalWrite (< nål >, högt);
På så sätt kan du köra över alla tangentbord anslutningar i kontakterna (och den + 5V sidan av resitors) med en multimeter och check för + 5V, att säkerställa goda förbindelser. En gång nöjd, fastställa PCB i linje med membran anslutningar med hjälp av en limpistol som visas i de slutliga bilderna ovan. När de är säkert, sedan kan du försiktigt ansluter membranet tillbaka i. Eftersom membranet är så känsliga, hålla filmerna som skyddade och uncreased som möjligt genom att försiktigt packa dem i rymligare övre delen av övre fallet som visas. Maskeringstejp kommer försiktigt hålla dem platt så att kontroll flexar och minimera rörelse medan ärendet öppnas och stängs. Det är hårdvaran redo att gå!