Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen foregår i en slags tilrettet C++ programmering til AVR-Microcontroller-familien. En Microcontroller er en lille Computer. Den har indbygget CPU og program og datahukommelse. Plus en række enheder som tællere, adgang til dens ben ( Pins ) mm. Computersystemer: Microcontroller Et system kan være på 1 chip, et print-board, eller flere boards Alle dele er bygget ind i samme chip Generel Blok- diagram for et Microcontroller system En uc skal jo have nogle input fra fx nogle sensorer, kontakter mm. Og så skal den jo styre et eller andet. Fx en motor, lysdioder eller fx et display. Af: Valle Thorø Fil.: Side 1 af 16
Her en skitse, hvor pins til omverdenen fra Controlleren er vist. http://embeditknow.blogspot.dk/2012/07/microprocessor-vs-microcontroller.html uc-er kan se forskellige ud. Der er et hav af dem. Her et eksempel på en lille, billig uc, og en lidt større. De kan det samme, den store har blot flere ben på den store! Af: Valle Thorø Fil.: Side 2 af 16
AT89C4051 & AT89S8253 Af: Valle Thorø Fil.: Side 3 af 16
Microcontrollerens pins kan tage digitale signaler ind fra tilsluttede enheder, men også sende signaler ud. 0 eller 5 Volt. Kontrolleret af et program lagt ind i controlleren. To microcontrollere kan forbindes sammen via seriel transmission. Det er det samme der sker, hvis man kommunikerer fra uc-en til PC-en. Fra: http://www.mikroe.com/en/books/8051book/ch1/ Det betyder at man kan få forskellige enheder til at snakke sammen. Af: Valle Thorø Fil.: Side 4 af 16
Her vist et eksempel, men bemærk, processoren er fra en anden familie. En uc skal have en clockfrekvens for at arbejde. Fx 16 MHz som vore Arduino kit. Dvs. at en uc kan udføre mere end 1 million ordrer i sekundet. Procedure for programmering: Programmet som uc-en skal køre, dvs. kildeteksten skrives i et sprog, kaldet C Programmet oversættes til en HEX kode fil ( 8 bit ) HEX-filen skal overføres til uc en. ( uploades via USB-kabel ) - - - - - - - - - - Ideen er så at der skal skrives et program, der kan kontrollere handlinger, fx afhængig af inputsignaler. Eksempler: Af: Valle Thorø Fil.: Side 5 af 16
Forskellige input & output der kontrollerer Fx: hvis der trykkes på en kontakt, så skal en lysdiode tændes i 10 sekunder, - og derefter skal et relæ tænde for 230 Volt til et varmeapparat i 10 minutter. Arduino-kit Enormt genialt. Koster kun 150 kr. Gratis PC-software, IDE. Sluttes direkte til PC via USB En gave til rigtige nørder som os Programmeres i Højniveausprog C++ dialekt Af: Valle Thorø Fil.: Side 6 af 16
Kittet er ikke særligt stort Arduino Sketch Hent programmet fra: https://www.arduino.cc/ Fås både til Windows og Æbleskrog: Når softwaren er downloadet og installeret ser et program fx således ud: Af: Valle Thorø Fil.: Side 7 af 16
Eksempel på kode: Opbygning af kildetekst: Der er mange programeksempler med softwaren!! Find eksempel på en blinkende LED. Af: Valle Thorø Fil.: Side 8 af 16
En Kildetekst opdeles i 4 eller flere dele. Øverst ses først en Header, dvs. en kommentar-del, hvor man med ren tekst forklarer hvad programmet skal gøre. Hvem der er programmør, og dato osv. Kommentar indsættes mellem /* og */. Bruger man kun 1 linje kommentar, kan man i stedet bruge //. Herudover kan der være funktioner, eller Subrutiner. I alle programmer skal der være mindst én setup og én loop-del. Her en anden Graf, over en programstruktur. Kilde: Google: lecture_programming_microcontrollers.ppt eller: http://www.search-document.com/ppt/1/1/mico-controller-programming.html IDE, Udviklingssoftware / Knapper Gennemgang af funktioner i softwaren, IDE: Af: Valle Thorø Fil.: Side 9 af 16
Verificer. Dvs. Compiler ( oversæt ) programmet, og tjek for sproglige og syntax-fejl. Compiler og Upload til Arduino-hardwaren. I bunden kan ses, hvor stor fil, der uploades. Husk først at vælge det rigtige board, og rigtige Com-port. Vælg Tools / Board, og Tools / Serial Port. Når der er uploaded, vil det nye program automatisk starte med at køre!! Ny kildetekstfil. ( sketch ) Åbn en gemt fil fra Sketchbook. Gem fil Indstilling af Boardtype og COM-Port. For at man kan Compilere et program, skal man vælge den rigtige kort, - og der skal vælges den rigtige COM-port. Arduinoboardet får ved tilslutning automatisk tildelt en COM-port. Den kan være forskellige fra gang til gang. Se evt. en portoversigt i PC-ens Enhedshåndtering. Af: Valle Thorø Fil.: Side 10 af 16
Hjælp: Derude på nettet er der et hav af hjælp at finde. Men på Arduinos hjemmeside er der også ret megen hjælp til programmering. Vælg Hjælp / Reference. Se guide: http://arduino.cc/en/guide/windows Eksempel på et program til et LCDdisplay Bemærk, at der er forud-bestemt hvilke interfacepins, der skal bruges. Men disse kan ændres. Vælg Help / reference for at se muligheder i kodeskrivning. Sketch-book. Af: Valle Thorø Fil.: Side 11 af 16
De opgaver, man selv laver, gemmes i en såkaldt Sketch-book. IDE en opretter en mappe, og i mappen ligger filen, der får samme navn som mappen. Eksempler: Opgaver gemmes i en Sketchbook: Obs.: Brug aldrig de danske æ, ø og å til filnavne, heller ikke i fil-stien. Af: Valle Thorø Fil.: Side 12 af 16
Når man programmerer er det en fordel at bruge mange subrutiner Det forenkler oversigten over ens program og fejlretning. Og giver en bedre programstruktur. Main Program Call Subrutine Call Subrutine Subrutine 1 Do something Return Subrutine 2 Do something Return For at det er meget lettere at komme i gang med at programmere, har jeg lavet nogle kits. De skal bare forbindes med ledninger til de rigtige stik. Benforbindelserne er vist herunder. Af: Valle Thorø Fil.: Side 13 af 16
Bemærk, at der er forskellige versioner af mine kits. Se min hjemmeside : Se på min hjemmeside: Instrumenter / Arduino-kits: http://vthoroe.dk/elektronik/instrumenter/arduino_kits.pdf Arduino IDE Debug Monitor! En af de smarte indbyggede funktioner er, at Kittet kan sende data tilbage til PC-en og skrive i et vindue. Det bruges fx til at Debugge programmer. Et andet eksempel!! Af: Valle Thorø Fil.: Side 14 af 16
Diverse Applications Det er let at tilkoble fx displays: Hvis USB er tilsluttet, kan kittet køre direkte fra PC ens power. Hvis den skal køre uden USB, skal den forsynes den fra en netadapter, 7 12 Volt, med plus i midten: Af: Valle Thorø Fil.: Side 15 af 16
Arduinoens portben kan forbindes direkte til et fumlebrædt eller andre komponenter Processorens pins er ført ud til nogle hunstik, hvorfra signaler kan videreføres med nogle ledninger til et fumlebrædt. Download evt. kompendium: http://vthoroe.dk/elektronik.htm#arduino Her er der også en mængde andre ting omkring Arduino!! Obs: Det kan evt. give problemer at installere programmet og USB-drivere til kittet. Arduino opgaver til teknologi: http://vthoroe.dk/teknologi.htm#arduino Eller gå ind på min side. Klik på teknologi, og derefter på Arduino. Af: Valle Thorø Fil.: Side 16 af 16