I gang med Microcontrollers Del 1: Introduktion
2009
I denne første artikel af ”I gang med Microcontrollers” vil jeg give en hurtig introduktion til hvad microcontrollere er og se lidt på hvilke muligheder der er tilgængelig for at kommer hurtigt og let i gang med microcontrollere.
Når man gerne vil have mulighed for lidt mere logik i sin elektronik end hvad man lige som gennemsnittet kan formåe ved at bygge kredsløb fra bunden, er det næste skridt at få fat i en microcontroller som kan eksekverer noget kode.
Hvad er en Microcontroller
Simpelt sagt er en microcontroller en computer på en chip, den har et lager, en mængde ram, en CPU og har nogle I/O muligheder. Det selvfølgelig ikke noget nær det du har i din hjemmecomputer, men ideen er den samme bortset fra at hvor processoren i din computer har brug for ekstra hardware for at virke så fungerer microcontrolleren som en selvstændig enhed og er normaltvis kodet til et specifikt formål, hvorimod din computer kan bruges til mange forskellige formål.
Hvis du før har arbejdet lidt med microcontrollere har du måske hørt om PICs og/eller Atmel AVR, som er to forskellige mærker af microcontrollere, man kan sammenligne det lidt med Intel og AMD når man snakker CPUer.
Hvad skal man vælge
Ligesom så mange andre ting så er valget mellem en PIC og en Atmel AVR lidt en religions krig som jeg ikke har tænkt mig at give mig i kast med her.
Det eneste der lige for mig kan få mig til at vælge den ene frem for den anden, er at til Atmel AVR er der en fri og åben C compiler tilgængelig, som konstant bliver vedligeholdt og et stort udvalg af tilgængelige AVR enheder og som fungerer på tværs af alle gængse computer du har lyst til at arbejde ved.
Hvorimod det tætteste man kommer på noget lignende til PICs er en gratis studie udgave som eftersigende mister nogle features efter en uge. (helt præcis hvilke aner jeg ikke)
En stor foreskel på de to C compilere til henholdsvis PICs og AVRs er også at til AVRs der er det ”ægte” C kode hvor du kan gøre de samme ting som du vant til i C, hvilket også gør det nemmer at portere eksisterende kode.
Er man lidt mere hardcore kan man selvfølgelig også skrive assembler kode til på PICs og AVR, har endnu ikke selv gjort dette men kan forstå at assembler til AVR er nemmere at arbejde med en til PICs.
At komme i gang
Den nemmeste måde at komme i gang med enten PICs eller AVRs på er ved at købe et microcontroller board, disse kan fås i mange udgaver alt efter hvilke microcontroller du ønsker atr arbejde med.
Det mest kendte board type inden for AVRs for tiden er nok Arduino som er nogle simple små boards med enten en Atmega168 eller Atmega328 alt efter hvilket board du vælger. Arduino er en åben platform hvor hver eneste detalje du har lyst til at vide om boardet og den bootstrap der ligger på chipen er frit tilgængelig.
En Arduino kodes i C, hvilket kan gøre enten via den JAVA baseret editor som ligger på Arduino’s hjemmeside som gør det nemt for dig at compile din kode og uploade den til microcontrolleren, eller via hvilken som helst anden editor du har lyst til.
Vil man derimod hellere lege med PICs kan jeg anbefale at man ser nærmere på det board der hedder PICAXE, som baserer sig på forskellige typer af PICs alt efter hvilken PICAXE man vælger. PICAXE kodes hovedsagelig i BASIC via en der tilhørende editor som medfølger hvis man køber et starter kit.
Modsat Arduino er man pr. standard tvunget til at bruge Windows for at kode sin PICAXE, dog findes der en compiler til Linux som dog ikke er helt så up-to-date og optimeret som den til Windows.
Så hvad skal man vælge
Hvis man ser bort fra eventuelle begrænsninger i valget af udviklings miljø, hvad skal man så vælge, her er det stadig lidt en smags sag, men der er dog visse fordele ved Arduino i forhold til PICAXE som jeg ser det.
Først og fremmest så kan PICAXE ikke arbejdet med kommatal her er det kun heltal.
Med en PICAXE er man begrænset til at have ”x” antal variable at arbejde med, afhængig af hvilke chip man har. (Så vidt jeg har kunne finde ud af med min PICAXE)
Men derimod så i BASIC sproget til PICAXE har man allerede en masse prædefineret metoder til forskellige ting blandt andet til styring af servoer og til at kommunikerer med forskellige typer sensorer. Det er ikke helt tilfælde med Arduino hvor man selv skal skrive lidt mere for at opnå de samme funktioner.
Så hvad skal man vælge, tja er du helt nybegynder og vil du gerne starte et sted hvor tingene er gjort lidt nemmere så vil jeg foreslå at du anskaffer dig en PICAXE, det er let og meget lige til, dog hvis man vil få det fulde udbytte kræver det at du sidder på en Windows maskine.
Har man lidt mere blod på tanden og lid mere tålmodighed og vil man gerne arbejde andet steds end på Windows, måske på sin Mac eller Linux box, så vil jeg foreslå at man tager fat i en Arduino eller anden AVR baseret board.
Selvfølgelig er man lidt mere hardcore så dropper man de færdig bygget boards og køber en chip og der tilhørende tilbehør og laver det hele fra bunden.
Næste gang vil vi se nærmere på en ultralyds afstands sensor og hvordan vi snakker med denne på henholdsvis et PICAXE og et Arduino board.
