HacKeyboard, ett mekaniskt tangentbord byggs från grunden (33 / 42 steg)
Steg 33: Utveckla koden för att göra det hela fungerar
I det här steget behöver du inte göra något. Jag skriver bara om det så att du vet hur koden gjordes.
Jag beslutade att använda JAL för att utveckla firmware eftersom jag inte hade mycket tid att få det att fungera för Lissabon Mini Maker Faire. JAL, eller bara ett annat språk, är ett högnivåspråk för ett antal Microchip PIC mikrokontroller som föregår Arduino ramen. Som en kuriositet var Massimo Banzi, en av grundarna Arduino , en tidig JAL utvecklare. En annan anledning till varför jag beslöt att försöka JAL var att det fanns en USB HID-enhet exempelkod i JALlib som slutade göra de första stegen i att utveckla firmware för ett komplett tangentbord mycket lättare.
Innan du börjar utveckla koden gjorde jag först lite forskning om hur människor brukar göra det i de andra DIYkeyboard projekt. AVR-Keyboard projekt om Github från Fredrik Atmer var särskilt användbara som inspiration. I princip jag portat koden till JAL med några ändringar och sedan La alla extra funktioner till HacKeyboard. En rolig sak är att jag var tvungen att skriva en funktion för att styra WS2812B lysdioderna från grunden... roligt eftersom jag inte hade ett oscilloskop mäta timings på utgångsstift av PIC18F4550 och skulle i princip gissa timings från MCU frekvens och anvisningar per instruktion cykel. Efter några försök lyckades jag få det att fungera.
Du kan kolla källkoden i min GitHub, inklusive den pre-kompilerat hex filen.
Tillval: Som jag nämnde, behöver du inte göra någonting i det här steget om du inte vill ändra något i koden. Om du vill ändra något måste du hämta JALlib från JALlib Github. Att sammanställa bara använda ett kommando med följande struktur:
$. /(path to compiler) + (sökvägen till filen .jal) + (-s) + (sökvägen till JALlib bibliotek) + (alternativ)
Exempel från inne i kompilatorn katalogen:
. / jalv2 file.jal -s... /lib/-ingen-variabel-återanvända - nr-säkring
Obs: variabeln-ingen-variabel-återanvändning kommer att använda mer PIC minne, men det kommer att sammanställa snabbare.
Kommandot ovan är för Linuxen befaller fodrar men bör vara mycket lik för Windows.