Få de daglige nyheder fra Version2 og Ingeniøren. Læs mere om nyhedsbrevene her.

close
Ved at tilmelde dig accepterer du vores Brugerbetingelser, og du accepterer, at Teknologiens Mediehus og IDA-gruppen lejlighedsvis kan kontakte dig om arrangementer, analyser, nyheder, job og tilbud m.m. via telefon og e-mail. I nyhedsbreve, e-mails fra Teknologiens Mediehus kan der forefindes markedsføring fra samarbejdspartnere.
rumfart på den anden måde cs banner bloghoved

Nyt EDA-værktøj

Elektronikgruppen i Copenhagen Suborbitals har benyttet den lidt stille periode efter opsendelsen af Nexø II til blandt andet, at finde ud af hvilken EDA (Electronic Design Automation) software der passer os bedst. Valget er faldet på KiCad, et freeware schematic capture og PCB layout værktøj, der vedligeholdes og udvikles af uafhængige programmører.

At KiCad er gratis er selvfølgelig befordrende for et kandidatur til ophøjelse til vedtaget standardværktøj her i foreningen, men andre af KiCads specifikationer har været stærkt medvirkende til elektronikgruppens valg.

En af disse er muligheden for at kunne arbejde med symbol- og komponentbiblioteker der ligger centralt på en GIT-server. Så slipper vi for at skulle synkronisere lokale biblioteker ved udveksling af designs i forskellige stadier af udvikling, og kan også sikre en vis standardisering at vores foreningsdefinerede komponenter.

En anden vigtig fortaler for at vælge KiCad er muligheden for at inkludere 3D-repræsentationer som en del af komponentdefinitionerne. Også Kicads velfungerende funktion til import af Eagle designs er en fortaler, mange af foreningens konstruktioner er i dette format, og mange af elektronikgruppens medlemmer har arbejdet med dette værktøj.

Vi bruger i stigende grad de muligheder som vores adgang til SolidWorks giver os, til at dele konstruktioner på tværs af design- og arbejdsgrupper, hvilket både letter overlevering af data og specifikationer, og mindsker antallet af grimme overraskelser i svær grad.

Der er selvfølgelig en vis mængde frustrationer man skal igennem, når man skal vænne sig til at bruge et nyt EDA-værktøj, og ingen i gruppen er vist sluppet for at sidde med et meget sammenbidt udtryk, når endnu en finurlighed (for nu at sige det pænt) ved værktøjets brugergrænseflade dukker frem af dokumentationens tåger.

Vi har fundet ud af at KiCad version 5 kan de ting vi efterspørger. Men vi har også fundet ud af at den tilgængelige dokumentation er skrevet til version 4, så mange af knapperne og fremgangsmåderne er ændret når man så prøver at bruge beskrivelserne til at arbejde videre inde i værktøjet.

For at lære værktøjet og dets finurligheder at kende, er det bare at gå i gang med et design, fra servietskitse over schematic capture og PCB layout, til færdig 3D-model og funktionsafprøvet printplade.

For forfatterens vedkommende faldt valget af prøvekludsdesign på et tastaturinterfaceprint. De indledende øvelser på et medleveret eksempeldesign viste, at de hotkeys som man gerne vil bruge ligger i øst og vest, og man skal flytte hånden hid og did, mens man arbejder.

Under diagramtegning, når man lægger forbindelser mellem komponenterne, bruges tasterne W, K og J i én uendelighed, og den håndstilling er ærlig talt trættende i mere end middelsvær grad.

Ved printudlægning bruger undertegnede tasterne ESC, D, PgUp og PgDn til at flytte rundt på baner og via'er, så hånden skal uafladeligt flyve fra den ene side af tastaturet til den anden.

Jamen, så griber man da bare lige et numerisk tastatur fra hylden med PC-tilbehør, og laver sine egne hotkey-definitioner. Nej, det finder man ud af, at man ikke bare lige gør.

For det første bliver piltasterne på det numeriske tastatur af KiCad altid opfattet som piltaster (i hvert fald på Windows 10), uanset om tastaturet er i NUM LOCK-modus eller ej. Piltasterne kan man ikke anvende som hotkeys i KiCad, og så mister man 4 af de 18 taster på tastaturet.

For det andet taler vi i gruppen stadig meget om hvordan man bruger værktøjet, og hjælper selvfølgelig hinanden med at lære betjeningen at kende. Hvad den ene bøvler med, har den anden allerede mestret, og kan forklare. Og hvis man har hver sit sæt hotkeys i hovedet (eller manualen), bliver det hurtigt temmelig forvirrende at tale sammen.

Det gælder altså om at få flyttet hotkeys rundt uden at ændre (alt for meget) på hotkey-definitionen. Så er der kun én vej frem, hvis man insisterer på at ville bruge et numerisk tastatur til at løse opgaven med at undgå den flyvske håndstilling: Det numeriske tastatur skal have programmérbare taster.

Jamen, det findes allerede. Det hedder et "Gamer Keypad", og kan købes henne på hjørnet for nogle hundrede kroner. Problemet er løst. Og det er selvfølgelig korrekt. Men det lærer man bare ikke betjeningen i KiCad at kende af, og det var jo ligesom det, der var en stor del af ideen.

Illustration: Bo Brændstrup

Kicad diagram af det programmérbare numeriske tastatur.

Illustration: Bo Brændstrup

Printet som det ser ud i printudlægningsdelen og i 3D-visningen.

Illustration: Bo Brændstrup

Det færdige print sammenholdt med Kicads 3D-visning.

Så det endte med en Arduino-understøttet konstruktion. Forfatterens kompetencer indenfor algoritmekonstruktion er nogenlunde lige så skarpe som bedstemors mest slidte kagerulle, så endnu en gang må den italienske microcontrollerkort-familie holde for. Valget af processor faldt på en Atmel ATMEGA32U4, da den uden videre dikkedarer, via Arduinos IDE, kan bringes til at lege tastatur på en USB-port. Sådan en processor sidder til daglig i en Arduino Leonardo. Og der lå sandelig et eksemplar i rodekassen! Tastaturet fra tilbehørs-hylden blev dissekeret og fundet anvendeligt til formålet.

Digikey har en glimrende serie små videoklip, leveret af Sparkfun, der giver en god introduktion til Kicad. Hvis man starter med at se dem igennem, er man faktisk godt i gang.

Der blev hurtigt strikket et diagram sammen til at afkode tastaturets 4x5 matrice. For en sikkerheds skyld blev der tilføjet 2 små 5-vejs navigationspinde, så eventuelle gode ideer nemmere kan realiseres på et senere tidspunkt. Tilpasning eller justering af diagrammet, nærmere bestemt valg af portben på ATMEGA'en så det var nemt at forbinde de forskellige komponenter på printet, var let og enkel, hvilket straks gav et par stjerner i karakterbogen.

Printudlægningen gik også tilforladeligt, men selvfølgelig ikke helt uden tænders gnidsel og opgivende suk. Hvorfor kan man for eksempel ikke flytte en via, medmindre man flytter dens center udenfor det areal den dækker? Selvom der er gridpunkter indenfor det dækkede areal? Argh! Der er for forfatterens vedkommende en masse indgroede editeringsfilosofier der skal aflæres, eller sidestilles med nye, så selv med mere end femogtyve års erfaring indenfor avanceret EDA, er der en indlæringskurve der skal overkommes.

Programmeringen tog så en del længere tid end den praktiske konstruktion, ikke kun på grund af bedstemors kagerulle, men fordi at også arduinodokumentationen, ligesom Kicads, er ude af trit med den opdaterede verden. Blandt andet bruger Arduino i deres keyboardbibliotek en anden ASCII-tabel end den tabel dokumentationen refererer til, og nogle af standardkaraktererne findes ikke; men det er en hemmelighed man selv skal afdække.

Men det er lykkedes at lave et tastatur, baseret på et billigt standard numerisk tastatur af kinesisk oprindelse, der opfylder de opstillede krav. Den ene lille navigationspind bruges til at vælge modus, passende til de fire hovedmodus i KiCad: Diagramtegning, symboldefinitionseditor, printudlægning og komponentdefinitonseditor. NUM LOCK-tasten har beholdt sin velkendte funktion som den eneste tast, alle andre er nu givet alle mulige "værdier" og små makro-agtige tastesekvenser. Tasternes "værdier" defineres i nogle tabeller placeret i den sketch der udgør Arduino-delen. Ikke supernemt og servicevenligt, men på et acceptabelt nørd-niveau for undertegnede.

Og tastaturet gør for forfatterens vedkommende faktisk betjeningen af Kicad nemmere. Meget kan udføres med hotkeys, så der ikke ustandselig skal findes rundt i højrekliksrullemenuer, eller klikkes på knapper der er placeret i brugerfladens yderkanter. Der har da været småjusteringer af tastedefinitionstabellerne undervejs (og der kommer sikkert flere hen ad vejen), og det har også været en fordel at lave et lille oversigtsskema til at lægge i bekvem nærhed af tastaturet, men det gør ikke noget.

Illustration: Bo Brændstrup

Sådan kom det programmérbare numeriske tastatur til at se ud.

er et af flere medlemmer af Copenhagen Suborbitals, der skriver på denne blog.
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først

Hvis software ender med at give problemer i fremtiden, eller der ønskes flere/nye features kan i taget et kig på qmk: https://qmk.fm/
Det er "opfundet" til hjemmebryggede "mekaniske" tastaturer, og har netop Mega32u4 som en af de understøttede processorer. For at understøtte et board som det viste vil der umiddelbart ikke skulle andet til end et par filer der definerer benforbindelser på controlleren, og så kan der buildes.

  • 1
  • 0

Der mangler ikke noget stelplan, for det er valgt fra som en del af øvelsen.
Og heldigvis da, ellers havde det været endnu sværere at klistre et krystal og et par kondensatorer på, efter at jeg indså at der ikke er intern oscillator i en 32U4.
Det er i øvrigt irriterende at Kicad laver både 0 grader og 45 grader heat reliefs, tilsyneladende ret tilfældigt, når der forbindes til et copper pour areal.
Det ville jeg gerne kunne styre. Keep in- og keep out-arealer savner jeg også.

  • 2
  • 0
Bidrag med din viden – log ind og deltag i debatten