Arexx AAR User guide [nl]

AREXX ARDUINO ROBOT
AAR
HANDLEIDING: AAR-04
© AREXX - V082012
- 1 -
Inhoud
1. Productbeschrijving AAR 3
1.1 De ARDUINO Robotfamilie 3
1.2 Specificaties 3
1.3 Waarschuwingen 4
2. AAR Algemene info 5
3. De AREXX ARDUINO robot 10
3.1 Blokschema 10
3.2 AAR achtergrondinformatie 11
4. Opstarten van de AAR 13
4.1 Software installeren 13
4.2Programmeren met de Arduino 13
4.3 USB Driver installeren hardware 13
4.4 Hardware 14
4.5 ARDUINO Software 15
4.5.1 Programmeren met de Arduino 15
4.5.2 Arduino programma selecteren 15
4.5.3 Com poort selecteren 16
4.5.4 Programma uploaden naar de AAR 17
5. Achtergrond H-brug 18
6.1 Een H-brug voor 3 Volt 18
6.2 Een H-brug voor 4,5 Volt 20
6. Odometrie systemen 21
8. Bootloaderashen  24
9. APPENDIX 25 A. Onderdelenlijst 26 B. Printplaat 27 C. Schema 30
AREXX und AAR zijn geregistreerde merken van AREXX Engineering
© AAR Handleiding (Juli 2012): AREXX Engineering (NL). Niets uit deze handleiding mag op welke wijze en voor welke doeleinde dan ook worden overgenomen zonder schriftelijke toestemming van de Europees importeur: AREXX Engineering te Zwolle (NL).
De fabrikant en importeur stellen zich niet verantwoordelijk en aanvaarden geen enkele aansprakelijkheid voor de gevolgen van ondeskundige handelingen en/of eventuele fouten bij het bouwen en bij het gebruik van dit product door het niet opvolgen van deze handleiding. De inhoud van deze handleiding kan zonder kennisgeving vooraf door ons worden gewijzigd.
Fabrikant: AREXX Engineering JAMA Oriental
Importeur: AREXX Engineering ZWOLLE
Technische vragen zie:
WWW.AREXX.COM
WWW.ROBOTERNETZ.DE
© AREXX Holland en JAMA Taiwan
- 2 -
1. PRODUCTBESCHRIJVING AAR
1.1 De ARDUINO Robotfamilie?
Arduino is een open source single-board microcontroller en ontworpen om elektronica en met name microprocessoren toegankelijker te maken in verschillende projecten. Een Arduino bord maakt gebruik van een Atmega processor.
Arduino is in eerste instantie bedoeld voor kunstenaars, ont­werpers, hobbyisten en een ieder die geïntesseerd is om interactieve objecten te creëren. De Arduino hardware bestaat altijd uit een Atmel AVR processor met zowel digitale in- en uitgangen en analoge ingangen. Hiermee kan het Arduino bord signalen ontvangen van de omgeving en vervolgens kan het daar weer op reageren.
In navolging van de AREXX ASURO robot, die programmeer­baar is in de programmeertaal C is er nu de AREXX Arduino Robot. De AAR Robot lijkt erg op de ASURO maar is veel een­voudiger programmeerbaar dankzij de open source program­meertaal Arduino.
1.2Specicaties:
Motoren 2 Gelijkstroommotoren (3 Volt) Processortype ATmega328P Programmeertaal ARDUINO of C Spanning 4 st. AAA accu of batterijen 4,8 - 6 Volt Stroom Min. 10 mA Max. 600 mA Communicatie USB en ISP Stekker Uitbreidingen ASURO Uitbreidingsmodules
Hoogte 40 mm Breedte 120 mm Lengte 180 mm
- 3 -
2.5. Waarschuwingen
1. Lees eerst de handleiding volledig door voordat je de spanning aansluit! Foutieve handelingen kunnen deze robot onherstelbaar beschadigen.
2. Controleer altijd de aansluitingen van de kabels en externe componenten. Verkeerde spanning of polariteit kunnen de robot onherstelbaar beschadigen.
3. Gebruik geen spanningen die hoger zijn dan voor­ geschreven. Gebruik een goede gestabiliseerde voeding die geen piekspanningen geeft.
4. Pas op met electrostatische ontlading. Werk ESD-veilig en raak de componenten nooit zomaar met je handen of metalen gereedschap aan, zonder ESD-beveiliging.
Algemeen
* Als de onderdelenblister geopend wordt, vervalt het retourrecht * Lees voordat je begint de gehele handleiding door * Wees voorzichting met gereedschappen en kleine onderdelen, houd deze buiten het bereik van kleine kinderen! * Houd dit product buiten het bereik van kleine kinderen. * Controleer altijd zorgvuldig de polariteit van de batterijen! * Houd de batterijen droog en verwijder ze als de AAR voor lange tijd niet gebruikt gaat worden. Mix nooit gewone en oplaadbare batterijen of lege en volle
batterijen!
- 4 -
2. ARDUINO ALGEMENE INFO
2.1. Wie of wat is ARDUINO?
Arduino is een open source single-board microcontroller en is ont­worpen om elektronica toegankelijker te maken in verschillende projecten. Een Arduino bord maakt gebruik van de Atmega 168 of Atmega 328 microcontroller van Atmel.
Zoals je in de inleiding kon lezen is het bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïntesseerd is om interac­tieve objecten te creëren. De hardware bestaat uit een Atmel AVR processor met zowel digitale in- en uitgangen en analoge ingangen. Hiermee kan het Arduino bord signalen ontvangen van de omgeving en vervolgens daar op reageren.
Er zijn meerdere Arduino borden beschikbaar zoals Arduino Uno, Arduino LilyPad en Arduino Mega 2560. Voor elk project is er wel een Arduino bord dat het meest geschikt is, omdat elke Arduino
specieke eigenschappen bezit.
De input kan onder andere gegenereerd worden door schakelaars, lichtsensoren, bewegingsensoren, afstandsmeters en temperatuur­sensoren. Ook is het mogelijk om commando’s als input te zien afkomstig van internet. Met de output signalen kunnen motoren, lampjes, pompjes en beeldschermen aangestuurd worden.
Er is een standaard programmeertaal compiler en bootloader aan­wezig om het bord te programmeren. De programmeertaal waarmee de Arduino hardware wordt geprogrammeerd is gebaseerd op de wiring programmeertaal en komt overeen met C++.
Arduino is als een project begonnen in Ivrea, Italië in 2005. Het was oorspronkelijk bedoeld om studenten te helpen om projecten te ontwerpen. Het moest goedkoper worden dan andere prototype systemen die al beschikbaar waren. De makers Massimo Banzi en David Cuartielles hebben het project genoemd naar een historisch persoon ‘Arduin of Ivrea’. Het woord ‘Arduino’ betekent ‘sterke
vriend’.
- 5 -
2.1 Microcontrollers!
Een microcontroller (soms afgekort tot µC, uC or MCU) is een kleine computer opgebouwd als een geïntegreerde schakeling. Dit noe­men we een IC, (IC = integrated circuit). Een IC bevat een proces­sor core, een geheugen en programmeerbare in- en uitgangen. Het programmageheugen (ROM) en een klein datageheugen (RAM) zijn vaak ook geïntegreerd in het IC.
2.1.1 Applicaties
Microcontrollers worden gebruikt in geautomatiseerde processen. Er zijn vele toepassingen in vele producten, zoals computers, auto’s, machines, gereedschappen, mobiele telefoons, afstandsbedieningen en speelgoed. Eigenlijk kom je ze elke dag overal tegen.
Doordat ze steeds kleiner en goedkoper worden, zijn er telkens meer applicaties waarvoor ze gebruikt kunnen worden, denk bijvoorbeeld aan de tablet of de smartphones.
- 6 -
2.3. Opgenomen vermogen en snelheid
Sommige microcontrollers hebben een klokfrequentie van slechts 4 kHz. Dit is omdat ze dan een heel laag stroomverbruik hebben (milliwatts of microwatts). Een dergelijke lage klokfrequentie redu­ceert echter wel de functionaliteit maar er zijn voldoende applicaties waar snelheid niet van belang is, zoals kijken of er een knop be­diend wordt en daar dan op reageren (bijvoorbeeld een afstands­bediening).
Er zijn andere applicaties waar een hoge kloksnelheid een must is, bijvoorbeeld bij digitale signaalverwerking, in het Engels, digi­tal signal processor (DSP). Naast de hoge klokfrequentie is er dan ook direct een groter stroomverbruik. Denk hierbij ook aan PC’s en smartphones.
Onze Arduino robot werkt met een krachtige Atmel 328 processor voorzien van een 8-bit microcontroller op een frequentie van 20MHz
en met een 16K bytes In-systeem programmeerbare ash. De
veilige voedingsspanning ligt in de range van 4,5 - 7V DC. Dit zorgt voor stabiele en veilige condities voor de ATMEL processor en het motorcircuit.
2.4 Microcontroller programma’s
Microcontroller programma’s moeten passen in een geheugen dat op het IC zit. Het is duur en omslachtig om extra extern geheugen toe te voegen. Compilers en assemblers worden gebruikt om de uitvoe­rige hogere programmeertaal (waar het programma in geschreven wordt) om te zetten (te assembleren) in een machinecode die de processor begrijpt. Deze machinecode wordt dan in het geheugen van de processor geladen. Afhankelijk van het type is het geheugen permanent of vluchtig. Vroeger werden de processoren direct in de machinecode geprogrammeerd. Nu zijn er diverse hogere (eenvou­dige) programmeertalen zoals C of de vereenvoudigde C taal ARDUINO. De verschillende talen die er zijn hebben vaak betrekking op de applicaties, maar C is momenteel wel de meest gebruikte taal voor het programmeren van processoren. Veel bekende software zoals bijvoorbeeld Windows van Microsoft is voor een groot deel in C geschreven.
Onze Arduino robot heeft een ashgeheugen (ash memory) van
ongeveer 16K bytes voor programma’s. Deze kunnen in plaats van de Arduino taal ook direct geschreven worden in de C taal.
- 7 -
2.4 Interface Architecture
Microcontrollers hebben normaalgesproken een tiental tot enkele tientallen algemene (General Purpose) input/output pinnen (GPIO).
GPIO pinnen zijn congureerbaar in de software als ingang of als
uitgang.
Als de GPIO pinnen zijn gecongureerd als input, dan worden ze
meestal gebruikt om sensoren of externe signalen uit te lezen.
Als ze als uitgang gecongureerd zijn, dan kunnen de GPIO pinnen
gebruikt worden om externe componenten zoals LEDS en/of IC’s aan te sturen.
Veel embedded systemen (apparaten met een processor zoals bij­voorbeeld onze AAR robot) moeten analoge signalen uitlezen. Dit kan een processor alleen doen met behulp van een analoog-naar­digitaal converter (ADC). Vanaf het begin moesten processoren alleen digitale data analyseren en verwerken (1-en en 0-en). Ze kunnen zelf niets doen met de analoge signalen die ze aangeboden krijgen. De ADC wordt gebruikt om een analoog signaal om te zet­ten naar een digitaal signaal, zodat een processor dit kan verwer­ken.
Er zijn processoren, zoals bijvoorbeeld de ATMEGA (die gebruikt wordt in onze AAR robot), die al een ADC aan boord hebben. Der­gelijke processoren kun je dus direct analoge signalen aanbieden zonder dat je een externe ADC nodig hebt.
De meeste moderne processoren hebben ook één of meerdere timers. De meest gebruikte timer is een Programmable Interval Timer (PIT). Een PIT telt af van een ingestelde waarde naar nul. Als de waarde nul bereikt is, stuurt het een interrupt naar de pro­cessor zodat die weet dat het tellen gestopt is. Dit is handig voor sensoren zoals thermostaten die periodiek een temperatuur moeten meten. De processor kan dan op haar beurt weer een apparaat zoals
een verwarming of ventilator aansturen als dat nodig mocht zijn.
- 8 -
De Universal Asynchronous Receiver/Transmitter (UART) is een heel belangrijk onderdeel van de processor. Dit deel van de processor maakt het mogelijk om data te ontvangen of te verzenden over een seriële lijn. Dit alles met een zeer lage belasting voor de processor capaciteit.
De meeste moderne processoren kunnen ook digitaal met andere apparaten of IC’s communiceren, bijv. via een I2C bus of met de Serial Peripheral Interface (SPI) bus.
De ATMEGA processor in onze Arduino robot heeft 14 digitale I/O’s en 7 analoge I/O’s. Verder zijn er vier timers, een 16KB ash geheugen en een ADC.
- 9 -
3. AREXX ARDUINO ROBOT
Afb. 1: AAR Printplaat
3.1 ARDUINO ROBOT OVERZICHT
1. Aansluiting voor batterijhouder (Let op de polariteit).
2. Aan/uit schakelaar robot.
3. Status led: Geeft aan of de robot voeding heeft.
4. Wanneer er gebruik wordt gemaakt van oplaadbare batterijen kan deze pinheader worden overbrugd zodat de robot de juiste werkingsspanning krijgt (Let op: Polariteit beveiliging wordt hiermee overbrugd).
5. USB aansluiting voor het programmeren van de robot met de Arduino software.
6. Reset button: Voor het handmatig resetten van de robot.
7. ISP connector: Hiermee kan eventueel een andere bootloader worden ingeladen.
8. LED 14: Kan vrij geprogrammeerd worden en zal knipperen wanneer de bootloader opnieuw opstart.
9. Lijnvolger: Deze kan vrij geprogrammeerd worden zodat de robot een lijn kan volgen.
10. Wielsensor wiel links: Deze geeft een pulstrein wanneer het linkerwiel draait.
11. Wielsensor wiel rechts: Deze geeft een pulstrein wanneer het rechterwiel draait.
12. Status LED’s motor links: Deze LED’s geven aan of de linker motor voor- of achteruit rijdt.
13. Status LED’s motor rechts: Deze LED’s geven aan of de rechter motor voor- of achteruit rijdt.
14. Expansion board connector: Op deze aansluiting kunnen uitbreidingsmodules worden aangesloten zoals een draadloze APC220 module of snake vision.
15. Status LED’s: Voor RS232 data-overdacht.
16. Status LED 2: Vrij programmeerbare LED.
17. Status LED’s: Voor USB data-overdacht.
18. Motorcontroller
- 10 -
3.2 Achtergrondinformatie AAR
De AAR is een Arduino robot die speciaal is ontworpen om te leren programmeren met de Arduino software. Aan de rechterkant zit de USB interface met het FT232 IC die het USB signaal converteert naar een RS232 UART datasignaal waar de ATMEGA328P processor (rechtsvoor) mee kan werken.
Aan de andere kant zit de aan-uit schakelaar met de connector JP3 voor de voedingsspanning aansluiting en IC2 de motordriver. Aan de achterkant van de print zitten de motoren en de wielsensoren.
De wielsensoren werken als een lichtsluis, de tandwielen hebben vier gaten, om de 90° een gat. De sensor kijkt of er een gat in zit en laat daarbij LED 16 of 17 branden. Dit ligt aan de kant waar gemeten wordt. Hierdoor kan vrij nauwkeurig de draaisnelheid van de wielen worden gemeten.
Vooraan zitten de headers voor de uitbreidingsprinten en aan de onderkant van de print de lijnvolgersensoren.
De lijnvolgersensor bestaat uit een LED die op de grond schijnt met
daarnaast twee IR sensoren die de reectie van de grond opvangen.
Verder vind je op de print de nodige LED’s, weerstanden en conden­satoren die het geheel werkend maken.
De robot heeft een Arduino bord, dat vergeleken kan worden met een Arduino Duemilanove bord. Het hart van deze Arduino robot is de ATMEGA328P. Deze microcontroller heeft 14 digitale in- en uitgangen, waarvan 6 gebruikt kunnen worden als PWM uitgangen. Verder zijn er op deze robot nog aanwezig: 6 analoge ingangen, een 16 MHz kristal oscillator en een USB aansluiting waarmee de Arduino robot kan wor­den geprogrammeerd. Tot slot is er een ISP connector, zodat de meer ervaren hobbyisten de bootloader zelf kunnen programmeren.
De robot werkt bij een 5V spanning en kan ook werken op alleen de USB spanning. Dit is handig bij het testen en programmeren. Handig bij deze Arduino robot zijn de headers waarmee je eenvoudig zelf een uitbreidingsbord kunt maken of waar je de AREXX uitbreidingsmodu­les van de ASURO op aan kunt sluiten.
- 11 -
Achtergrondinformatie ARDUINO SOFTWARE
De software van Arduino is open source. Dat betekent gratis beschikbaar voor iedereen. Open Source wil tevens zeggen dat ook de broncode van de programmeeromgeving beschikbaar is. De Ar­duino programmeeromgeving heeft een tekst editor, een berichtvak en een tekst console. De programmeeromgeving kan direct com­municeren met de AAR om op eenvoudige wijze programma’s in de processor te laden.
Software die geschreven is in Arduino wordt sketch genoemd. De code wordt geschreven in de tekst editor. Deze sketch wordt opgeslagen met bestandsextensie .ino. Het berichtvak geeft feed­back wanneer het programma wordt opgeslagen en laat de fouten in de code zien. De tekst console laat de tekst output van Arduino zien met een uitleg van de eventuele fouten in de code. Rechtsonder in het scherm wordt het huidige Arduino bord weergegeven en de seriële poort.
Arduino heeft de beschikking over libraries waardoor extra functies beschikbaar zijn. Een library is een pakket met verschillende samen­gestelde fucties, waardoor die functies zelf niet meer geschreven hoeven te worden. Deze functies kunnen eenvoudig aangeroepen worden in Arduino. Een Arduino programma kan verdeeld worden in 3 stukken: structuur, variabele of constante waarden en functies.
Een Arduino programmastructuur bestaat uit een setup en een loop functie. De setup zorgt ervoor dat de variabelen, pin modes en li­braries worden geïnitialiseerd. De loop wordt de hele tijd doorlopen, zodat het programma daar weer op kan reageren.
De variabele waarden kunnen gebruikt worden om bepaalde type waarden op te slaan. Constante waarden worden gebruikt om een
pin als in- of uitgang te deniëren en ervoor te zorgen dat er een
spanning over een pin staat.
- 12 -
4. Getting Started (Beginnen)
4.1 Download en installatie van Arduino Software
Installeer de Arduino software (version 1) vanaf de CD. We weten namelijk zeker dat het met die software allemaal zal werken! Later kun je ook de laatste software downloaden vanaf de ARDUINO website. Eventueel moet je dan onze voorbeeldprogramma’s wat aanpassen aan de laatste Arduino versie.
BELANGRIJK:
Het gebruik van verschillende versies van de Arduino Software en verschillende versies van de applicatieprogramma’s kan problemen geven! Soms moet je de software weer een beetje aanpassen als je de nieuwste ARDUINO softwareversie gaat gebruiken!
4.2. Arduino’s taal
De grammatica van de Arduino taal is uitvoerig beschreven op de of-
ciële Arduino website. Leer de taal te begrijpen totdat je het niveau
bereikt dat je nodig hebt om deze robot te programmeren. Er staan op het web vele hulpmiddelen ter beschikking. Je hoeft alleen maar
even op Arduino te googelen.
4.3 Installatie van de USB driver
Als je de robot met een Windows PC verbindt, dan zal de PC starten met het installeren van een USB driver voor de robot. Met Windows Vista of hoger wordt de driver normaalgesproken automatisch geïnstalleerd.
Selecteer het seriële apparaat van de robot via het Tools > Serial Port menu. Meestal is dit COM3 of hoger (COM1 en COM2 zijn gereserveerd voor de seriële hardware poorten).
Ter controle kun je de robot losmaken van de PC en het menu opnieuw openen. De COM poort die nu verdwenen is was dus de COM poort van de robot. Je kunt nu de robot weer aansluiten en de bewuste poort selecteren.
- 13 -
4.4 AAR hardware
4.4.1 Aansluiten accu
De robot is ontworpen voor een accupack met vier 1,5 V bat­terijen. Wanneer er gebruik wordt gemaakt van oplaadbare batterijen moet de pinheader JP4 voor oplaadbare batterijen worden doorverbonden (zie Afb.1 Nr. 4).
LET OP!
Wanneer deze pinheader JP4 is doorverbonden, is de robot niet meer beveiligd voor polariteit en kan dus bij verkeerd aansluiten onherstelbaar beschadigd raken.
Sluit de accu aan zoals afgebeeld (afb Afb. 2).
Afb. 2:
Schakel de robot in met de schakelaar. LED 5 naast de schakelaar zal nu gaan branden.
- 14 -
4.5 ARDUINO software
4.5.1 Robot programmeren met Arduino software
Sluit de robot aan op de computer door middel van de USB kabel. Wanneer de robot is aangesloten op de USB poort is het niet nodig om de batterijspanning aan te sluiten. De USB poort van de PC ver­zorgt dan de spanning
LET OP:
De robot staat altijd aan wanneer hij aangesloten is op de computer. De schakelaar en LED5 werken alleen bij batterijspanning.
Open de Arduino software (zie Afb. 3a).
Afb. 3a Arduino software Afb. 3b Openen van programma Blink
4.5.2 Arduino programma selecteren
Als voorbeeld wordt het programma blink in de robot geladen. Hierdoor zal LED 1 gaan knipperen.
Klik in de Arduino software op File>1. Basics>Blink. (zie Afb. 3b), het volgende scherm zal nu verschijnen (Afb. 4a).
- 15 -
Afb. 4a Programma Blink Afb. 4b Board Selecteren
Nu zal het juiste board ingesteld moeten worden. Klik op Tools>Board> Arduino Duemilanove or Nano w/Atmega328
(zie Afb. 4b).
4.5.3 COM poort selecteren
Als volgende stap zal de juiste COM poort toegewezen moeten wor­den. De COM poort waarop de robot is aangesloten, moet worden ingesteld in de Arduino software. In dit geval is dat COM 12. Om de COM poort in te stellen, ga naar Tools> Serial Port>COM 12. (Zie Afb. 5)
Afb. 5 COM poort selecteren
- 16 -
4.5.4 Uploaden van de Arduino software
Klik nu op Uploaden om de software in de Arduino te laden (zie Afb. 6a). In de onderbalk zal nu te zien zijn dat de software bezig is met compilen en daarna uploaden.
Wanneer het uploaden voltooid is, zal er Done uploading in de onderbalk verschijnen (zie Afb. 6b).
Afb. 6a Uploaden software Afb. 6b Klaar met uploaden
Nu kun je de robot ontkoppelen van de USB kabel, de batterijspanning aansluiten en de robot starten.
Meer informatie en downloads zie:
www.arexx.com --> Forum
www.roboternetz.de --> Forum
- 17 -
5. Achtergrondinformatie H-Brug
De H-brug is een elektrische schakeling waarmee men met behulp van vier schakelaars bijvoorbeeld een gelijkstroommotor kan om­polen. Een dergelijke schakeling wordt in robots vaak toegepast om een aandrijving in twee richtingen te laten draaien. Voor de meeste van deze verschillende toepassingen bestaan er geïntegreerde schakelingen, maar ter verduidelijking van de werking en dimensionering van de voeding is het interessant eens een oudere schakeling met losse onderdelen te bestuderen.
5.1 Een H-brug voor een 3 Volt aandrijving
In het schema van de eindtrap voor de Hyper Peppy robot (Afb. 8) worden de vier schakelaars van de H-brug door twee PNP-transistoren TR7 en TR8, resp. twee NPN-transistoren TR9 en TR10 gevormd. In deze schakeling mogen steeds slechts twee van deze transistoren in geleiding worden geschakeld en wel zo, dat de stroom
- via TR7 en TR10 of
- via TR8 en TR9 door de motor M wordt geleid.
Met behulp van de (gratis) Microcap-simulator kunnen wij eenvoudig de gelijkstroominstelling van deze schakeling berekenen en in het
schema aezen.
I
Afb. 8: Gelijkstroominstelling van de H-brug voor de Hyper Peppy robot
- 18 -
In de eindtrap is M de motor en wordt de sturing van de voorver­sterker met behulp van een weerstand R14 gesimuleerd. Weerstand R14 aardt de basis van TR6 en TR5. Daardoor loopt er uitsluitend een stroom door de rechtse tak van de eindtrap. De transistoren TR8, TR5 en TR9 geleiden de stroom en de andere drie zijn gesperd. Indien wij R14 aan de positieve spanning aansluiten, geleiden de transistoren in de linkse tak van de eindtrap en keert de motor­stroom om. Met behulp van de Microcap simulator kunnen wij een­voudig de stroomsterkte door elk onderdeel berekenen en in het
schema aezen. Het totale stroomverbruik van de eindtrap bedraagt
ongeveer 300 mA bij 3 Volt batterijspanning.
Het verbluffende van deze schakeling is, dat de eindtrap met een spanning van 3 Volt met silicium transistoren werkt. Zoals bekend heeft een dergelijke transistor een kniespanning van 0,7 volt. De motor bevindt zich echter tussen de collectoren, die in het ideale geval slechts 0,3 volt spanningsval veroorzaken. Voor de motor blijft in de praktijk dan nog ruim 1,5 volt over. De door de Microcapsimu­lator berekende spanningsverdeling is in Afb. 9 gedocumenteerd.
Afb. 9: Gelijkspanningsverdeling van de H-brug voor de Hyper Peppy robot
- 19 -
De 3V-voedingsspanning is een ideale uitgangsbasis voor een robot, die door twee batterijen wordt gevoed. De PNP-transistoren zijn echter minder geschikt voor de implementatie in een geïntegreerde schakeling zoals de L293D. Een IC heeft echter andere voordelen, zoals een hogere betrouwbaarheid, een uitstekende beveiliging en een minimale printoppervlakte. Om deze redenen heeft men de AAR-robot van een L293D met een dubbele H-brug voorzien. Met een dergelijke chip kunnen wij twee motoren sturen.
5.2 Een H-brug voor een 3 Volt aandrijving
De L293D (zie Afb. 10) kan 600 mA (maximaal: 1,2A piekwaarde) uitgangsstroom per kanaal aansturen. De voedingsspanning voor de uitgangstrap (VCC2) mag variëren tussen 4,5V en 36V, zodat we de L293D als een ideale schakeling voor het aansturen van een gelijk­stroommotor mogen beschouwen.
De minimale voedingsspanning (VCC2) bedraagt echter 4,5V, zodat wij in de batterij-, resp. accuvoeding minimaal vier cellen moeten investeren. Dit zal het gewicht van de robot natuurlijk duidelijk doen toenemen. Het is de prijs, die men voor de toepassing van het moderne IC moet betalen.
- 20 -
Afb. 10 H-Brug met L293D
6. Odometriesystemen
Onderstaand enkele interessante gedachtes en ideeën voor eventu­ele toepassingen voor de AAR robot. Dit zijn leuke projectsuggesties voor studie- en kunstprojecten. Het maken van dergelijke Arduino software zal enorm veel inzicht geven in het programmeren van microcontrollers en hun mogelijkheden.
6.1 Lijnvolgers, kleurzoekers en kleurvluchters
Een robot kan met behulp van lichtgevoelige sensors tot een lijnvol­ger, kleurvluchter of kleurzoeker worden geprogrammeerd. In het eerste, eenvoudigste geval moet de robot netjes een doorgetrokken lijn in een 8-vormig patroon volgen, wat het systeem in een einde­loze tredmolen laat ronddraven.
In het tweede en derde geval probeert de robot bijvoorbeeld stee­vast rood licht uit de weg te gaan en wordt daarbij wellicht tegelij­kertijd door groen licht aangetrokken. Dergelijke gedragspatronen behoren al tot de praktische strategieën van sommige eenvoudige levensvormen.
6.2 Angsthazen en muziekliefhebbers
Interessant is ook de gedragsregel, die op de omgevende geluids­intensiteit reageert. Een schrikachtige robot met een ingebouwde microfoon kan bijvoorbeeld lawaai zoals muziek met vele zware bassen zoveel mogelijk vermijden, maar tegelijkertijd een voorliefde
voor hoge blokuittonen vertonen. De voorliefde voor hoge tonen
kan zelfs de angst voor zware bassen overspelen. Zo kan men de robot dwingen ondanks zware popmuziek toch de bron van hoge
blokuittonen op te zoeken.
Gedragspatronen, die op bassen en hoge tonen, licht en kleuren reageren, passen slechts enkele sensoren toe, zoals bijvoorbeeld
een microfoontje met twee toonlters en enkele lichtgevoelige sensoren, die met kleurlters kunnen worden uitgerust
- 21 -
6.3 Complexe lijnvolgers
Robots, die lijnen volgen of patronen ontwijken, worden vaak van een lichtbron en twee of meer lichtcellen voorzien, waarmee het
zoeksysteem de doorgetrokken lijn kan identiceren. Principieel kan
de robot van een speciale zoekroutine worden voorzien, waarmee de detector in een zoekmodus (volgens een speciaal zoekpatroon, bijvoorbeeld een spiraal met een steeds groter wordende radius) rondrijdt totdat de sensor een opvallend lijnpatroon kruist en vervol­gens deze lijn gaat volgen. Het schrijven van een software die een dergelijke zoekprocedure voor willekeurige lijnpatronen met een bevredigend gemiddelde tot een goed einde brengt, behoort al tot de uitgesproken veeleisende programmeeropdrachten.
Het project kan echter nog worden uitgebreid met een speurtocht in een willekeurig bontgekleurd lijnenpatroon, waarin de robot door geluid wordt afgeschrikt en daarop bijvoorbeeld onmiddellijk de dichtstbijzijnde rode lijn opzoekt, die hem naar een veilig onderko­men in een donkere “garage” leidt.
Zodra het na dit geluidsconcert een tijdlang rustig blijft, waagt de robot zich voorzichtig naar buiten en gaat op zoek naar een groene lijn die het systeem naar een tweede garage met een intensief groen licht zal leiden, waar de robot zich ook bij lawaai van zware
bassen veilig thuis voelt. Als men echter hoge blokuittonen in het
geluid mengt, wordt de robot onrustig en verlaat zijn groene onder­komen om de rode lijn naar de donkere hut op te zoeken.
- 22 -
Men kan zich voorstellen dat dit gedragspatroon, waarin naast de lijnvolgers, de kleurafhankelijkheid en de diverse geluidsbronnen een complexe rol spelen, hoge eisen aan de systematische aanpak van de software stelt. Alleen door middel van een goed, modulair ontwerp kan men de software zo schrijven, dat het systeem onder
alle omstandigheden stabiel en betrouwbaar het gespeciceerde
gedrag vertoont.
Aan de hand van de complexe software zal de programmeur een bewondering ontwikkelen voor de levende organismen. Zij moeten dag in dag uit een dergelijk leefpatroon (de speurtocht naar voed­sel en de opgave voor een succesvolle voortplanting) tot een goed einde brengen. Het is waarlijk een grootse prestatie van de natuur om deze software vrijwel altijd perfect te laten functioneren.
- 23 -
7 Bootloader programmeren
Let op!
Alleenvoorgevorderden:
De Arduino bootloader inladen via bijv. een STK500
Om een Atmega microcontroller via de Arduino software te programmeren, dient de Atmega te worden voorzien van een speciale Arduino bootloader. De bootloader zorgt ervoor dat de geschreven code op de juiste positie in de Atmega komt. Om de bootloader in te laden zijn de volgende componenten nodig :
* AVR Programmer board bijv. STK500 board * Voeding 12 Volt * AAR robot met een op de printplaat gemonteerde ISP connector (Afb. 7) * PC met fysieke COM poort (bij voorkeur geen USB- RS232 converter, i.v.m. de kans op timing fouten)
Download de laatste versie van de Arduino software op www.arduino.cc Het gedownloade bestand zal van het type .ZIP of .RAR zijn. Pak deze bestanden uit en plaats de gehele map op de harde schijf.
Gebruik bijvoorbeeld WINAVR om de Arduino bootloader in de robot te programmeren.
Afb. 7: ISP connector
Let op!
De hele ARDUINO software omgeving is freeware. Het komt voor dat verschillende versies Arduino Software en Arduino bootloaders niet goed met elkaar werken!
Kijk bij problemen op de diverse Arduino sites en
forums!
- 24 -
8 APPENDIX
- 25 -
Onderdelenlijst
Part Value Package
C1 18pF 0805 C2 18pF 0805 C3 0.1uf C0805K C4 0,1uf 0805 C6 0,1uf 0805 C7 470uf CPOL-USF C8 0,1uf 0805 C9 4,7uf 1206 C11 0,1uf 0805 C12 0,1uf 0805 C13 0,1uf 0805 C14 0,1uf 0805 C15 0,1uf 0805 C16 470uf CPOL-USF C17 470u CPOL-USF C19 470uf CPOL-USF D1 MBR0520 SOD-123 D2 1N4001 DO41-10 IC1 FT232RL SSOP28 IC2 L293D DIL16 IC3 ATMEGA168-AU ATMEGA168-AU IC4 74AHC1G14DCK 74AHC1G14DCK IC5 74AHC1G14DCK 74AHC1G14DCK JP1 M1 1X02 JP2 M2 1X02 JP3 BAT 1X02 JP4 4,8V 1X02 JP5 ISP 2X03 SV2 fem header FE07-1 T1 SFH300 LED5MM T2 SFH300 LED5MM T3 LPT80A LPT80A T4 LPT80A LPT80A U$1 3,3V PIN-T U$2 FE03-1 FE03-1 U$3 FE03-1 FE03-1 U$4 FE02-1 FE02-1 X1 PN61729-S PN61729-S LED1 Rd LED5MM LED2 Bl LEDCHIP-LED0805 LED3 Rd LEDCHIP-LED0805 LED4 Gn LEDCHIP-LED0805 LED5 Bl LEDCHIP-LED0805 LED6 Rd LEDIRL80A
- 26 -
Part Value Package
LED8 Rd LEDCHIP-LED0805 LED9 Rd LEDCHIP-LED0805 LED10 Rd LEDCHIP-LED0805 LED11 Rd LEDCHIP-LED0805 LED12 Gn LEDCHIP-LED0805 LED13 Rd LEDCHIP-LED0805 LED14 Bl LEDCHIP-LED0805 LED16 Rd LEDCHIP-LED0805 LED17 Rd LEDCHIP-LED0805 LED18 Rd LEDIRL80A Q1 16mhz CRYSTALHC49UP R1 20k R-US_R0805 R2 20k R-US_R0805 R3 1k5 R-US_R0805 R4 220 R-US_R0805 R5 1k5 R-US_R0805 R6 1k R-US_R0805 R7 680 R-US_R0805 R8 680 R-US_R0805 R9 20k R-US_R0805 R10 20k R-US_R0805 R11 220 R-US_R0805 R12 220 R-US_R0805 R13 10k R-US_R0805 R14 220 R-US_R0805 R15 220 R-US_R0805 R16 220 R-US_R0805 R17 220 R-US_R0805 R18 220 R-US_R0805 R19 220 R-US_R0805 R20 10k R-US_R0805 R21 10k R-US_R0805 R22 10k R-US_R0805 R23 10k R-US_R0805 R24 220 R-US_R0805 R25 220 R-US_R0805 R26 220 R-US_R0805 R27 220 R-US_R0805 R28 220 R-US_R0805 R29 1k R-US_R0805 R31 10k R-US_R0805 R32 12k R-US_R0805 S1 TACT SWITCH TACT_SWITCH S2 255SB 255SB SV1 fem header FE08-1
- 27 -
B. Hoofdprint bovenkant
- 28 -
C. Hoofdprint onderkant
- 29 -
D. Schema AAR
- 30 -
Loading...