Microcontroller Programmeren in C (MICPRG).

© Harry Broeders.

Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Academie voor Technology, Innovation & Society Delft groep EQ1.2.


Let op! Deze pagina bevat mogelijk verouderde informatie, kijk op Blackboard voor de meest recente informatie!


Inhoud.

Studiewijzer Studiemateriaal Sheets Voorbeeldprogramma's Practicumopdrachten

Inleiding.

Het vak microprocessorbesturingen verschaft je inzicht in de toepassingsmogelijkheden van microcontrollers. Heel veel producten en systemen zijn tegenwoordig uitgerust met een of meerdere microcontrollers die deze producten en systemen besturen. Microcontrollers worden ook wel "embedded controllers" genoemd omdat de controller volledig in het produkt of systeem is opgenomen (je ziet er aan de buitenkant niets van). Het gebruik van een microcontroller in producten en systemen heeft (ten opzichte van een volledig hardwarematige besturing) de volgende voordelen:

Omdat de producten waarin een microcontroller kan worden opgenomen sterk variëren in complexiteit en kostprijs bestaan er een groot aantal verschillende soorten microcontrollers. In de Microcontroller FAQ (Frequently Asked Questions) worden de volgende toepassingen van microcontrollers genoemd:

Embedded processors and microcontrollers are frequently found in: appliances (microwave oven, refrigerators, television and VCRs, stereos), computers and computer equipment (laser printers, modems, disk drives), automobiles (engine control, diagnostics, climate control), environmental control (greenhouse, factory, home), instrumentation, aerospace, and thousands of other uses. In many items, more than one processor can be found. Microcontrollers are typically used where processing power isn't so important. Although some of you out there might find a microwave oven controlled by a Unix system an attractive idea, controlling a microwave oven is easily accomplished with the smallest of microcontrollers. On the other hand, if you're putting together a cruise missile to solve the problem of your neighbor's dog barking at 3 in the morning, you'll probably need to use processors with a bit more computing power. Embedded processors and microcontrollers are used extensively in robotics. A special application that microcontrollers are well suited for is data logging. Stick one of these chips out in the middle of a corn field or up in a ballon, and monitor and record environmental parameters (temperature, humidity, rain, etc). Small size, low power consumption, and flexibility make these devices ideal for unattended data monitoring and recording.

Microprocessoren worden zelfs in sportschoenen toegepast!

Schoen met batterij, sensor, motor en microprocessor.
Adidas heeft een "slimme" loopschoen ontwikkeld die zich dankzij een ingebouwde computerchip aanpast aan de fysieke eigenschappen van de drager en het soort ondergrond. Als de loper vermoeid begint te worden, worden de demping en de ondersteuning groter. De fabrikant heeft drie jaar in het diepste geheim gewerkt aan een techniek die er voor zorgt dat de schoen zich gedurende de loop aanpast. De microprocessor berekent het juiste niveau van demping. Volgens Adidas is het 's werelds eerste intelligente schoen. De wereld van het lange afstandlopen en -trainen zal hier ingrijpend door veranderen, aldus de fabrikant.
Bron: Artikel uit de Telegraaf (2004). Deze schoen is niet echt een succes geworden, zie: http://en.wikipedia.org/wiki/Adidas_1 
Als je de schoen van Adidas een beetje "over the top" vindt dan moet je eens kijken naar Verb for Shoe, die kan zelfs draadloos communiceren!. Deze schoen was overigens ook geen succes (het bedrijf is niet meer online). Nike heeft een schoen die met je iPod kan communiceren, zie http://www.apple.com/ipod/nike/. September 2012 kwam deze GPS schoen in het nieuws: http://www.dominicwilcox.com/gpsshoes.htm, helaas is het alleen nog maar een prototype. In 2013 heeft Google ook een experimentele versie van een intelligente schoen gepresenteerd: http://www.artcopycode.com/#/talking-shoe.

In de EQ1.1 heb je al kennisgemaakt met de AVR ATmega32 microcontroller, een populaire 8 bits microcontroller van Atmel. (Zie: http://www.atmel.com/products/AVR/). In het onderwijsdeel MICPRG gaan we dieper op deze AVR ATmega32 controller in. We doen dit zoveel mogelijk aan de hand van concrete voorbeelden en opdrachten waarbij naast de software ook de hardware een belangrijke rol speelt. Met name de koppeling tussen de controller en zijn omgeving (de interface) krijgt de nodige aandacht. In het bijzonder de timer, de analoge en de seriële interface. Ook het werken met interrupts komt aan de orde. Bij INLMIC heb je de microcontroller in assembler geprogrammeerd. Bij MICPRG leer je om C te gebruiken om de microcontroller te programmeren. De C kennis die je bij het onderwijsdeel GESPRG hebt verworven wordt bij MICPRG gebruikt en verder uitgebreid. De voordelen van het gebruik van C ten opzichte van assembler zijn:

Globale leerdoelen.

Let op! Deze webpage is verouderd! Sinds november 2014 is de juiste informatie te vinden op Blackboard.

Na afloop van deze module:

Ervoor en erna.

Let op! Deze webpage is verouderd! Sinds november 2014 is de juiste informatie te vinden op Blackboard.

Veel vaardigheden en kennis die je hebt opgedaan tijdens INLMIC en GESPRG zul je bij MICPRG nodig hebben. De kennis en vaardigheden die je bij MICPRG gaat verwerven zul je gaan toepassen in het PROBAS project.

Onderwijsvorm.

Let op! Deze webpage is verouderd! Sinds november 2014 is de juiste informatie te vinden op Blackboard.

MICPRG bestaat uit een theoriedeel (14 uur theorieles) en een practicumdeel (14 uur/week). De theorie wordt verzorgd door Harry Broeders en het practicum wordt gegeven door Jesse op den Brouw. Klik op de namen om een mailtje te sturen. Tijdens de theorie en het practicum gebruiken we de boeken: AVR - An Introductory Course van John Morton De programmeertaal C, 4e vernieuwde editie van Al Kelley en Ira Pohl.

MICPRG omvat 84 SBU's. Als we ervan uitgaan dat het voorbereiden op de toets je ongeveer 14 uur kost dan moet je dus in 7 lesweken van dit kwartaal 10 uur/week aan MICPRG besteden! 4 uur in de week hebben wij al voor je gepland (2 uur theorie en 2 uur practicum) de overige 6 uur/week moet je dus zelf plannen!

Toetsvorm.

Let op! Deze webpage is verouderd! Sinds november 2014 is de juiste informatie te vinden op Blackboard.

Er worden voor deze module twee deelresultaten vastgesteld waarbij het eerste resultaat (tentamen MICPRG) een cijfer (1..10) is en het tweede resultaat (practicum MICPRG) een O(nvoldoende) of V(oldoende) is. Als het tweede resultaat een O is dan kan de module MICPRG niet worden behaald.

Bij het tentamen mag je boeken en al je aantekeningen gebruiken. Het tentamen bestaat uit open vragen.

Het practicum wordt in week 7 beoordeeld met Onvoldoende of Voldoende. Bij dit practicum werk je samen met een medestudent. Probeer een partner te kiezen die ongeveer net zo goed was bij de vakken programmeren in C (GESPRG) en inleiding microcontrollers (INLMIC). Als je in de loop van het practicum niet tevreden bent over de samenwerking bespreek dat dan met de practicumdocent. Ieder groepje van 2 studenten moet 6 opdrachten uitvoeren. De eerste drie opdrachten en de vijfde opdracht zijn voor iedereen gelijk en de overige 2 worden door de practicumdocent toegewezen. Het is de bedoeling dat je op dit practicum leert om een microcontroller te programmeren in C. Je kunt dit alleen leren door samen met je partner alle opdrachten uit te voeren op zo’n manier dat je het ook zelfstandig zou kunnen. Het is dus uitdrukkelijk niet de bedoeling dat je het werk tussen jezelf en je partner verdeeld. Overleg en discussieer met je partner tijdens het programmeren! Je aanwezigheid op het practicum is verplicht en wordt gecontroleerd. De practicumopdrachten worden afgesloten door een demonstratie van het werkende programma aan de practicumdocent gevolg door een evaluatiegesprek(je). De docent kan dan vragen naar de manier van aanpak, bepaalde details van jullie oplossing, achterliggende theorie enz. Het laten nakijken van een programma wat je niet samen met je partner hebt bedacht en geïmplementeerd wordt beschouwd als fraude (net zoals het spieken bij tentamens). Om het practicum met een voldoende af te sluiten moeten alle opdrachten voldoende zijn.

Een herkansing van het practicum wordt aangeboden in week 9 of 10. Dit practicum kan alleen worden herkanst in het blok dat het wordt aangeboden (EQ1.2). Als je een practicum in een ander blok wilt herkansen heb je toestemming nodig van de examencommissie van TISD.

Studiemateriaal.

Practicumomgeving.

We maken op het practicum gebruik van AVR Studio 4, de GNU toolchain voor de AVR (WinAVR), de JTAGICE mkII en de STK500 met een zelfgemaakt opsteekprintje.

Op de STK500 zijn de volgende verbindingen gemaakt:

Het opsteekprintje bevat:

Details over het opsteekprintje kun je hier vinden: STK500 opsteekprintje.

Meer informatie over de gebruikite software tools:

Je kunt deze tools ook thuis installeren:

Speciale plug-in voor AVR Studio:

Practicumopdrachten.

Beschikbaar materiaal voor het practicum: