Stap 24: Selectie van de onderdelen, ontwerpen van het schema en PCB
In het begin van dit instructable ik mits een lijst van onderdelen die in het elektronica-gedeelte van dit project zullen worden gebruikt.
Net als extra informatie, de lijst met onderdelen die is het resultaat van drie iteraties van het schema en PCB. Te bereiken van het uiteindelijke ontwerp ik drie versies van het schema, drie versies van de PCB ontworpen, handmatig vervaardigd drie enorme dubbele Dubbelzijdige PCB's, met inbegrip van boren, vias en solderen onderdelen. Het kostte me wat tijd om al dit te doen, maar ik niet geven en bereikt een definitief ontwerp van werken.
Graag voor u, die u niet hoeft te doorlopen allemaal omdat nu het ontwerp van werken volledig open source is en u gewoon gebruik van het maken kunt het of werken aan uw eigen wijzigingen (verschillende schakelopties, verschillende lay-outs, extra functies, enz.)
Zoals eerder vermeld gebruikte ik KiCAD voor de elektronica en PCB design. Alle KiCAD projectbestanden en schema en PCB in PDF-formaat kan worden gedownload in mijn Github.
Korte uitleg van de elektronica: HacKeyboard heeft een enkele microcontroller, de PIC18F4550, die ingebouwde USB heeft. Het woord 'microcontroller' en de verwijzing 'PIC18F4550' lijkt misschien ingewikkeld of vreemd maar het is in principe de dezelfde soort dingen als de ATMega328 die u vindt op Arduinos, maar van een andere fabrikant, met een verschillende architectuur en verschillende ingebouwde functies. Met dat gezegd, is de microcontroller verantwoordelijk voor het beheer en de controle van alles op het toetsenbord:
- De matrix schakelaar lezen: Rekening houdend met dat een toetsenbord een grote matrix van switches is, zijn elke kolom en elke regel aangesloten op een verschillende IO (input/output) pin op de microcontroller. De microcontroller draait elke kolom op op elke tijd, één voor één en leest de niveaus van de logica in alle het spoorlijnen, evalueren welke schakelopties in die kolom worden ingedrukt. Vervolgens wordt die kolom uitgeschakeld en opbrengst voor de volgende. Dit gebeurt meerdere keren per seconde. Het is een erg snel proces dat altijd op de microcontroller draait. Zodra de toetsaanslagen worden geëvalueerd output het de respectieve tekens via USB;
- Controle van de verborgen USB Flash Drive: Het flashstation wordt gevoed via de MAX682, die is een 5V-lading pomp regulator dat een pin 'Afsluiten heeft'. Als u wilt activeren of deactiveren van de USB flash drive, de microcontroller activeert of deactiveert deze pin, draaien in- of uitschakelen.
- Opslaan van macro's en belangrijke log: In het circuit is er een 24AA512 seriële EEPROM (64 K x 8 bits) die een geheugen dat wordt gebruikt is voor het opslaan van alle macro's en het logboek van de kernactiviteit. Wanneer in besparing modi, de microcontroller, die is verbonden met het geheugen via een serieel protocol (SPI) naar stuurt posities specifieke geheugen de sleutels die moeten worden opgeslagen. Dit geheugen houdt dat de gegevens, zelfs als u de verbinding verbreken van het toetsenbord. In de standaard firmware elke positie van de macro kan het opslaan van maximaal 150 bytes en de rest van het geheugen wordt gebruikt door de belangrijkste logger. Dit kan eenvoudig worden aangepast door alleen het veranderen van de waarden van sommige adres in de verstrekte broncode.
- Controle van de WS2812B RGB LED's: de microcontroller is ook verantwoordelijk voor het beheersen van de RGB LED's. Deze LED's hebben hun eigen serieel protocol waar een '0' wordt vertegenwoordigd door een puls met een bepaalde timing en een '1' wordt vertegenwoordigd door een ander pulse met een verschillende timing (Controleer het gegevensblad timings). De LED's hebben een te bouwen in 3 bytes geheugen waar ze de 3 waarden opslaan voor rood, groen en blauw. Deze waarden moeten in een bereik van 0 tot 255. Ze hebben ook een ingebouwde shift register, waarmee ze informatie doorgeven aan de volgende LEDs. Hebt u slechts 2 WS2812B LEDs, u uw microcontroller verbinden met de gegevens invoer pin door slechts één van hen en u de gegevens invoer pin van de tweede naar de uitgang-pins van gegevens van de eerste verbinding. De microcontroller zal moeten verzenden 6 bytes, 3 voor elke LED, vanaf de tweede LED (meer verre in termen van verbindingen). De eerste LED zal de informatie doorgeven aan de tweede.