HacKeyboard, ett mekaniskt tangentbord byggs från grunden (24 / 42 steg)
Steg 24: Att välja komponenter, utforma schematiskt och PCB
I början av detta instructable jag lämnat en lista över komponenter som ska användas i elektronik delen av detta projekt.
Bara som extra information, en lista över komponenter som är resultatet av tre iterationer av schematiskt och PCB. För att nå den slutliga designen jag utformat tre versioner av schematiskt, tre versioner av PCB, tillverkade manuellt tre stora Dubbelrum dubbelsidig PCB, inklusive borrning, vias och lödning komponenter. Det tog mig lite tid att göra allt detta, men jag gav inte och nådde en sista fungerande design.
Gärna för dig, kommer inte du behöva gå igenom allt det eftersom nu arbetande design är helt öppen källkod och du kan bara använda den det eller jobba med det att göra egna ändringar (olika växlar, olika layouter, extra funktioner, etc.)
Som tidigare nämnts använde jag KiCAD för elektronik och PCB design. Alla KiCAD projektfiler och schematiska och PCB i PDF-format kan laddas ner i min Github.
Kort förklaring av elektronik: HacKeyboard har en enda mikrokontroller, den PIC18F4550, som har inbyggd USB. Ordet "mikrokontroller" och hänvisningen "PIC18F4550" kan verka komplicerat eller konstigt men det är i grunden samma typ av sak som ATMega328 som du hittar på Arduinos, men från en annan tillverkare, med en annan arkitektur och olika inbyggda funktioner. Med det sagt, ansvarar mikrokontroller för att hantera och kontrollera allt på tangentbordet:
- Läsa switch matrix: Med hänsyn till att ett tangentbord är en stor matris switchar, är varje kolumn och varje rad anslutna till en annan IO (input/output) stift på mikrokontroller. Mikrokontroller tänds varje kolumn på varje gång, en efter en och läser logik nivåerna i alla rader, utvärdera vilka växlar i kolumnen trycks. Sedan det släcks den kolumnen och vinning för nästa. Detta händer flera gånger per sekund. Det är en mycket snabb process som körs alltid på mikrokontroller. När knapptryckningar utvärderas utgångar det respektive tecken via USB;
- Kontrollera den dolda USB Flash Drive: Flash-enheten drivs via MAX682, som är en 5V laddning Pump regulator som har en 'Stängningen' pin. Om du vill aktivera eller inaktivera den USB blixt driva, mikrokontroller aktiverar eller inaktiverar detta stift, aktivera och stänga den.
- Spara makron och viktiga loggar: I kretsen finns en 24AA512 Serial EEPROM (64 K x 8 bitar) som är ett minne som används för att lagra alla makron och viktiga aktivitetsloggen. När i spara lägen, mikrokontroller, som är ansluten till minne via ett seriellt protokoll (SPI) skickar till positioner särskilda minne de nycklar som skall lagras. Detta minne rymmer data även om du stänger koppla bort tangentbordet. I standard firmware varje makro position kan lagra upp till 150 byte och resten av minnet används av nyckeln logger. Detta kan enkelt ändras genom att bara ändra vissa adressvärden i den angivna källa kodifierar.
- Kontrollera WS2812B RGB lysdioder: Mikrokontroller ansvarar också för att kontrollera den RGB lysdioder. Dessa lysdioder har egna seriella protokoll där en '0' representeras av en puls med en viss tajming och en '1' representeras av en annan puls med en annan timing (kolla databladet för tidpunkter). Lysdioderna har en bygga i 3 byte minne där de lagrar 3 värdena för rött, grönt och blått. Dessa värden måste vara i intervallet 0 till 255. De har också en inbyggd skiftregister, som tillåter dem att vidarebefordra information till nästa led. Om du bara har 2 WS2812B lysdioder, du ansluta ditt microcontroller till data ingångsstift av endast en av dem och du ansluta data ingångsstift av den andra till data output stift på den första. Mikrokontroller har att skicka 6 byte, 3 för varje LED, start från den andra LED (mer avlägsen när det gäller anslutningar). Den första lysdioden kommer att vidarebefordra informationen till det andra.