• No results found

Embedded hardware voor interactieve installaties

N/A
N/A
Protected

Academic year: 2021

Share "Embedded hardware voor interactieve installaties"

Copied!
58
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Embedded hardware

voor interactieve installaties

3

embedded hardware

getest

op

functionaliteit

voor

interactieve installaties

Door: Arrens van Herwijnen 16-april-2007

(2)

Voorwoord

Mijn naam is Arrens van Herwijnen en doe de opleiding CMD (Communicatie multimedia design) aan het Avans te Breda. Ik zit nu in het 4de jaar en heb mijn interesse volledig gestort op interactieve installaties. Interactieve installaties wordt ook wel interactieve kunst genoemd. Het is als ware een kunst voorwerp of een ruimte waar de bezoeker interactie kan hebben met het kunstobject. Voor deze interactie heb je intelligentie nodig van het object. Hij moet kunnen voelen, denken en reageren. Deze intelligentie kan je laten doen door een computer door je programma te schrijven in director of in flash. Maar veel interactie kan al worden gedaan met veel minder rekenkracht. Deze scriptie gaat dan ook over embedded hardware. Embedded hardware zoals beschreven in deze scriptie bestaat uit een microcontroller, een elektrische print, een USB poort, een voeding circuit en een hele berg aan aansluitingen voor inputs en uitputs. De microcontroller is een kleine processor die zelf na kan denken. Nu kan zo’n trage processor nooit een computer vervangen en dat moet je ook niet willen proberen. Maar eenvoudige dingen kunnen ze heel goed. Wat een groot voordeel is dat embedded hardware bordjes zoals besproken in deze scriptie ook veel in- en uitgangen hebben. Hierdoor zijn ze als interfacebord bruikbaar. Ze hebben namelijk ook de mogelijk om te communiceren met de pc. Daardoor zijn ze uitermate geschikt voor het gebruik in interactieve installaties.

Hierom heb ik in deze scriptie onderzoek gedaan naar de beste embedded hardware voor toekomstige kunstenaars die zich aan het ontwikkelen zijn voor het bedenken en creëren van interactieve kunst. In Breda heb je een opleiding genaamd CMD (communicatie multimedia design) waar je de mogelijk hebt om je daar te ontwikkelen tot interactieve kunstenaar. Voor dit onderzoek zijn 3 embedded hardware bordjes uitgekozen . Deze zijn voor eenvoudige functies geprogrammeerd om als voorbeeld te dienen voor interactieve installaties.

(3)

Embedded hardware ...1

voor interactieve installaties ...1

Voorwoord...2

I. Inleiding...5

I.I Interactieve installaties ...5

CMD...6

Wat CMD mist ...6

Welke hardware ga ik testen. ...6

II. De testsituatie. ...7

II.I. Doel van de test. ...7

II.II. Te testen hardware ...8

II.III. Waarop de hardware vergeleken wordt...8

De sensoren waarmee ik de test wil uitvoeren...8

De actuatoren waarmee ik de test wil uitvoeren...8

II.IV. Digitale sensoren: ...10

Eenvoudige drukknop ...10

II.V. Analoge sensoren:...10

Lichtsterktesensor...10

Potmeter (draaiknop)...11

II.VI. Digitale actuator: ...11

Led lampje...11 Digitaal relais ...12 Servo sturing ...12 PWM motor sturing...13 II.VII. Bluetooth...13 III. PIC18F4550 ...14

Interview met Thijs van Lieshout...14

III.I. Wat is de PIC18F4550 ...15

III.II. Hoe werkt het board?...15

III.III. De specifieke eigenschappen van de PIC18F4550...16

III.IV.De programmeer omgeving van de PIC18F4550...17

III.V. onderzoek naar de programmeertaal...18

C-code ...18

III.VI. onderzoek naar toe toepassingen voor interactieve kunst. ...19

Eenvoudige drukknop ...19

Lichtsterktesensor/Temperatuursensor /Potmeter (draaiknop)...20

Digitale actuator:Led lampje/Digitaal relais ...20

Digitale actuator:Servo sturing...21

Digitale actuator:PWM motor sturing ... 22

III.VII. mogelijkheid voor communicatie met computers/flash/director/processing ect... 22

III.VIII. Conclusie over PIC18F4550. 23 IV. Wat is Arduino. ... 24

IV.I. Hoe werkt het board? ... 25

IV.II. De specifieke eigenschappen van de Arduino.cc... 26

IV.III. Arduino’s programmeeromgeving... 27

IV.IV. Arduino/Processing Language Comparison... 29

Arrays... 29

Loops ... 29

Printing ... 29

Arduino en Flash... 30

Servo aansturen door aan een Potmeter te draaien ... 31

Motor aansturen met PWM door richting en snelheid te bepalen met potmeter ... 32

Aansluiten met op computer om lichtsterkte sensor en temperatuur sensor ... 33

RGB led aansturen via Potmeter, lichtsterkte sensor en schakelaar... 34

IV.VI. Conclusie... 35

Eenvoud: ... 35

Kosten:... 35

Specificaties:... 35

Voor en nadelen:... 36

V. Het WIRING board ... 37

V.I. Hoe werkt Wiring ... 38

V.II. Specificaties ... 38

V.III. Programmeeromgeving... 40

Servo aansturen door aan een Potmeter te draaien. ... 42

Motor aansturen met PWM door richting en snelheid te bepalen met potmeter ... 42

Aansluiten met op computer om lichtsterkte sensor en temperatuur sensor ... 43

RGB led aansturen via Potmeter, lichtsterkte sensor en schakelaar... 44

V.V. Conclusie... 45

(4)

Kosten: ...45 (bijlage I) Begrippenlijst: ... 51

Specificaties: ...45 Bronnen ... 56

Voor en nadelen: ...45 Datasheets:... 56

Artikelen ... 56

VI.VI. Conclusie...46

VI.VI.I Wat was mijn verwachting van dit onderzoek. ...46 Interviews: ... 56 Boeken ... 57

VI.VI.II. PIC18F4550 ...47 Websites:... 57

VI.VI.III. De Arduino ...47 Bronnen begrippenlijst: ... 58

VI.VI.IV. Wiring...48 Afbeeldingen... 58

VI.VI.V. Het Advies ...49

(5)

I. Inleiding

Deze scriptie behandeld 3 elektronische hardware bordjes die getest worden op toepassing voor interactieve installaties.

Verder word nieuwe hardware die mogelijkheid heeft tot zelf denken. Dan wel denken zoals een computer. Er word gekeken welke hardware interessant kan zijn voor het gebruik in interactieve installaties. De voorwaarde voor deze hardware is dat ze makkelijk programmeerbaar is en zoveel mogelijk kan voor zo min mogelijk geld. Iemand die programmeerervaring heeft in programma´s zoals flash, director en html zou zonder veel moeite de taal moeten kunnen leren voor het programmeren van deze embedded hardware.

I.I Interactieve installaties

Interactieve installaties worden ook wel interactieve kunst genoemd. Het is als ware een voorwerp of een ruimte waar de bezoeker interactie kan hebben met het kunst object. Voor deze interactie heb je intelligentie nodig van het object. Hij moet kunnen voelen, denken en reageren. Deze intelligentie wordt meestal gedaan door een computer met een in director of in flash geschreven programma.. Deze computer heeft een interface waarmee die de sensoren uitleest en actuatoren aanstuurt. Maar wat nu als we de interface ook een intelligent programma geven. Als men de interface ook programmeert dan hoeft de computer minder te doen, of kan de computer uit de installatie weggelaten worden..

Illustratie H1.01 (Physical Computing auteur: Dan O’Sullivan)

Dit onderzoek is gericht op Technisch Communicatie Multimedia Design CMD studenten die geïnteresseerd zijn in de kunsten met interactieve installaties. Daarbij horen tweedejaars studenten CMD die in hetvierde kwartaal beginnen aan hun project interactieve installaties en derdejaars CMD studenten die minors kiezen zoals de minor interactieve installaties. Omdat ik zelf ook een CMDer ben is dit een makkelijke doelgroep om toe te spreken. Ook andere CMD opleiding en kunstenaars die werken met interactie horen bij mijn doelgroep. Voor het maken van interactieve kunst is elektronische kennis nodig. Daarnaast moet men bekend zijn met programmeren. Als je Flash (action script) beheerst en interesse heb in elektronica val je binnen de doelgroep van deze scriptie.

Buiten CMD Breda zijn er andere CMD Bachelor en Master opleidingen die werken of gaan werken met een van de embedded hardware boards die ik in mijn scriptie onderzoek.

(6)

Alle CMD studenten leren werken met Flash en Director. Hierdoor is hun programmeer kennis redelijk gevorderd en is het makkelijker om andere programmeer talen te leren. Studenten die Creative Technologie (CT) doen binnen CMD leren ook processing. CT is een afstudeer richting van de opleiding CMD en is de meer technische kant van CMD. Binnen deze richting leren studenten onder andere de kunst van interactieve installaties. Twee van de embedded hardware bordjes zijn gebaseerd op processing en wordt dus in dezelfde taal en dezelfde programmeeromgeving gewerkt.

CMD

CMD (Communicatie multimedia design) is een opleiding van de hogeschool Avans in Breda. Op deze opleiding leer je design, communicatie en de techniek van multimedia. Ook leer je hoe je multimedia moet managen. Je wordt daar opgeleid om de link te zijn tussen design en de techniek van multimedia.

Wat CMD mist

Bij CMD leert een student niet hoe een interactieve installatie gebouwd wordt. Studenten leren er creatief te zijn zodat veel extra kennis en bronnen nodig zijn om een interactieve installatie te kunnen bouwen. Om interactie toe te passen gebruiken studenten altijd een PC. Iets anders leren ze bijna niet. Doordat alles met de PC gedaan wordt is het een uitdaging om die pc niet te gebruiken. Maar omdat nooit geleerd is zonder PC te werken is daar een oplossing voor nodig. Die oplossing zit in embedded hardware. Een reeks embedded hardware bordjes zijn aanwezig bij CMD, maar ze worden niet gebruikt. Nu is het mijn doel je ogen te openen voor deze hardware en je ze een aanvulling te laten zijn voor je technische concept library.

Welke hardware ga ik testen.

Voor deze scriptie heb ik 3 elektronische bordjes uitgekozen waar mijn eigen interesse naar uitgaat. Twee van deze bordjes worden geprogrammeerd in Java. Dit zijn het Wiring en het arduino bord. Ze hebben dezelfde serie chips en dezelfde programmeer omgeving. Het verschil in dit type bordjes zit hem in het totaal aan mogelijkheden en daarmee de kosten van de hardware.

Een ander bordje dat je tegen zal komen in deze scriptie is een bordje ontworpen door M.F. van Lieshout. Dit bordje bevat een PIC18F4550 en word geprogrammeerd in C. Deze taal is een stuk complexer, onderzocht zal worden of een CMDer hiermee om kan gaan.

(7)

II. De testsituatie.

In dit hoofdstuk ga ik je vertellen op welke manier ik de drie embedded hardware bordjes heb getest, waarom ik deze test heb gedaan, wat actuatoren en sensoren zijn en hoe je deze makkelijk kan aansluiten. In principe kan je deze voorbeelden gebruiken in je eigen schakelingen. De schakingen zijn gebaseerd uit de voorbeelden van www.wiring.cc.co. Enige elektronische kennis is wel vereist. Er worden stroom schakelingen uitgelegd die niet ingewikkeld zijn, maar waarbij het wel handig is dat je de wet van Ohm kent en begrijpt.

II.I. Doel van de test.

Het doel van de test is de praktische kanten van het bordje te bekijken. De specificaties laten al heel veel zien, maar niet alles. Je kan niet zien hoe je makkelijk je iets kan aansluiten. Ook kan je niet zien hoe gemakkelijk een programma te maken is voor een bepaalde sensor of actuator. Daarnaast laten de specificaties wel zien hoeveel je erop kunt aansluiten maar je weet dan nog niet hoeveel sensoren je tegelijk met 1 bordje kan uitlezen en hoe eenvoudig het is om dat te programmeren.

Bij interactieve installaties wil je gebeurtenissen meten die in en om je interactieve installatie plaatsvinden. Dit kan zijn aanwezigheid, beweging, aanraking maar ook bediening van delen van je installatie. Hiervoor gebruik je sensoren. Daarnaast wil je bepaalde feedback geven aan de bezoeker/gebruiker. Daarvoor gebruik je actuatoren. Hiermee kan je dingen laten bewegen, oplichten of veranderen. Deze sensoren en actuatoren moeten worden gelezen en bestuurd door een pc om met een microcontroller op een embedded hardware bordje.

Het is niet mogelijk om een complete interactieve installatie te bouwen voor deze scriptie. Hierom heb ik alleen de technische kant getest. Als je een lichtsensor, temperatuursensor, druksensor aan wil sluiten werkt dit technisch allemaal hetzelfde. Het zijn allemaal analoge sensoren er wordt dus maar 1 schakeling met één of meerdere analoge sensoren getest. Hetzelfde geldt voor een drukknop, schakelaar, aanraaksensor, bewegingsdetector en een IR-lichtsluis. Dit zijn allemaal digitale sensoren en vallen daarmee onder een drukknop. Bij actuatoren is dit ook hetzelfde. Een led stuur je hetzelfde aan als een relais. Er zijn

uiteraard wel uitzonderingen. Een motor en een servo motor stuur je anders aan en zijn apart getest.

(8)

II.II. Te testen hardware

Ik test de Arduino, Wiring en de PIC18F4550. Op alle drie de bordjes word dezelfde sensoren en actuatoren aangesloten en voor al deze bordjes wordt een programma gemaakt die hetzelfde doet met deze sensoren. Daarnaast zal mits de hardware micro controller het toelaat worden gekeken wat het bordje meer kan met deze sensoren en actuatoren.

Ik heb deze 3 hardware boards gekozen omdat ze dicht bij het kennis niveau staan van een CMDer. Ik ben er van overtuigd dat CMDers ermee overweg kunnen. Vooral de arduino en wiring hebben een programmeer taal en omgeving die bekend voorkomt voor de CMD student. De PIC18F4550 heb ik gekozen om een objectieve blik te krijgen van embedded hardware. De handleiding en beschrijving zijn duidelijk, daarom is ook deze geschikt voor als derde embedded hardware board.

De conclusie

In de conclusie zal ik oordeel geven over de functionaliteit met interactieve installaties. Daarbij zal gekeken worden naar de;

- specificaties van het embedded hardware board.

- eenvoud van de software; het programmeren en het elektronisch aansluiten. - kosten en verkrijgbaarheid van de hardware

II.III. Waarop de hardware vergeleken wordt

De sensoren waarmee ik de test wil uitvoeren.

Digitale sensoren: ƒ Eenvoudige drukknop ƒ Bewegingsmelder ƒ IR Lichtsluis Analoge sensoren: ƒ Lichtsterktesensor ƒ Temperatuursensor ƒ Druksensor ƒ Potmeter (draaiknop) ƒ Afstandssensor

De actuatoren waarmee ik de test wil uitvoeren

Digitale actuator: ƒ Led lampje ƒ Digitaal relais ƒ RGB led ƒ Servo sturing Analoge actuator: ƒ Geluid ƒ Dimmer ƒ PWM motor sturing

(9)

Afbeelding II.I

Ik ga alle 3 de embedded hardware bordjes aan een reeks testen onderwerpen. In die testen word gebruik gemaakt van een:

ƒ Drukknop (digitale sensor)

ƒ LDR licht sensor (analoge sensor) ƒ Potmeter draaiknop (analoge sensor) ƒ Velleman relais bord (digitale uitgang) ƒ Motor sturing ( analoge PWM uitgang) ƒ RGB led (analoge PWM uitgang)

Er wordt niet per test beschreven hoe deze testen heb zijn aangesloten omdat ik in een test meerdere sensoren en actuatoren heb gecombineerd. Wel is hieronder beschreven hoe zo’n sensor eruit ziet en hoe je deze aansluit op de embedded hardware board.

(10)

II.IV. Digitale sensoren:

ƒ Eenvoudige drukknop ƒ Bewegingsmelder ƒ IR Lichtsluis Eenvoudige drukknop Schakeling II.II

Door de weerstand (R) word de digitale ingang naar beneden getrokken naar de Ground en geeft zo nul volt op de digitale ingang. Als de drukknop wordt in ingedrukt trekt hij de digitale ingang van de microcontroller naar de 5 volt. Nu meet de microcontroller een logische 1 aan zijn ingang. De druknop kan worden vervangen door elk digitaal schakelende sensor.

Bij een Bewegingsmelder en bij een infrarood lichtsluis doen we hetzelfde. We vervangen de drukknop voor de bewegingsmelder of infrarood lichtsluis.

II.V. Analoge sensoren:

ƒ Lichtsterktesensor ƒ Temperatuursensor ƒ Druksensor ƒ Potmeter (draaiknop) ƒ Afstandssensor Lichtsterktesensor Schakeling II.III

Analoge sensoren zijn aangesloten volgens het spanningsdeler principe. Als de NTC warmer wordt, wordt de weerstand lager. Daardoor word de spanning hoger op de analoog in.

Als het kouder word dan word de weerstand hoger en word de spanning op de analoog in lager. De datasheet van de NTC geeft aan wat de gemeten temperatuur in graden Celsius is per voltage en andere karakteristieke eigenschappen.

Hetzelfde werkt ook met de lichtsensor (LDR) en de druksensor. Voor de afstandsensor wordt de spanning in de schakeling omgedraaid en krijgt de IR afstandsensor een extra 5 volt.

(11)

Potmeter (draaiknop)

Schakeling II.IV

Ook de potmeter is hier als spanningsdeler aangesloten. Door aan de draaiknop draaien word de spanning meer of minder. Alle 3 de embedded hardware bordjes hebben een 12bit analoge input. Hiermee krijg je dus een input waarde van 0 tot 1024.

II.VI. Digitale actuator:

ƒ Led lampje ƒ RGB led ƒ Digitaal relais ƒ Servo sturing ƒ PWM motor sturing Led lampje Schakeling II.V

Een Led lampje werkt op maar 2 volt. Hierom kan deze niet zomaar op een digitale of PWM uitgang worden aangesloten. Er moet dan ook een weerstand voor. Normaal gebruiken we hier een 330 Ohm weerstand voor, maar een 470 Ohm of 1K Ohm werkt ook. Doordat we deze weerstand gebruiken krijgt de LED zijn 2 volt en blijft de overige 3 volt in de weerstand achter.

(12)

Digitaal relais

Doordat een relais meer stroom nodig heeft dan een microcontroller kan geven is er meer elektronica nodig om het relais aan te sturen. Een Velleman relais board is hier uitermate geschikt voor. Het relaisboard heeft 4 relais die geschakeld worden wanneer er 5 volt op de ingang staat. Daarnaast heeft het relaisboard 9 volt voeding nodig.

Schakeling II.VI

Deze velleman relaiskit is ook verkrijgbaar als triac-kit. Deze zijn ongevoelig voor slijtage en geven minder storing op het lichtnet. Het nadeel is dat het geen echte schakelaars zijn zoals in een relais. Daardoor is de toepasbaarheid beperkter.

Servo sturing

Schakeling II.VII

Een servo is gemaakt om naar een bepaalde positie te draaien. Daarnaast houdt een servo deze positie vast. Servos zijn uiterst sterke positie motoren. Een standaard servo heeft een torque van 6,5 kilo per cm. Servo’s zijn er voor gemaakt om 180 graden te kunnen draaien. De echte hoek die ze kunnen draaien hangt af van het merk, maar is meestal ongeveer 212 graden. Een servo wordt aangestuurd door een puls van 1 tot 2 ms met een frequentie van 50Hz. Elke 20 ms (1/f=periodetijd) zal hij dus een pulsje van 1 tot 2 ms moeten krijgen. Daarbij is een pulsje van 1ms 0 graden en een puls van 2 ms 180graden. Alles tussen de 1 en de 2 ms is dan een waarde tussen de 0 en de 180 graden. Als hij niet helemaal goed werkt en je programma is wel goed kan dit liggen aan de voeding die je gebruikt. Zelfs een USB gevoede servo wil nog storen. Probeer dan een batterij, Daar zit geen storing in. Je moet er rekening mee houden dat een servo vier maal zoveel stroom gebruikt op het moment dat deze wordt ingeschakeld. Kies daarom een voeding en factor 2 a 3 groter dan dat je aanstuurt.

(13)

PWM motor sturing

Schakeling II.VIII

Door deze schakeling kunnen we een zware elektra motor (8 amp. continu 30amp Max) aandrijven. Met de motor driver chip hebben we nog maar 1 PWM uitgang nodig van de microcontroller voor de snelheid en een digitale uitgang voor de richting.

De TC4469 kan ook gemakkelijk een stappenmotor aandrijven (Max 1,5 amp.). Bekijk daarvoor de datasheet van de TC4469.

II.VII. Bluetooth

Schakeling II.IX

Als we de embedded hardware board draadloos willen maken gaat dat het eenvoudigste met een bluetooth verbinding. Dit is niet goedkoop. Een serial naar bluetooth adapter kost ongeveer 100 euro. Een bluetooth arduino is ook te koop voor 80 euro, deze heeft al een Bluetooth adapter.

Om de bluetooth adapter aan te sluiten op het board moet er nog een MAX232 tussen. Dit is omdat de signaalspanningen anders zijn van het RS232 protocol en het TTL level van de UART van de microchip. Dit zorgt er wel voor dat de kabels van RS232 veel langer kunnen zijn. Dus als je embedded hardware bordje aan wil sluiten met een lange kabel is een MAX232 ook handig om die kabel lengte te halen.

(14)

III. PIC18F4550

Dit hoofdstuk behandeld de eerste van de drie embedded hardware bordjes die ik heb getest. Hier leg ik uit wat de PIC18F4550 is en wat hij allemaal kan. Voor dit hoofdstuk heb ik een interview gedaan via mail met Ir. M.F. van Lieshout. Hierna word de programmeeromgeving beschreven en een aantal testen die met de PIC18F4550 zijn gedaan. Daarvan word de ervaring met de hardware en programmeertaal beschreven. Als laatste volgt een conclusie met de ervaringen, voor en nadelen en de toepasbaarheid in interactieve installaties.

Interview met Thijs van Lieshout

(maker en bedenker van de PIC18F4550 USB board)

Ik heb Ir. Van Lieshout geïnterviewd omdat ik nieuwsgierig was naar beslissing die hij heeft genomen tijdens het ontwerp van het board. Allereerst wilde ik weten waarom en waarvoor hij de PIC18F4550 heeft ontworpen. De Pic18F4550 is niet ontwikkeld voor interactieve kunst installaties. De vraag is of hij wel toepasbaar is in interactieve installaties.

De heer IrR Thijs van Lieshout is de maker van de PIC18F4550 board. Het board wordt veel gebruikt op de Technische universiteit Eindhoven (TU/e) en is ook alleen te koop op de afdeling ID (industrial design) van de TU/e.

Hij Van Lieshout heeft elektrotechniek gestudeerd aan de TU/e en heeft daar elektrotechniek gedaan. Veder Verder heeft hij nog zijn certificaat technisch management gehaald aan de TU/e en werkt hij nu als afdeling Strategisch Consultancy bij Deloitte te Amstelveen.

Wat was de reden om de USB PIC DEV.Board te ontwikkelen?

Van Lieshout:” Ik ben zo'n 3 jaar studentassistent geweest bij de faculteit Industrial Design aan de TU/e. Daar hielp ik mensen van research en studenten op vele gebieden van de elektronica, maar met name op het gebied van microcontrollers. Toen ik bij ID begon, was er al een microcontroller board, maar deze was aan vernieuwing toe om vele redenen. De belangrijkste reden was dat de nieuwe generatie studenten geen seriële poort meer op hun laptop had, en het oude board geprogrammeerd moest worden via deze poort. Daarom moest er een USB variant komen, welke ik dus heb ontwikkeld.”

Wat was uw functie toen u de USB PIC DEV.Board ontwikkelde? Van Lieshout:” Studentassistent.”

Waar was de USB PIC DEV.Board voor ontwikkelt?

Van Lieshout:” Specifiek voor de faculteit ID, research en studenten.”

Heeft u naast de USB PIC DEV.Board ook nog meer embedded hardware boards ontwikkelt of break-out boards, sensor boards?

Van Lieshout:” Ja. Ik heb voor de TU/e een aantal kleine stackable prints ontworpen voor het USB PIC board. Deze zijn nog niet allemaal geproduceerd vanwege een redelijk lange doorlooptijd op de faculteit. Er zijn printjes met LED's, schakelaars, aansluitingen servo's, etc. etc. Verder heb ik nog een USB variant van het huidige board ontwikkeld (ongeveer 3 x 4.5 cm). Voor privé doeleinden en andere projecten buiten de TU/e heb ik nog andere boardjes ontworpen om snel te kunnen prototypen. “

(15)

Waarom heeft u gekozen voor de 10 pin aansluiting?

Van Lieshout:” Dit is op de faculteit een gangbare connector, en het komt gewoon goed uit: Ground, Vss en 8 datalijnen. Eén van de problemen bij het vorige board was de onhandelbare grote connector die erop zat. Ook is het met opsplitsing per poort per 10 pins connector beter mogelijk om kleine printjes te maken die op één connector passen. De layout is ook niet toevallig (de totale print had namelijk veel kleiner gekund): er passen 4 miniboards naast elkaar boven op het USB PIC board. Aan de andere kant dan waar de connector zit is plaats gelaten op de print voor een steunschroef/afstandsbusje, daar zitten geen onderdelen. Vervolgens kan er aan de andere kant weer een connector op de miniprint geplaatst zijn, zodat toch alle i/o lijnen van de PIC meetbaar of aansluitbaar zijn. “

III.I. Wat is de PIC18F4550

De PIC18F4550 is de microcontroller chip die op het embedded hardware bordje zit dat is ontworpen door Ir. Van Lieshout. Het bordje bevat een grote chip. Dit is de PIC18f4550 microcontroller. Een microcontroller is een soort computer die zelf voorzien kan worden van een eigen gemaakt programma. Je kunt zelf een programma schrijven die de microcontroller uitvoert. Dit programma wordt geprogrammeerd in een programmeeromgeving, dit is een soort texteditor met veel extra functies. Vervolgens wordt de gemaakte code omgezet met een compiler naar een bestandsformaat waar de microcontroller mee kan werken. Deze compiler is geïntegreerd in de programmeeromgeving. Dit omgezette bestand wordt met een programma in de microcontroller geprogrammeerd.

III.II. Hoe werkt het board?

Het board kan op 2 manieren van stroom worden voorzien. De eerste manier is via USB: de stroom wordt afgetapt van de PC. Hiermee kun je maximaal 100mA aan het board onttrekken, daarna schakelt het zichzelf af d.m.v. een thermische zekering. De andere manier is een externe voeding. Let wel goed op de polariteit, deze staat op het PCB geprint. De externe spanning mag 7VDC – 9VDC zijn, en op deze manier kan er maximaal 1A aan het board onttrokken worden. Welke voeding er gebruikt moet worden kan ingesteld worden met JP1: de jumper op de middelste pin en de pin tegen de rand is voor de externe voeding, de andere optie is voor voeding voor USB. De microcontroller is voorzien van een bootloader. Dit is een klein stukje code in het geheugen van de microcontroller. Hiermee kan de microcontroller extern toegevoerde data in het eigen geheugen opslaan, en zo dus een nieuw programma laden. Om de microcontroller in bootloader-mode te zetten zodat er een nieuw programma geladen kan worden, moeten de knoppen S1 (RESET) en S2 (PROGRAM) gebruikt worden. Houd PROGRAM ingedrukt en druk kort op RESET, nu staat de microcontroller in bootloader-mode. Wanneer er kort op RESET gedrukt wordt, gaat hij weer zijn geladen programma afdraaien in normale mode. Verder zijn er 2 LEDs aanwezig. De POWER-LED brandt zodra er voeding is, de TEST-LED kan met jumper JP2 aan pin A0 gekoppeld worden. De layout van de connectors staat geprint op het PCB: iedere connector bevat op dezelfde plaats +5 volt en Ground, de andere 8 pinnen zijn verbonden met de microcontroller of niet aangesloten (NC = not connected).

(16)

III.III. De specifieke eigenschappen van de PIC18F4550.

De PIC18F4550 board met de PIC18F4550 microcontroller van Microchip® draait op 48Mhz en kan 12 Mips per seconde aan. Hij heeft 29 I/O´s waarvan 2PWM, 13 analoge ingangen, 1 UART, 4 timers, 3 externe interrupts en een volledige USB poort.

Illustratie nr. III.I

Alle pinnen zijn digitale in en outputs. Een aantal outputs hebben dubbele functies. Als je bijvoorbeeld één van de analoge inputs gebruiken wil, moet je weten welke pin daarbij hoort. Om dat uit te vinden moet je de datasheet erbij halen voor de 18F4550. hierboven heb ik een tekening gemaakt met de belangrijke functies aansluiting van de PIC18F4550 board. Mocht je een verbinding willen maken met de computer moet dat via de seriële poort van de 18F4550. daarvoor moet je dus een max232 aansluiten met de aansluitingen RX en TX aan pin C6 en C7.

(17)

Illustratie nr. III.II http://ww1.microchip.com/downloads/en/DeviceDoc/39632D.pdf pag.11. (2007 microchip technology inc.)

III.IV.De programmeer omgeving van de PIC18F4550.

Het programmeren van de PIC18F4550 gebeurt in MPLAB IDE. Er is een aantal programma´s en plug-in die nodig zijn er daarvoor is het hele pakket beschikbaar op het E-atelier van de TU/e website. De volgorde van installeren van de software is belangrijk voor de werking ervan. Ik heb precies de instructies op moeten volgen en had bij de installatie één ding over het hoofd gezien. Die fout koste me een halve dag om op te lossen, dus is dus uiterst belangrijk om je aan de instructies uit de installatie handleiding te houden van E-atelier.

Men gebruikt MPLAB IDE om in te programmeren. Daarbij gebruikt je MPLAB MCC18 plug-in. Deze plug-in is verantwoordelijk voor het omzetten van je C-code in het formaat waar MPLAB IDE mee kan werken. Daarnaast heb je een linker file die nodig is om een bruikbare PIC18F4550 hex file te maken die de microcontroller gebruikt.

Hiernaast zet je het hex bestand op de PIC18F4550 met het programma MPLAB PDFSUSB. En heb je ook nog drivers nodig zodat Windows weet wat voor apparaat er aan zijn

USB-poort hangt. Deze wordt in Windows aangegeven als “PIC18F4550 Family Device”

Er zijn een hoop programma´s die nodig zijn voor het programmeren van de PIC18F4550. daarnaast komt ook nog bij dat je bij de eerste keer een reeks bestanden moet opzoeken voor in je workspace. Op dit gedeelte ging ik de fout in. Ik had niet de correcte Toolsuite gekozen. Daardoor wilde het programma alleen maar programmeren in asm (assembly).

(18)

- MPLAB maakt nu de workspace. Er moeten nu nog een aantal bestanden aangewezen worden. Dit kan door rechts te klikken op een categorie en ‘Add files’ te kiezen. Toegevoegd moeten worden:

Source Files: .c bestand naar keuze Header files: \mcc18\h\p18f4550.h Object files: ---

Library Files: \mcc18\lib\p18f4550.lib Linker Scripts: \mcc18\lkr\thijs18f45550.lkr Other Files: ---

Bron:http://w3.tue.nl/fileadmin/id/objects/E-Atelier/doc/Manuals/Handleiding_software_USB_PIC_DE V.pdf pag. 9 (V1.1 M.F. van Lieshout 31-08-2005)

Illustratie nr III.III

III.V. onderzoek naar de programmeertaal.

Het programmeren gebeurt in MPLAB IDE. De taal die we gebruikten is in C-code. De handleiding bevat een uitleg van de functies die de PIC18F4550 heeft. Functies zoals A/D converter, PWM LED, delay functies en Timer functies. Daarnaast wordt ook de basis uitgelegd over variables, wiskundige functies en het aanroepen van in en outputs. Uitleg waar de uitputs zitten en wat hun functies zijn vind je op in illustratie H2.1.

Ook heeft MPLAB IDE een groot aantal libraries die je aan kan spreken. Helaas zijn de voorbeelden die daar bij zitten niet voor de PIC18F4550. Wel zijn ze eenvoudig om te zetten voor de 18F4550. Waar we ook op moeten letten is de bootloader code. Het is belangrijk dat we altijd een stukje code boven aan ons programma zetten. Daardoor is het weer mogelijk om in de bootloader functie te komen om zodoende een nieuw programma op de chip te zetten.

C-code

C-code lijkt complex en dat is het ook. De syntax heeft veel gelijkenis met Java en is daarom te begrijpen. Wat ik nog steeds moeilijk vind is toepassen van speciale functies waarmee je van een poort een A/D converter maakt of een Interrupt/Timer.

Ook de combinatie van meerdere processing maakt het onoverzichtelijk en dat is toch lastig als je nog nooit iets in C-code hebt geprogrammeerd.

(19)

III.VI. onderzoek naar toe toepassingen voor interactieve kunst.

Op de PIC18F4550 zit een bootloader. Om de chip goed te laten werken hebben we een stukje code nodig die we altijd moeten gebruiken in ons programma.

Afbeelding III.IV

Eenvoudige drukknop

Een drukknop is eenvoudig aan te sluiten. Alle 29 I/O poorten van de PIC18F4550 hebben de mogelijkheid om als digitale ingang gebruikt te worden. Op deze digitale ingang kunnen dan ook alle drukknoppen, schakelaars, raidcontacten, en sleepcontacten worden aangesloten. Ook kan men hier een beweging detector of een IR-lichtsluis op aansluiten. Om een poort als ingang te gebruiken we de volgende code:

(20)

Lichtsterktesensor/Temperatuursensor/Potmeter (draaiknop)

Om een analoge sensor aan te sluiten gebruiken we altijd een spanning deler. Een potmeter is het makkelijkste aan te sluiten omdat deze 3 pinnetjes heeft en al meteen als spanningsdeler gebruikt kan worden.

Om een analoge ingang te gebruiken van de PIC18F4550 is al een stuk complexer. De PIC18F4550 heeft er 13 analoge ingangen. Kijk naar illustratie III.I op welke pinnen je een analoge sensor kan aansluiten.

Afbeelding III.VI

Digitale actuator:Led lampje/Digitaal relais

Afbeelding III.VII

Een digitale uitgang aansturen is eenvoudig. Eerst vertel je de PIC18F4550 wat de uitgang is en daarna kan je die aansturen.

(21)

Digitale actuator:Servo sturing

We sluiten de servo aan op port B6. Bij deze test kan de PIC18F4550 niet gevoed worden via de USB. Op de PIC18F4550 zit een automatische zekering zodat hij niet meer dan 100mA kan trekken van de USB poort. Één servo gebruikt ongeveer 200mA afhankelijk van de belasting. Het is daarom belangrijk dat er een externe voeding is aangesloten. Zelf had ik bij een externe net adapter problemen met het de servo omdat het storing opleverde. Met een 9volt batterij was er geen problemen.

Afbeelding III.IX

Omdat er geen library is voor servo sturing heb ik zelf moeten kijken hoe de servo moet worden aangestuurd. Het is me helaas niet gelukt meerder servo’s tegelijk aan te sturen.

(22)

Digitale actuator:PWM motor sturing

Afbeelding III.X

De Pic18F4550 kan zonder problemen een PWM signaal uitsturen. Je moet hem wel goed instellen, anders gebeurt er niets. De PIC18F4550 heeft maar 2 PWM uitgangen. Dit is te weinig om een RGB led aan te sluiten.

III.VII. mogelijkheid voor communicatie met

computers/flash/director/processing ect.

Kan de USB poort worden Gebruikt om je programma op de microcontroller te laten praten met de PC?

De Heer van Liedhout zegt hier het volgende over: “Dat ligt eraan wat voor soort USB device de PIC moet zijn. Op de site van Microchip (producent microcontroller) staat bijvoorbeeld een compleet stuk software om de USB poort als CDC device te gebruiken (= data transfer). Het is niet zo simpel als de seriële poort die erop zit, maar het kan wel.”(interview)

Net als alle microcontrollers heeft ook de PIC18F4550 een UART. Via deze UART is het mogelijk te communiceren met de pc. Ook heeft de PIC18F4550 een USB poort waar je hem mee programmeert. Het is ook via deze USB-poort ook mogelijk. Het probleem is dat dit een zeer complex protocol is. En dat het voor mij onmogelijk is om van deze USB-poort een USB naar UART controller te maken. Wat wel een manier is om te communiceren met de computer is via de seriële poort. Daarvoor moeten we wel een max232 gebruiken om de signaalspanning om te zetten naar het seriële niveau. En moet je pc beschikken over een seriële poort (ook wel een Com-poort genoemd).

Afbeelding III.XI

Door via een seriële verbinding een verbinding te maken is het eenvoudig om verbinding te maken met Flash, Director, Max/msp en processing.

(23)

III.VIII. Conclusie over PIC18F4550.

De PIC18F4550 specificaties zijn goed. Ze zijn vergelijkbaar met de arduino en kost ook niet meer dan 25 euro.

Nadelen:

- Het installeren van de programeer omgeving is lastig en omslachtig. Je moet je houden aan de handleiding. En het is een reeks aan bestanden, programma´s en libraries.

- Je maakt snel fouten bij het installeren van de software omdat je veel functies moet aanvinken. Als je een fout maakt klopt er niets meer van.

- De programmeer taal is in C. deze lijkt veel op Java maar is toch anders. Verder zijn de voorbeelden in de handleiding en online niet echt handig voor minder gevorderde programmeurs.

- Heeft geen eenvoudige debugger. Voor te debuggen heb je een seriële poort verbinding nodig waarnaar je debugdata stuurt.

- Kan communiceren met de PC mits er een stukje hardware extra word aangesloten (max232)

- Heeft een apart programma voor de programma’s op de microcontroller te zetten nodig. - De programmeer omgeving is een trial versie van 2 maanden.

- De PIC18F4550 board is alleen te koop bij de TU/e - Je moet zelf de PIC18F4550 board in elkaar solderen.

- De drivers en de programmeer sofware werkt alleen op de PC (winXP) Voordelen:

- Board kan worden gevoed door een 9 volt batterij

- Board heeft stroom beveiliging in USB aansluiting tegen kortsluiting. - USB aansluiting voor programmeren werkt altijd zonder problemen.

- Heeft handige aansluitingen voor aansluiten van sensoren. Elke aansluiting heeft 8 I/O poorten en een 5V en Ground aansluiting.

- De prijs van het Board is maar 25 euro.

De PIC18F4550 moet je zelf solderen. De programmeeromgeving is complex en de programmeertaal is ingewikkeld. Hij is dus niet bepaald eenvoudig.

De prijs van de PIC18F4550 is echter wel aantrekkelijk. Deze is maar 25 euro inc. BTW De specificaties van de PIC18F4550 zijn zeer goed. Hij heeft veel ingangen en ook veel

analoge ingangen. Helaas heeft hij maar 2 PWM uitgangen.

Voor CMD is dit geen geschikt board. Al is het wel geschikt voor een meer programmeer-technische richting. Als je al bedreven bent in MPLAB, C en microcontrollers dan is deze geen probleem. Ik denk alleen dat hij voor CMDers en makers van interactieve installaties te complex is.

(24)

IV. Wat is Arduino.

Afbeelding IV.I http://www.sparkfun.com/commerce/images/Main-Arduino-NG-0.jpg

Arduino is een open-scource physical computing platform die gebaseerd is op een eenvoudig I/O bordje en een ontwikkel omgeving die overeenkomt met processing. De Arduino programmeertaal is implementatie van wiring, die weer is gebouwd op processing.

(Bron: www.arduino.cc vertaald van engels index pagina 1 16-4-2007)

De arduino bord kan gebruikt worden voor het ontwikkelen van interactieve objecten. De arduino heeft de mogelijkheden tot aansluiten van verschillende schakelaars en sensoren en het aansturen van verschillende lichten en motoren. Arduino is ook een embedded hardware board en heeft dus de mogelijkheid om stand-alone te werken. Ook kan het communiceren met computers via USB en serieel. Het is mogelijk om zelf een arduino te maken of een kant-en-klaar bordje te kopen. De software is open-source IDE en is gratis.

Arduino is ontwikkeld door de heer. Massimo Banzi (Mr. Arduino). En is ontwikkeld in Italië. Andere mensen dat in het team arduino zitten zijn David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis and Nicholas Zambetti.

(25)

Er zijn al een aantal versies van de arduino board. Op dit moment is de nieuwste versie de arduino NG plus. Eind Mei komt er een nieuwe arduino versie uit: de Arduino Diecimila.

Diecimila (Ten thousand) - Happy 10,000th Arduino board sold!

Published: 2-4-2007 19:03:26.

This is a big deal, the open source hardware project for artists, engineers and tinkerers, Ardunio - just hit 10,000th sold! Massimo writes - Diecimila in italian means “ten thousand” and this marks a moment I would never thought we would reach. Over ten thousand Arduino USB boards have been sold by our manufacturer. It’s a great success and we have to thank all the users who have liked our work and supported us from the beginning. Arduino is an interesting experiment in the world of open source because we are making an open source software combined with a piece of hardware released under a Creative Commons license. The sales of the hardware have been used to manufacture more hardware and, while adding more and more features to the board, keeping the price more or less the same... Well, thanks to all of you Arduino supporters, it’s a great experience and we want to keep bringing out new ideas and products to make it easier and cheaper for you to work with electronics.

tinker.it » Blog Archive » Diecimila (Ten Thousand) - Link. Related:

Arduino Fever - Link.Arduino, the Basic Stamp killer? - Link.Arduino Arduino Arduino - Link. [Read this article] [Comment on this article]

Article URL : Read the article ... (read 0 times).

N.B. The content of this article is property of the original publisher

Site/blog : MAKE Magazine

http://www.feeds4all.com/Item.aspx?ItemID=14019008 2-4-2007 19:03:26.

IV.I. Hoe werkt het board?

De arduino kan net als de PIC18F4550 op twee manieren van stroom worden voorzien. Hij kan via de USB van stroom worden voorzien en via een stroom adapter van 7 tot 13 volt. Om te switchen van stroomvoorziening moet er een jumper worden omgezet. Als de arduino via externe adapter wordt gevoed kan hij maximaal 1 ampère leveren. Word de arduino via de USB poort van stroom voorzien kan hij maximaal 0.5 ampère leveren. Let wel op dat er geen overstroom beveiliging op zit om de USB poort te beveiligen. Mocht je hem kortsluiten schakelt de USB-poort zich uit met mogelijk schadelijke gevolgen. De arduino chip heeft een UART waarmee hij kan communiceren met de PC en waarmee hij geprogrammeerd word. De UART poort is via een USB naar serieel die op het arduino bord aanwezig is verbonden met de pc. De arduino heeft een AtMega microcontroller en heeft net als de PIC18F4550 board een bootloader in de microcontroller. Op het board zit een resetknop om de arduino board te resetten. Na een reset zal de bootloader ongeveer 10 seconden wachten voordat hij het programma opstart. In deze 10 seconden heb je de tijd om de arduino opnieuw te programmeren via de arduino software.

(26)

IV.II. De specifieke eigenschappen van de Arduino.cc

Er zijn meerdere versies van de arduino. De ontwikkelaars zijn begonnen met een seriële versie van de arduino en later ook de USB versie beschikte over een AtMega8 microcontroller met 8KB flash geheugen. Op dit moment zijn de arduino NG plus, arduino bluetooth en de arduino mini beschikbaar. Al deze versies bevatten een AtMega168 microcontroller. Deze heeft als voordeel tegenover de oudere arduino dat deze 2 maal zoveel flash geheugen heeft en 3 extra PWM uitgangen. Daarbij hebben de Arduino mini en Arduino BT twee extra analoge ingangen.

De arduino beschikt over een Atmega168 microcontroller. De arduino heeft 16KB flash geheugen (waarvan 14336 byte voor je programma) en draait op een kloksnelheid van 16 megahertz. Dit is minder dan de PIC18F4550 maar toch is hij sneller. De arduino verwerkt 16 MIPS terwijl de PIC18F4550 er 12MIPS aankan. De Atmega kan maximaal 20MIPS bij 20Mhz clock. Toch draait hij op de arduino board maar op 16Mhz. Dit is net zoveel als het Wiring board.

MIPS is in de informatica een afkorting die staat voor millions of instructions per second (miljoenen bewerkingen per seconde). De MIPS-waarde is slechts een ruwe aanduiding van de prestaties van de processor omdat alles afhangt van hoeveel verschillende instructies men test, de soorten instructies die men allemaal test en welke weging men aan de uitvoering van de verschillende instructies geeft. (http://nl.wikipedia.org/wiki/MIPS_%28eenheid%29 7-apr-2007)

De arduino heeft 14 I/O poorten plus 6 analoge ingangen. Van de 14 I/O poorten kunnen er 6 gebruikt worden als PWM, 2 als externe interrupt en een seriële poort. Ook heeft de arduino een two wire interface.

(27)

Net als bij de PIC18F4550 heeft de arduino in en uitgangen met dubbele functies. Daarom is het handig om te weten welke pin je moet gebruiken voor een bepaalde functie. Op de bovenstaand afbeelding staat schematisch wat de arduino voor uitgangen heeft. Verder is het handig van arduino dat ze op het board al aan hebben gegeven waar de uitgangen zitten en wat ze kunnen (zie afbeelding IV.III).

Afbeelding IV.III http://www.arduino.cc/en/uploads/Main/arduino_extreme_260.jpg

IV.III. Arduino’s programmeeromgeving.

De programmeeromgeving komt overeen met de die van processing. Hij bestaat uit één programma met een USB driver voor de arduino. De programmeeromgeving is gratis te downloaden van www.arduino.cc. Verder zijn er bij het programma een aantal libraries om snel functies te kunnen maken en een reeks voorbeelden over hoe je in en uitgangen moet aansturen. En verder ook veel voorbeelden hoe je een servo-motor motor chip serieel en een LCD-scherm moet aansturen. Let bij het compiling op dat je de juiste microcontroller kiest. Je kunt kiezen uit de atmega8 en de atmega168.

De arduino software is eenvoudig te installeren. Je plaatst het in een map op je computer en het werkt direct. Op het moment dat je de arduino wilt programmeren moet je nog even aangeven via welke Com-poort dit moet. Bij mij kreeg de arduino Com17 omdat ik gebruik maak van bluetooth software die een reeks Compoorten reserveert voor bluetooth Com-poorten. Wegens een bug is het niet mogelijk om dat te programmeren. Een oplossing is het Com-poort nummer zelf veranderen in je computer hardware lijst.

Een ander probleem dat ik tegenkwam was “bleu solei” bluetooth software. Op het moment dat die software draait werkt de arduino software heel traag of helemaal niet meer.

(28)

Afbeelding IV.IV http://www.arduino.cc/en/uploads/Main/Screenshot0003.png

Op dit moment zijn ze bij de Arduino 0007 Alfa versie. Het zit dus allemaal nog in ontwikkeling fase, maar daar merk je bijna niets van. De sofware werkt goed en er worden steeds meer voorbeelden en libraries geschreven. Verder is er een uitgebreid forum waar je je programmeer problemen op kwijt kan voor advies.

Je kunt je programma makkelijk op fouten controleren door je programma te compileren. Daarnaast kan je het ook makkelijk laden in je arduino en je programma debuggen via de seriële debug functie van de arduino software.

De programmeertaal is in de Java geschreven. En komt zo goed als helemaal overeen met die van processing. (zie tabel IV.IV. Arduino/Processing Language Comparison).

(29)

IV.IV. Arduino/Processing Language Comparison

Arrays

Arduino Processing

int bar[8]; bar[0] = 1;

int[] bar = new int[8]; bar[0] = 1;

int foo[] = { 0, 1, 2 }; int foo[] = { 0, 1, 2 };

or int[] foo = { 0, 1, 2 }; Loops Arduino Processing int i; for (i = 0; i < 5; i++) { ... }

for (int i = 0; i < 5; i++) { ... }

Printing Arduino Processing printString("hello world"); printNewline(); println("hello world"); int i = 5; printInteger(i); printNewline(); int i = 5; println(i); int i = 5; printString("i = "); printInteger(i); printNewline(); int i = 5; println("i = " + i); Bron: http://www.arduino.cc/en/Reference/Comparison 16-4-2007

De programmeertaal van de arduino ligt op een hoger niveau als die van de PIC18F4550. Je hoeft je niet bezig te houden met registers en je bent ook niet altijd weer in de datasheet aan het zoeken naar hoe je die registers moet vullen. Bij de arduino heb je de datasheet niet nodig. Alles wat je nodig hebt kan je vinden op arduino.cc of op linkjes op arduino.cc.

(30)

Je kunt de arduino standalone gebruiken om eenvoudige programma’s te draaien. Maar de arduino kan eenvoudig met de pc communiceren. Dit communiceren kan gewoon via de seriële poort en via de USB verbinding.

Op de http://www.arduino.cc/playground/Main/Interfacing website staat een duidelijke uitleg hoe de arduino te gebruiken met de volgende programeer omgevingen:

• Arduino + Flash • Arduino + Processing • Arduino + PD (Pure Data) • Arduino + MaxMSP • Arduino + VVVV • Arduino + Director • Arduino + Ruby • Arduino + C

• Arduino + Linux TTY • Arduino + SuperCollider • Arduino + Second Life • Arduino + other • sensorbox firmware • Arduino + Squeak

Arduino en Flash.

Omdat Flash niet zomaar computer hardware kan uitlezen en schrijven is er een programma nodig om de seriële poort van de arduino om te zetten naar een netwerk socket poort. Flash kan wel communiceren met deze netwerk socket. Hierdoor is het mogelijk om arduino te laten communiceren met Flash en andere programma’s. Hier is een eenvoudig programma voor in de arduino:

int firstSensor = 0; // first analog sensor void setup() { Serial.begin(9600); } void loop() { firstSensor = analogRead(0)/4; delay(10); Serial.print(firstSensor, DEC); Serial.print(0, BYTE); delay (50); }

(31)

IV.V. Het praktisch onderzoek

.

Met de arduino heb ik de volgende testen gemaakt: ƒ Servo aansturen door aan een Potmeter te draaien

ƒ Motor aansturen met PWM door richting en snelheid te bepalen met potmeter ƒ Aansluiten met op computer om lichtsterkte sensor en temperatuur sensor ƒ RGB led aansturen via Potmeter, lichtsterkte sensor en schakelaar.

Ik beschrijf alleen het programmeer technische deel van de praktische test. Het aansluiten op de arduino is al beschreven in vanaf hoofdstuk II.IV. het aansluiten gaat technisch bij alle drie de bordjes hetzelfde. Het is niet makkelijker of moeilijker bij de arduino. Bij alle drie de bordjes is het handig om een break-out board te gebruiken om makkelijk hardware aan te sluiten. Verder is het voor testen handig om een breath-board te gebruiken.

Servo aansturen door aan een Potmeter te draaien

Een servo wordt aangestuurd met een puls de 50 keer per seconde wordt gegeven. Als de puls 1ms is zal de servo draaien naar zijn 0 graden punt. Als de puls 2ms lang is zal de servo draaien naar zijn 180 graden punt (Schakeling II.VIII). Een servo kan afhankelijk van de specificaties ongeveer 212 graden draaien. Als je de puls langer dan 2ms of korter dan 1ms maakt zal de servo naar zijn uiterste punt draaien. Hieronder een klein voorbeeldje:

Afbeelding IV.VI

Een servomotor aansturen met de arduino gaat goed. In principe kan je op elke digitale uitgang een servo aansturen. In de praktijk blijkt dat je maximaal ongeveer 3 servo’s tegelijk kan aansturen. Als je meer servo’s wil aansturen is het aan te raden om een serial servo controller te gebruiken. Deze kost ongeveer 20 euro en kan 8 of 16 servo’s tegelijk aansturen.

Daarnaast stoort een servo snel als je een externe voeding gebruikt. Je moet dat een betere voeding gebruiken. Om te testen werkt een batterij heel goed, omdat deze een stabiele gelijkspanning levert.

(32)

Motor aansturen met PWM door richting en snelheid te bepalen met potmeter

Afbeelding IV.VII

Om een motor aar te sluiten is het belangrijk dat er wat extra hardware aangesloten word. De arduino uitgangen kunnen niet genoeg stroom leveren om een motor aan te sturen. Daarvoor moet je een motor sturing chip gebruiken met een H-brug. Een H-brug is een schakeling die uit 4 mosFet die geschakeld zijn in de vorm van een H.

Hierdoor is het mogelijk om een motor voor en achteruit te kunnen laten draaien op de snelheid van een PWM signaal.

Om niet 4 PWM uitgangen te hoeven gebruiken van de arduino hebben we een motorsturings-chip nodig. Op deze motorsturings-chip sluiten we een PWM signaal aan om de snelheid van de motor te bepalen en een digitale uitgang van de arduino om de draairichting te bepalen. (Zie afbeelding H1.06)

(33)

Aansluiten met op computer om lichtsterkte sensor en temperatuur sensor

Om lichtsterkte te meten gebruiken we een LDR (Light Dependent Resistor). De weerstand van zal lager worden als er meer licht op de LDR valt. We gebruiken een spanningsdeler zoals in de schakeling H1.02

Afbeelding IV.IX

We sturen de gemeten waarde via de seriële poort naar de pc. Daar kan een ander programma zoals flash bijvoorbeeld een visuele animatie maken met de gemeten waarde.

De makkelijkste manier om met de computer communiceren is om de arduino als keyboard encoder te gebruiken. Windows heeft een extra functie waarmee een seriële poort ingang kan gebruiken als toetsenbord. Om de arduino bijvoorbeeld een “A” te laten sturen op het moment dat digitale ingang 1 logisch hoog is. Daarbij laat je bijvoorbeeld flash kijken naar de toets aanslagen. Als Flash ziet dat de A word ingedrukt kan je daar een animatie op laten bewegen. Zo kan je alle ingangen als toetsaanslagen zien. Het nadeel aan deze methode is dat je niet terug kan communiceren naar de arduino. En dat de Flash programma boven op je desktop moet laten staan.

(34)

RGB led aansturen via Potmeter, lichtsterkte sensor en schakelaar

Om een RGB aan te sturen gebruiken we 3 PWM aansluitingen. Het is dus mogelijk om op de arduino NG plus 2 RGB leds aan te sluiten zonder ingewikkelde hardware (Schakeling H1.03)

Afbeelding IV.X

Een praktisch voorbeeld zou kunnen zijn een Mood-light die zich kan aanpassen naar temperatuur en vochtigheid. En als men de arduino aansluit op de pc zou je iets kunnen maken als een mood-light die veranderd naarmate je gedrag en je werk op de pc.

(35)

IV.VI. Conclusie

De arduino is een uitstekend embedded hardware board voor interactieve installaties. Vooral als men niet teveel ingangen en of uitgangen nodig heeft. Het geheugen wat maar 16KB is voldoende voor eenvoudige programma’s die gekoppeld zitten aan de PC.

Massimo schrijft: “[Arduino] is a big deal, the open source hardware project for artists, engineers and tinkerers, Ardunio - just hit 10,000th sold!”

(philliptorrone | Apr 2, 2007 11:03 AM http://www.makezine.com/blog/archive/2007/04/diecimila_ten_thousand_ha.html?CMP=OTC-0D6B48984890)

Eenvoud:

ƒ De arduino programmeeromgeving is eenvoudig met niet te veel poespas.

ƒ De arduino programmeertaal is Java. En is makkelijk te leren met veel mogelijkheden. ƒ De arduino handleiding is zeer uitgebreid en uit het arduino forum is ook veel

voorbeelden te halen.

ƒ De arduino programmeertaal is hetzelfde als die ven wiring en is zonder problemen met elkaar te wisselen. Houd er wel rekening mee dat de pin nummers anders zijn en dus aangepast moeten worden.

ƒ En de arduino communiceert makkelijk met de pc zonder extra hardware.

Kosten:

Ook kost de arduino maar 23 euro (ex BTW.) en moet besteld worden vanuit Italië. De bestelling kost je 15 euro verzendkosten.

Specificaties:

De specificaties zijn redelijk. Hij heeft maar 1 seriële poort. Ook heeft hij maar 13 digitale uit/in gangen. De 6 analoge ingangen zijn voldoende. De 16KB geheugen is ook voldoende als je niet te complexe programma’s maakt (kleiner dan 500 regels).

(36)

Voor en nadelen:

Voordelen: ƒ Goedkoop

ƒ Gratis programmeersoftware ƒ Veel voorbeelden

ƒ Veel informatie te vinden op Internet ƒ Makkelijke programmeertaal

ƒ Communiceert makkelijk met pc

ƒ Is in vele uitvoeringen verkrijgbaar ( arduino NG plus, arduino min en arduino BT) ƒ Laag stroomverbruik

ƒ Mooi uiterlijk

ƒ USB naar serieel aansluiting ook te gebruiken met andere hardware zonder dat je de arduino gebruikt. (handig voor debuggen van de PIC18F4550)

ƒ Arduino werkt met OS, linux, winXP Nadelen:

ƒ Niet te koop in Nederland ƒ Software nog maar Alfa versie ƒ Beperkt geheugen

ƒ Beperkt aantal I/O porten

ƒ Breakout board nodig voor makkelijk experimenteren

Verder bevat de arduino NG plus een hardware bug waardoor sommige printjes niet opstarten als de USB kabel niet zit aangesloten en de arduino word gevoed met een externe voeding. De oplossing voor dit probleem is een extra weerstand van 10K ohm plaatsen van de RX naar de Ground. In de nieuwe versie de arduino Diecimila zal dit probleem verholpen zijn.

(37)

V. Het WIRING board

In dit hoofdstuk geef ik je een introductie van het wiring board, zijn programmeeromgeving en voorbeelden die een demonstratie geven hoe je het wiring board moet aansluiten en programmeren. Het biedt informatie om te beslissen of wiring is geschikt voor je toekomstige interactieve installatie. Je hoeft geen uitstekende programmeur te zijn om de voorbeelden te begrijpen. Ook hoef je alleen een basis elektronica te kennen om sensoren en actuatoren aan te sluiten op wiring.

Afbeelding V.I http://www.sparkfun.com/commerce/images/Wiring.jpg

Wiring is groter dan de arduino. Maar is net als de arduino een goedkoop alleenstaand computertje met veel aansluit mogelijkheden. Hij kan eenvoudig geprogrammeerd worden in een variant van de processing taal Java. Wiring heeft net als de arduino een programeer omgeving die veel lijkt op de processing omgeving. De wiring board kan vele sensoren en actuatoren aansturen. Met sensoren kan de wiring informatie op doen van zijn omgeving, zoals temperatuur, licht, afstand tot een voorwerp, enz. Actuatoren zijn apparaten die het wiring board de mogelijkheid biedt om verandering te doen in de fysieke wereld. Bijvoorbeeld licht, beweging, temperatuur, enz. ook kan de wiring board eenvoudig communiceren met andere apparaten en computers zoals een PC of Mac. Wiring is een open project bedacht door Hernando Barragán (University of Los Andes, Architecture and Design School). Het is net als de arduino gebouwd op Processing, de open source programeer taal en omgeving ontwikkeld door Ben Fry en Casey Reas.

(38)

V.I. Hoe werkt Wiring

Wiring kan net als de andere 2 hardware boards op 2 manieren worden gevoed. Via de USB poort en via externe adapter. Uit de USB-poort kan maximaal 0,5 Ampère worden gehaald en via de externe voeding kan er maximaal 1 Ampère worden ontrokken aan het board. Om hem te programmeren drukt men op de RESET knop. Als de wiring weer opstart is hij de eerste 10sec in bootloader mode. In die tijd kan je er een programma op zetten. Als de 10 sec om zijn start hij het programma op dat op de chip staat. Belangrijk is dat je de wiring na het programmeren weer een keer moet resetten voordat hij zijn nieuwe programma gaat draaien. De arduino daarin tegen hoeft niet gereset worden na het programmeren.

V.II. Specificaties

Wiring is een embedded hardware board met als microcontroller een AtMega128. Deze microcontroller beschikt over 128KB flash geheugen en draait op 16Mhz en kan 16 MIPS per seconde aan. Hij is daarmee net zo snel als de arduino die er ook 16MIPS per seconde doet.

• Up to 16 MIPS Throughput at 16 MHz

• 128K Bytes of In-System Reprogrammable Flash

• Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes • Two Expanded 16-bit Timer/Counters with Separate Prescaler,

• Real Time Counter with Separate Oscillator

• 6 PWM Channels with Programmable Resolution from 2 to 16 Bits • 8-channel, 10-bit ADC

• Byte-oriented Two-wire Serial Interface • Dual Programmable Serial USARTs • External and Internal Interrupt Sources • 53 Programmable I/O Lines

• 4.5 - 5.5V for ATmega128 • 0 - 16 MHz for ATmega128

(39)

Afbeelding V.II

Het grote verschil met het Wiring board zijn de vele in en outputs. Wiring heeft 42 digitale I/O poorten waarvan 2 maal een seriële poort en een Two-Wire poort. Verder heeft de Wiring ook 8 analoge ingangen en 6 PWM/analoge uitgangen. Dat maakt een totaal van 53 in of uitgangen. Daarmee is het Wiring board de meest uitgebreide embedded hardware board van de 3 beschreven bordjes.

(40)

V.III. Programmeeromgeving

Wiring geeft zijn eigen programmeer omgeving. Net als de programmeeromgeving van de arduino lijkt deze veel op processing. Je programmeert in Java. Een hogere level programmeer taal om zo snel een programma te kunnen maken. Wiring lijkt zoveel op arduino dat de programma’s geschreven voor arduino ook op wiring draaien. Daarbij moeten we wel rekening houden dat de pin nummers anders kunnen zijn.

Ook handelingen tot het programmeren van Wiring is bijna gelijk aan de arduino

1. Schrijf een programma in de wiring programmeer omgeving. 2. Druk op de “play” compile knop om het programma om te zetten 3. Verbind het Wiring board met de computer

4. Druk op de “upload” knop om het programma naar het wiring board te sturen. 5. Druk op de RESET knop en het wiring board komt in bootloader mode.

6. Als nu de wiring programmeer omgeving aangeeft dat hij klaar is met uploaden. Moet je het wiring board nog één keer resetten. En je wiring board is geprogrammeerd.

7. Als je het wiring board voedt via een externe stroom adapter kan je de USB kabel los trekken en het wiring board blijft werken.

8. Zelf als alle stroom van het board af is geweest blijft het programma in het geheugen van het wiring board. Als je de stroom weer aansluit zal het programma weer automatisch draaien.

Wat wel anders is aan de programmeeromgeving is de voorbeelden en de libraries. Bij de arduino zijn er veel meer en betere voorbeelden. Terwijl er voor de wiring board weer veel slimmere libraries zijn gemaakt. Ook is de website makkelijker om de taal van te leren en zijn is er een mogelijkheid om de digitale poorten per 8 stuks aan te sturen, maar ook per pin aan te sturen.

Bij de wiring software moet je altijd je programma opslaan voordat je je programma upload naar de wiring board. Dit moet je doen anders gaat hij niet verder. Bij de arduino hoef je dit niet. Het moeten opslaan van de programma is heel slim, maar ik vind het persoonlijk alleen maar irritant.

(41)

Hieronder in de afbeelding is een tabel met de verschillen tussen processing en wiring.

Afbeelding V.III

V.IV. Het praktisch onderzoek

.

Omdat de programma’s van wiring en arduino hetzelfde zijn is het makkelijk om de wiring te testen. Met de wiring heb ik de volgende testen gemaakt:

- Servo aansturen door aan een Potmeter te draaien

- Motor aansturen met PWM door richting en snelheid te bepalen met potmeter - Aansluiten met op computer om lichtsterkte sensor en temperatuur sensor - RGB led aansturen via potmeter, lichtsterkte sensor en schakelaar.

(42)

Servo aansturen door aan een Potmeter te draaien.

Afbeelding V.IV

Voorbeeld van Wiring software “servo-slider” wiring0011 ALPHA.

Wiring bevat een library voor het aansturen van een servo. Dit maakt het natuurlijk veel makkelijker. Wiring heeft een reeks handige libraries en er zullen er nog vele bijkomen. Het aasluiten een aansturen van de servo is eenvoudig. Ook bij de wiring geeft een externe

voeding storing op de servo.

Motor aansturen met PWM door richting en snelheid te bepalen met potmeter

Door aan de potmeter te draaien kan je de snelheid bepalen van de motor. Gaat de stand van de Potmeter over de helft naar rechts dan gaat de motor rechts om draaien. Als je de Potmeter over de helft naar links draait draait de motor linksom.

(43)

Het Wiring board bevat net als de arduino NG plus 6 PWM uitgangen. Het is een uitgang die ongeveer 2000 keer per seconde een pulsje geeft. Hoelang deze puls is, is variabel. Met deze uitgangen kunnen we Led-lampjes, dimmers, en motors aansturen. Hoe langer de puls is hoe harder de motor gaat draaien.

Om een motor aan te sluiten hebben we alle drie de bordjes een stukje elektronica nodig omdat de stromen die door de motor gaan te groot zijn voor de microcontroller. Zie hoofdstuk II voor uitleg.

Aansluiten met op computer om lichtsterkte sensor en temperatuur sensor

In deze test is er een temperatuur sensor of een andere analoge sensor aangesloten op de wiring. De ingelezen waarde van de sensor word via de USB poort van de Wiring gestuurd naar de PC. Ook gaat naarmate de waarde lager is het LED lampje op pin 13 sneller knipperen.

Afbeelding V.VI. Voorbeeld van de arduino software over gezet in Wiring. Wiring0011Alpha

Het wiring board heeft 2 seriële poorten. In het voorbeeld wordt er gebruik gemaakt van de eerste seriële poort die ook op de UART naar USB controller zit om door de USB poort te kunnen praten met de PC. De tweede seriële poort spreken we aan met Serial1.begin(bitrate).

De Wiring software heeft net als die van Adruino een debug venster waarmee je deze waardes eenvoudig zichtbaar kan maken. Maar deze waardes kan je dus ook met Flash, director, max/msp en processing uitlezen.

(44)

RGB led aansturen via Potmeter, lichtsterkte sensor en schakelaar

Op het wiring bord zitten 3 analoge sensoren aangesloten en een RGB led zit aangesloten op 3 van de PWM uitgangen. Door één of meereder analoge waardes van de analoge sensoren te veranderen veranderd de kleur van het licht uit de RGB led.

Afbeelding V.VII

Ook deze laatste test was makkelijk om te maken en werkte meteen. Het is wel jammer dat het je meteen 3 PWM aansluitingen kost en dat je er dus maximaal maar 2 kan aansluiten. Verder geeft zo’n enkele RGB led niet voldoende licht om een ruimte te kunnen kleuren. Daarvoor heb je grotere RGB leds nodig. Om deze RGB leds aan te sluiten heb je ook weer extra elektronica nodig omdat deze leds meer stroom gebruiken dan dat het wiring bordje kan leveren op de PWM uitgangen.

(45)

V.V. Conclusie

Wiring is een zeer uitgebreid embedded hardware board voor interactieve installaties. Hij geeft 52 I/O poorten en echte analoge uitgangen. Hij heeft een beschikbaar geheugen van 128KB en heeft daarmee veel meer geheugen van de andere drie.

Eenvoud:

Wiring is eenvoudig te programmeren met de wiring Java taal.

Het is makkelijk te leren met veel mogelijkheden. De website is zeer uitgebreid en de Java uitleg is heel duidelijk.

Verder communiceert Wiring eenvoudig met de pc zonder extra hardware.

Kosten:

De wiring kost 45 euro (ex BTW.) en moet besteld worden in Colombia. De bestelling kost je ongeveer 50 dollar verzendkosten.

Specificaties:

De specificaties zijn zeer uitgebreid. Hij heeft 2 seriële porten. Wiring heeft 42 digitale I/O poorten waarvan 2 maal een seriële poort en een Two-Wire poort. Verder heeft de Wiring ook 8 analoge ingangen en 6 PWM/analoge uitgangen. Dat maakt een totaal van 56 in of uitgangen. Daarmee is het Wiring board de meest uitgebreide embedded hardware board van de 3 beschreven bordjes.

Voor en nadelen:

Voordelen:

- Redelijk Goedkoop

- Gratis programmeersoftware - Veel voorbeelden

- Veel informatie te vinden op Internet - Makkelijke programmeertaal

- Communiceert makkelijk met pc. - Mooi uiterlijk

- USB naar serieel aansluiting ook te gebruiken met andere hardware zonder dat je de wiring gebruikt. (handig voor debuggen van de PIC18F4550)

- Arduino werkt met OS, linux, winXP - Heeft echte analoge uitgangen

- Heeft 2 seriële poorten - Heeft maar liefst 128KB Nadelen:

- Niet te koop in Nederland - Software nog maar Alfa versie

- Breakout board nodig voor makkelijk experimenteren

- Moeilijk aan te komen. En verzendkosten zijn schandalig duur.

Ik ben nog geen problemen tegen gekomen met wiring. Ze zouden wel wat meer voorbeelden in de software mogen stoppen zoals bij de arduino. Daardoor zie je snel en eenvoudig hoe je een functie moet gebruiken

(46)

VI.VI. Conclusie

VI.VI.I Wat was mijn verwachting van dit onderzoek.

Ik verwachtte een verslag en een onderzoek naar een andere manier van het elektronische brein achter de interactieve installatie. Ik verwachtte daarom ook dat het wiring bord dat stukken duurder is dan de andere twee als winnaar uit de test zou komen. De arduino heeft natuurlijk zijn eigen kwaliteiten zoals stroomverbruik, draagbaarheid en de prijs per bordje is weer interessanter. De PIC18F4550 is een leuk bordje voor ver gevorderde mensen. Het heeft veel mogelijkheden en is net zo goedkoop als de arduino.

(47)

• De PIC18F4550 is het goedkoopste en het moeilijkste te programmeren • De programmeertaal van wiring en arduino is gemakkelijk aan te leren

• De help functie van de wiring site is het beste en is ook toepasbaar op de arduino. • Aan de Arduino is het makkelijkste aan te komen.

• Voor alle drie de bordjes heb je een breakout bord nodig om fatsoenlijk iets er op aan te sluiten.

VI.VI.II. PIC18F4550

De PIC18F4550 is een goedkoop met goede specificaties. Je kunt er veel mee en je programmeert in C. een taal die op een redelijk laag niveau zit. En dat is juist het probleem aan de PIC18F4550. een lagere programmeertaal betekend moeilijker te programmeren. Dus danig moeilijk dat mits je ervaring hebt met microcontrollers en C je niet lekker overweg kan met de PIC18F4550. Ik vind het daarom ook geen geschikt embedded hardware bord voor CMD of makers van interactieve installaties.

Verder is het ook niet eenvoudig om aan een PIC18F4550 bordje te komen van M.F. van Lieshout. Het microcontroller bordje is namelijk alleen te koop op de TU/e (technische universiteit Eindhoven).

Wat wel een goed punt is aan de PIC18F4550 bordje is dat hij maar 25 euro kost (inc. BTW). En daarvoor heeft hij wel 29 I/O poorten. Dit is waarschijnlijk ook waarvoor hij is ontwikkeld. Hij is daarmee namelijk de meest gebruikte microcontroller op de TU/e.

VI.VI.III. De Arduino

De arduino is een nog goedkoper, sneller maar vooral ook makkelijker dan de PIC18F4550. Je programmeert hem in Java. Een hogere programmeertaal dan C en daarom makkelijker om de Java taal te leren. Als je al bekend bent met processing (een Java programmeeromgeving voor op de pc en voor op Internet) word het je helemaal makkelijk gemaakt. De arduino programmeeromgeving lijkt namelijk veel op processing. Ook worden bij de arduino omgeving veel extra’s en voorbeelden gegeven en is het gebruik van de sofware allemaal gratis.

De arduino is niet te koop in Nederland. Het zal je dus een beetje moeite kosten om er aan te komen. Op de website www.arduino.cc vind je steeds meer bedrijven waar je ze kan bestellen. Op dit moment zijn ze in Italië het beste te bestellen. Je kunt betalen met paypal en omdat hij ook daar ontwikkeld en geproduceerd word is hij daar nog het goedkoopste. De arduino NG plus kost 23 euro (ex. BTW). Omdat je heb moet laten verzenden vanuit Italië

kost je dat wel 15 euro aan verzendkosten. Voor die 23 euro heb je dan een arduino met 14 I/O poorten waarvan 6 een PWM functie hebben. Ik vind de arduino het meest geschikt voor interactieve installaties. Hij is goedkoop en als hij voldoet aan je eisen is er relatief makkelijk aan te komen. Houd er nog wel rekening mee de arduino NG plus nog een hardware bug heeft. Eind mei 2007 komt de nieuwste versie van de arduino uit; de Arduino Diecimila.

(48)

VI.VI.IV. Wiring

Wiring is de meest uitgebreide van de 3 embedded hardware boards. Met een totaal van 52 I/O poorten en als enige met echte analoge uitgangen is hij volgens zijn specificaties de beste. Ook heeft hij de eenvoudige programmeeromgeving die arduino ook heeft, maar dan speciaal voor wiring. Daarnaast is de handleiding en help voor wiring veruit de beste. En beschikt de wiring over 2 seriële poorten die de uitbreidbaarheid van wiring makkelijk maakt.

Wiring is de duurste van de 3 embedded hardware bordjes. Hij kost 45 euro (ex. BTW). Daarbij komt er bij dat ze besteld moeten worden in Colombia. De verzendkosten daarvoor bedragen ongeveer 50 euro. Daarom als je ze nodig hebt moet je er veel bestellen met je vrienden of ze bestellen in Amerika.

Wiring is zeer geschikt voor interactieve installaties. Vooral met veel sensoren en actuatoren. Doordat er moeilijk aan te komen is het een afweging die je moet maken of je de arduino of de wiring wilt gebruiken. Ze hebben allebei de eenvoudige programmeeromgeving en de uitgebreide help plus een forum met voorbeelden. Maar doordat aan de wiring moeilijk aan is te komen zou je moeten beginnen met een arduino. Als je budget toch voldoende is zou ik een wiring bestellen in Amerika bij www.sparkfun.com. Verder is het ook een interessante website als je naar de andere elektronica kijkt die ze hebben.

Referenties

Outline

GERELATEERDE DOCUMENTEN

15.- Een belastingplichtige die de bijkomende interestaftrek wenst te genieten, moet eigenaar zijn van de woning. Met de invoering van de regels betreffende de decumulatie zal

B. Buitengewone inkohieringstermijn van drie jaar in geval van niet-aangifte, van laattijdige overlegging ervan of wanneer de verschuldigde belasting hoger is dan de

3° alle gegevens die toelaten na te gaan of de rechtspersoon geen han- delsactiviteiten of met het beroep onverenigbare activiteiten uitoefent, noch dat haar vennoten,

De oproeping moet verder op duidelijke wijze aangeven waar en wanneer de vergadering doorgaat en eveneens aangeven of de aandeelhouders hun aandelen al dan niet op voorhand

Onder verwijzing naar het artikel 31, §1, maant de OVAM eveneens de personen aangeduid in het artikel 10, §1 aan als zijnde saneringsplich- tige. Tot de uitvoering van een

9 Cf. FAQ, vraag nr. FAQ, vraag nr. FAQ, vraag nr. Er is hier enkel sprake van de EBA waarvan het ontbreken in principe zal worden bestraft, aangezien de belastingplichtige of

b) De belastingplichtige zal zich niet meer kunnen beroepen op de woningaftrek, toegepast op het kadastrale inkomen. Dit stelsel waarin vroeger werd voorzien door artikel 16 van

• dat de werknemer de mogelijkheid heeft om zich uiteindelijk niet te beroepen op de nietigheid. Dit zal bijvoorbeeld het geval zijn indien de werknemer zijn nieuwe activiteit