Programmeren en Software Engineering 2 (PROS2).

© Harry Broeders.

Deze pagina was bestemd voor studenten van de Haagse Hogeschool - TH Rijswijk/Academie voor Engineering groep EP2.1.

PROS2 is sinds 2010/2011 vervangen door MICPRG!

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 al 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). Zie ook: http://www.press.adidas.com/DesktopDefault.aspx/tabid-23/58_read-158/
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!
Nike heeft een schoen die met je iPod kan communiceren, zie http://www.nike.com/nikeplus/ en http://www.apple.com/ipod/nike/.

Het aantal microcontrollers dat wordt toegepast in embedded systems is veel groter (ongeveer 100x volgens dit artikel) dan het aantal microprocessors dat in desktop en laptop systemen wordt toegepast.

In de EP1.2 heb je al kennisgemaakt met de AVR ATmega16 microcontroller, een populaire 8 bits microcontroller van Atmel. (Zie: http://www.atmel.com/products/AVR/). In het onderwijsdeel PROS2 gaan we dieper op deze AVR ATmega16 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 COMIC heb je de microcontroller in assembler geprogrammeerd. Bij PROS2 leer je om C te gebruiken om de microcontroller te programmeren. De C kennis die je bij het onderwijsdeel PROS1 hebt verworven wordt bij PROS2 gebruikt en verder uitgebreid. De voordelen van het gebruik van C ten opzichte van assembler zijn:

Globale leerdoelen.

Na afloop van deze module:

Ervoor en erna.

Veel vaardigheden en kennis die je hebt opgedaan tijdens COMIC1 en PROS1 zul je bij PROS2 nodig hebben. De kennis en vaardigheden die je bij PROS2 gaat verwerven zul je gaan toepassen in het EPRO3 project "de Beertender". Het AVR bord wat je tijdens het EPRO1 project hebt gemaakt kun je bij het maken van de huiswerkopdrachten en bij het voorbereiden van het practicum prima gebruiken. Je leert in dit onderwijsdeel hoe je zelf programma's kunt schrijven in C voor je eigen AVR bord.

Onderwijsvorm.

PROS2 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 en De taal C van PSD tot C programma van Daryl McAllister. PROS2 omvat 84 SBU's. De toetsing, een mondelinge toets, vindt plaats in week 9 en/of 10 van dit kwartaal (van 14 april t/m 24 april 2009). Als je alle practicumopgaven op tijd met een voldoende weet af te sluiten kun je een vrijstelling voor deze afsluitende toets verdienen! Om formeel correct te zijn wordt de beoordeling op het practicum de toets genoemd en de mondelinge toets in week 9 en/of 10 de herkansing.

Als we ervan uitgaan dat het voorbereiden op de toets je ongeveer 7 uur kost dan moet je dus in 7 lesweken van dit kwartaal 11 uur/week aan PROS2 besteden! 4 uur in de week hebben wij al voor je gepland (2 uur theorie en 2 uur practicum) de overige 7 uur/week moet je dus zelf plannen! Op het practicum werkt iedereen voor zichzelf. Iedereen moet 6 opdrachten uitvoeren. De eerste drie opdrachten zijn voor iedereen gelijk en de overige 3 worden door de practicumdocent toegewezen. 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 jou oplossing, achterliggende theorie enz. Het is dus heel belangrijk dat je alle theorielessen volgt. Bereid je goed op de evaluaties op het practicum voor! Het laten nakijken van een programma wat je niet zelf hebt bedacht en geprogrammeerd wordt beschouwd als fraude (net zoals het spieken bij tentamens).

Aan het einde van het blok moeten alle programma's via email worden ingeleverd (ook als je een vrijstelling voor het mondeling hebt verdiend): Maak een zip bestand je_eigen_naam.zip. In dit bestand moeten alle programma's en bijgaande bestanden zijn opgenomen. Bij het uitpakken moet elk programma (met bijbehorende bestanden) in een apart directory komen. Stuur de mail naar J.Z.M.broeders@hhs.nl. Het behaalde resultaat is pas definitief geldig als alle programma's zijn ontvangen en bekeken.

Let op: Alle ingeleverde opgaven worden met elkaar vergeleken. Het inleveren van een programma wat je niet zelf hebt gemaakt wordt beschouwd als fraude (net zoals het spieken bij tentamens).

Toetsvorm.

Het onderwijsdeel MICB2 wordt afgesloten met een mondelinge toets in week 9 of 10 van dit kwartaal. Deze toets duurt ongeveer 15 minuten en wordt beoordeeld met een Voldoende of met een Onvoldoende. Alle practicumopdrachten moeten voorafgaand aan het mondeling gemaakt zijn. De vragen zullen betrekking hebben op de door jou gemaakte practicumopgaven maar bedenk goed dat er ook algemene theorievragen gesteld kunnen worden. Als alle practicumopgaven op tijd zijn ingeleverd en met een voldoende beoordeeld zijn krijg je vrijstelling van de mondelinge toets.

De mondelinge tentamens zullen worden gehouden op nog te bepalen dagen in de periode van 14 april t/m 24 april 2009. Het rooster zal zo snel mogelijk op deze site worden gepubliceerd.

Studiemateriaal.

Practicumomgeving.

We maken op het practicum gebruik van AVR Studio, 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. <<Nog informatie toevoegen!>>

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: