maart 2006
Jaargang9, nummer 1,
Afz.hcc Robotica gg, p.a. Henk de Gans, Anjerlaan 3, 3871 ev Hoevelaken.
ROBOBITS-32
Voorzitter: De Robobits is een B.T.J.A.Buiskool uitgave van de RoboticaPilotenlaan 11 GG en wordt vier keer 7943 CH Meppel per jaar aan alle leden 0522-241444 van de gebruikers groep
[email protected] toegezonden. --------------------------------------De oplage is 600 Technisch adviseur: exemplaren. Ing.H.M.A. van Bodegom Tevens is de Robobit voor Stadionlaan 180 leden gratis te 7552 VE Hengelo OV downloaden als PDF 074-2434147
[email protected] bestand van de website van de gebruikers groep. --------------------------------------Secretaris: De Robotica –GG is een A.J.Janssen onderdeel van de Hobby Galjoenstraat 65 Computer Club.
-----------------------Redactie adres: H.J. de Gans, Anjerlaan 3, 3871 EV Hoevelaken. e-mail:
[email protected] Tekst aanleveren in Word of platte tekst in ASCII.Afbeeldingen los erbij in TIF, BMP of JPG formaat.
2
ROBOBITS
3534 PD Utrecht 030-2444944
[email protected] --------------------------------------penningmeester: H.J. de Gans Anjerlaan 3 3871 EV Hoevelaken 033-2535479
[email protected] --------------------------------------Lid: P.Smits Lijtweg 302 2341 HB Oegstgeest 071-5156090
[email protected]
• • • • • • • • • •
Bladz. Bladz Bladz. Bladz. Bladz. Bladz Bladz. Bladz. Bladz. Bladz.
3 4 7 8 15 19 21 22 24 28
Redactie. Ombouw Mark 3 voor Roborama wedstrijd! Zwart/Wit meten met de QRB1134. Zonnebot. Asuro programmeren met Bascom. Doorstart MCP. Pittige motor sturing! RoboRama. Avonturen met de spacebot van Action!. Agenda.
Heel Nederland is in de ban van het WK voetbal, en de oranje koorts slaat dan gelijk toe (niet te verwarren met de vogelgriep ;-)). Ook de Robobits komt niet onder deze oranje koorts uit, echter om een andere reden! Ook voor ons robotbouwers slaat de koorts toe, dit jaar vindt tenslotte de eerste RoboRama wedstrijd plaats! Op 6 mei 2006 vind deze plaats in België georganiseerd door RobotMC. En tijdens de hcc!dagen van 2006 hopen wij als hcc!robotica de tweede wedstrijd te organiseren! Aan u om aangestoken door de koorts, een of meerdere robots te gaan bouwen om aan deze wedstrijden mee te gaan doen! Bedenk daarbij wel, dat meedoen belangrijker is als winnen! Neem het woord wedstrijd dan ook niet te zwaar op, het is een leuke gezellige competitie, waarin geen grote prijzen zijn te verdienen maar wel veel eer! We hopen dat RoboRama een stimulans zal zijn, om zowel onze bijeenkomsten als die van RobotMC te bezoeken. Op beide bijeenkomsten staat elke maand de wedstrijd baan klaar voor test doeleinden! Deze Robobits biedt echter meer! Bas geeft vast een voorzet op zijn RoboRama voorbereidingen en een TIP aangaande de veelgebruikte QRB1134 infrarood sensor. Met welwillende toestemming van Edwin Dertien, heb ik een bouw beschrijving van een zonnebot mogen aanpassen en publiceren. Erg leuk projectje voor iedereen die geïnteresseerd is in zonne energie! Ook de ASURO van Conrad krijgt weer aandacht, nu rondom de mogelijkheid hem te programmeren met Bascom. Een Fred Eisen doet verslag van een ombouw van een goedkope in de winkel leverbare robot die nu ineens veel meer mogelijkheden bied! Voor ieder wat wils dus! Mooi dat ook nu weer enthousiaste leden de moeite hebben genomen andere te laten delen in kennis en informatie, daarvoor is tenslotte de Robobits! Veel leesplezier toegewenst! Henk de Gans PS.plaatje op omslag van Roboramabaan is gemaakt door Aloys Verstraeten
Logo ontwerp RoboRama is gemaakt door Wim de Boer
maart 2006 3
---------------------------------------------------------------------------deadline deadline deadline deadline deadline deadline deadline deadline
---------------------------------------------------------------------------De deadline voor kopie voor Robobits 33 die eind juni 2006 zal uitkomen, is gesteld op woensdag avond 21 juni 2006!!!! Maar u hoeft natuurlijk niet zo lang te wachten, nu al insturen kan natuurlijk ook! Iedereen wil heel graag eens wat lezen over dat waar u mee bezig bent, en natuurlijk met onze hobby te maken heeft! Vooral van u, die niet in de gelegenheid bent onze bijeenkomsten te bezoeken! Zoals al eerder gezegd, hoeven het geen hoogdravende journalistieke meester werken te zijn(mag natuurlijk wel;-))). Gewoon een leuk stukje over uw creatie of iets dergelijks, of wat informatie over iets waarvan u gehoord of gelezen hebt enz. Ook zoek ik nog een boek bespreking(of tijdschrift).
---------------------------------------------------------------------------deadline deadline deadline deadline deadline deadline deadline deadline
---------------------------------------------------------------------------Nu de HCC Robotica voor de eerste keer gaat deelnemen aan de open RoboRama wedstrijd van onze Belgische vrienden van de RobotMC begint hier de spanning aardig op te lopen en heeft Henk de Gans ijverig een baan volgens de geldende reglementen in elkaar gezet.Ook ik, die eigenlijk helemaal niet van competities houd, heb een Mark III aangeschaft en bij de Fa Ecolan te Kampen een stukje vijverdoek opgehaald.Ik wilde de Mark III (we noemen hem vanaf nu Mark) aan drie disciplines, heen en weer / lijn volgen / T- rijden, mee laten doen. Bij onze eerste test, rijden over het vijverdoek, liepen we tegen een groot probleem aan. Mark begon te stuiteren en dat bleek te liggen aan het feit dat Mark maar twee wielen heeft. Het derde steunpunt is de schuiver, waar de drie lichtsensors achter zitten. Omdat het vijverdoek stroef is wordt de schuiver omhoog gedrukt, waardoor Mark regelmatig op twee wielen rijdt en dus een kleine evenwichtskunstenaar is. Nu kan je hier over zwijgen en dus een voorsprong behalen, maar dat is wat ik haat aan
4
ROBOBITS
competities. (De Coubertin zei dat deelnemen belangrijker was en dus deel je de kennis met je vrienden.)Mark III moet dus aangepast worden aan de gekozen ondergrond, vijverdoek !Ik heb er voor gekozen om tussen het chassis en de schuiver een u-profiel te plaatsen en daar onder een wiel te monteren die de schuiver enkele millimeters boven het doek kan houden. In mijn rommel bakje lag een oud rollagertje met steun, maar een vliegtuigwiel van 18 mm met een peperclip kan hiervoor natuurlijk ook gebruikt worden. Plaats het wiel niet in het midden van u karretje. De ruimte daar is zeer klein en er lopen nog al wat draden van de IR-sensoren. Ik heb mijn wiel in het midden van twee IRsensoren geplaatst, waardoor de schuiver ong. 25 mm naar voren geplaatst is. De batterijhouder aan de onderzijde moeten wel gefixeerd worden omdat het zwenkwieltje zou kunnen raken.Ik heb het chassis bewust intact gelaten, omdat ik het niet mocht slopen van mijn vrouw, en gebruikgemaakt van de bestaande bevestigingspunten. Als je heel goed kijkt staat het neuswiel iets te hoog, maar het functioneert er niet minder om.Wanneer we Mark nu op een stukje vijverdoek laten lopen dan is het stuiter probleem opgelost, maar constateren we dat rechtdoorlopen er niet inzit. Met het huidige programma beschrijft Mark een boog met een straal van ong. een meter. Dit betekende een tweede modificatie.Mark rechtdoor laten lopen!Mark heeft aan de voorzijde drie IR-sensoren. Voor het lijn volgen zou een sensor kunnen volstaan en dus kunnen de twee buitenste voor een ander doel gebruikt worden. Of, indien je toch 3 sensoren wil gebruiken zou je er twee kunnen bij kopen. Ik heb nu de buitenste twee IR-sensoren op de achterste steunen van de servo’s gemonteerd en op het wiel gericht, waar nog een zwart/wit verdeling op gemaakt moet worden
maart 2006 5
met de graveermachine Mark II. We kunnen nu dus software matig regelen dat we rechtdoor kunnen rijden. Een veel groter pluspunt is dat we ook kunnen berekenen hoeveel afstand we hebben afgelegd, hoeveel stapjes we moeten nemen om ong. 90 of 180 graden te draaien met een nauwkeurigheid van enkele millimeters ?Wanneer we deze twee modificaties hebben doorgevoerd en het printplaatje 180 graden gedraaid hebben en iets hoger geplaatst
hebben kunnen we het 9V batterijtje onder de printplaat schuiven en hoeven we het wiel niet eerst te verwijderen om de batterij te vervangen. Waar we het nu nog niet over hebben gehad is de twee Sharp GP2D12 sensoren aan de achterzijde plaatsen waar in de oude situatie de 9V batterij lag en Mark is compleet gerestyled (pimped heet dat tegenwoordig). Ik zou in ieder geval aanraden de vrij hangende Sharp sensoren goed te ondersteunen zodat ene steun waar hij nu aan vast zit bij het sumo-worstelen niet afbreekt. Mijn Mark stond in ieder geval al behoorlijk achterover om af te breken.Het enige wat ons nu nog rest is alles netjes te gaan programmeren met de Proton Basic compiler en de disciplines lijnvolgen, Heen en Weer en T-Rijden netjes uit te voeren.
In ons Robobitje wil ik een heel eenvoudig voorbeeld geven van hoe je het lijnvolgen zou kunnen programmeren a.d.h. van een eenvoudig stroomdiagram.
6
ROBOBITS
Het Basic programma hier weergeven lijkt me geen goede zaak. Ben je daarin geïnteresseerd dan moet je maar op mijn website, www.boetekees.tk (klik op HCC), kijken waar alle sources staan .
Bas.Boetekees.
Op de bijeenkomst van 4 maart ontstond er enige discussie over het gebruik van de QRB1134, zoals deze op de Mark III is gemonteerd. Zwart/wit kijken is voor de Robots die mee willen doen aan de RoboRama evenementen, 6 mei 2006, te België erg belangrijk. Vandaar dit korte verslag over mijn ervaringen met deze sensor. Ik heb een schakeling op een breadbordje opgezet. De sensor QRB1134 is, zoals in nevenstaande figuur is weergegeven, aangesloten en de afstand tot het vijverdoek, waarop de robot komt te rijden, is ong. 3 mm.
We meten een spanning, op punt A, van ong. 4,8 V als de ondergrond zwart is en ong. 0,6 V als we een wit vel papier, zo plat mogelijk, op het vijverdoek drukken.
maart 2006 7
Wat gebeurt er als de afstand tussen sensor en ondergrond wijzigt ? 1. Afstand kleiner dan 3 mm. Als we de sensor ong. 1,5 mm boven het oppervlak zetten dan geeft een witte ondergrond een spanning van ong. 3,0 V en zwart blijft nagenoeg hetzelfde. 2. Afstand groter dan 3 mm. Als we de sensor ong. 4,5 a 5,5 mm boven het oppervlak zetten dan wordt de waarde van zwart ong. 4,0 V en een witte ondergrond geeft ong. 0,2 V op punt “A”. Deze metingen leert ons dat we de afstand eigenlijk groter moeten maken dan de specificaties van de fabrikant ons opgeeft voor onze toepassing. Hopelijk kan iedereen hiermee zijn voordeel doen. Bas Boetekees.
Beschrijving voor de bouw van een klein robotje dat op zonneenergie kan rijden. Het is de bedoeling om met weinig onderdelen een klein karretje of anderszins bewegend 'iets' te maken dat met zo min mogelijk energie zoveel mogelijk beweging maakt. De energie wordt uit een klein zonnepaneeltje gehaald. Voor de aandrijving wordt een motortje gebruikt uit een walkman o.i.d. Het leuke van dit soort robotjes is dat ze waarschijnlijk over een jaar of 20 nog steeds werken. Ze hebben alleen wat zonlicht nodig, en de
8
ROBOBITS
zon blijft voorlopig nog wel even schijnen. Voor het bouwen is een klein beetje technische kennis nodig, maar vooral veel fantasie. De benodigde onderdelen: • • • • • • • • • •
2N3906 Transistor 2N3904 Transistor 2,2K weerstand 4700 uF condensator Knipper-LED Stukje zwart krimpkous Zonnepaneeltje Motor uit een walkman Printplaatje van 2x4cm om de onderdelen op vast te solderen 3 twee-polige stekkertjes met aansluitsnoer, om de motor, zonnepaneel en condensator met het printplaatje te verbinden.
Verder is behalve wat gereedschap nog wat sloop-materiaal nodig, om zo creatief mogelijk een robotje mee in elkaar te zetten. Hiervoor kunnen onderdelen uit een walkman, CD-ROMspeler of een ander dump-apparaat gebruikt worden. Gereedschap dat nodig is: • • • •
Soldeerbout met soldeertin e.d. tangetje Lijm (uit lijmpistool of secondenlijm) lucifers of aansteker
Het idee Meestal kan een zonnepaneeltje niet genoeg energie opwekken om direct een motortje aan te drijven. Een klein zonnepaneeltje, zoals gebruikt wordt in een rekenmachientje, levert misschien maar 1,0 mA bij 2 volt (vergelijk maar met een batterij: twee penlitebatterijen kunnen makkelijk 500 mA bij 3V leveren, dat is ruim 500 maal zoveel energie).Om nu toch een motortje op een klein zonnepaneeltje aan te kunnen sluiten, is een handige truuk bedacht. Je gebruikt het zonnepaneel om een 'accu' op te laden (in dit geval is de 'accu' een grote condensator). Als de condensator helemaal vol
maart 2006 9
zit, sluit je de motor erop aan, zodat deze even gaat draaien. Daarna kan de condensator weer met de zonne energie worden opgeladen, enz. Hierbij ontstaat een klein probleempje: Wanneer moet je nu de motor op de condensator aansluiten, en het zonnepaneeltje er van afhalen? En hoe kun je dit doen, zonder zelf steeds een paar draadjes aan elkaar vast te moeten knopen, en daarna weer loshalen?Een simpele elektronische oplossing kun je maken met transistors. Transistors zijn een soort drukknoppen (net zoals bij een deurbel) die je met een klein stroompje bestuurd. Hieronder staat een schema getekend van hoe alle onderdelen aan elkaar vastzitten. Je ziet twee transistors, een knipperLED, een weerstand van 2.2kOhm, de motor, de condensator, en tenslotte het Zonnepaneel.Hieronder staat het aansluitschema, wanneer het zonnepaneel de condensator aan het opladen is:
Het bovenstaand schema laat dus zien wat er gebeurt als de condensator wordt opgeladen. De transistor laat geen stroom door,
10 ROBOBITS
zodat alle stroom van het zonnepaneel naar de condensator gaat.
Op een gegeven moment is de condensator opgeladen, en komt er een spanning over de knipperLED staan. De knipperLED knippert, en stuurt daarmee de transistor aan in de lus met de motor. Er kan een stroom naar de motor lopen (zie de dikke zwarte pijl). De motor gaat even draaien. Zodra de condensator leeg is, loopt er ook geen stroom meer door de 2N3904 transistor. De motor is niet meer aangesloten op de condensator. Nu kan de condensator weer opgeladen worden, zoals te zien op het plaatje op de vorige bladzijde. Pas als de condensator weer helemaal is opgeladen, krijgt de knipperLED weer de kans om te knipperen, en zo de transistor aan te sturen. Met dit idee kun je eenvoudig een klein rijdend zonne-robotje in elkaar zetten. Je hebt een zonnepaneel nodig, een schakeling met twee transistoren, een knipperLED, een weerstand, een grote condensator en een motortje. Met dit motortje kun je verschillende dingen doen. Je kunt een rijdend karretje maken. Dit is erg leuk om te doen, omdat je met verschillende karretjes een wedstrijd kunt houden wie de grootste afstand af kan leggen in een bepaalde tijd. Je kunt er ook andere bewegende 'robots' mee maken, maar hierover later meer. Eerst het bouwen van de elektronica.
maart 2006 11
De elektronica Elektronische schakelingen kun je op verschillende manieren bouwen. Een simpele methode is met draadjes aan elkaar knopen, of met een insteekbordje. Op zo'n manier worden vaak proefschakelingetjes opgebouwd, waar nog wat aan veranderd kan worden. Als je echt een 'langer houdbare' schakeling bouwt, gebruik je meestal een soldeerbout. Met een soldeerbout kun je onderdelen op gaatjesbord vastmaken, je kunt de pootjes van onderdelen direct aan elkaar solderen, of je kunt gebruik maken van een kant-en-klare printplaat. De knipperled moet voordat deze op de print wordt gesoldeerd worden voorzien van een stuk krimpkous. Er mag namelijk geen licht vallen op deze LED, want dat beïnvloed de werking nogal. Schuif daarom een stukje kous over de led, en verhit dit voorzichtig door er een aansteker ongeveer 7cm onder te houden. Zodra de LED lichtdicht verpakt is kun je hem vastsolderen.
De mechanische constructie Voor de constructie is eigenlijk geen regel gegeven of stappenplan mogelijk. Hier volgen een paar afbeeldingen van verschillende opties, maar het is eigenlijk de bedoeling zelf zo'n creatief mogelijke constructie te bedenken. Hierbij moet wel met een paar dingen rekening gehouden worden:
12 ROBOBITS
• •
•
De constructie moet erg licht zijn. De motor levert namelijk maar heel kortstondig een klein beetje energie, dus is het erg belangrijk dat de constructie wel vooruit kan komen. De aandrijving moet dus ook erg soepel zijn. Je kunt bijvoorbeeld de motoras met een druppel lijm direct op de grond zetten. (zie afbeelding hieronder) Dit is één van de meest simpele methodes. Je kunt natuurlijk ook gebruik maken van de aanwezige wieltjes en snaartjes. De elektronica moet er goed in passen. Onderdelen zoals het zonnepaneel moeten natuurlijk bovenop komen, maar waar zet je bijvoorbeeld de grote condensator?
Voorbeelden
Dit is een eenvoudige constructie: De as van de motor steunt op de grond. De condensator is tegen de motor gelijmd. Merk op dat hier geen printplaat is gebruikt. De onderdelen zijn in de lucht aan elkaar gesoldeerd.
maart 2006 13
Dit is ook een leuke constructie. Helaas is zoiets voor een wedstrijdje minder geschikt. Vaststaande bouwsels zoals deze zijn natuurlijk wel erg leuk om voor je raam te zetten. Iedere keer dat er een beetje zon is, begint het vlaggetje te draaien.
Je zou het niet zeggen, maar deze robot is ook met dezelfde elektronica gemaakt. De overbrenging met een elastiekje werkt uitstekend. Bij elke stap die het robotje zet beginnen de voelsprieten te trillen.
14 ROBOBITS
Deze robot rijdt zonder wielen. Hij wordt aangedreven doordat de motoras direct de grond raakt. Zodra deze robot ergens tegenaan botst, rijdt hij een andere kant op. Tot slot Er is veel informatie over dit soort elektronica te vinden op het internet. In Amerika worden veel wedstrijden georganiseerd in het bouwen van zonne-robots. De robots die ze daar bouwen zijn ook echte 'robot's', die obstakels kunnen ontwijken, licht kunnen zoeken, communiceren met een grote 'moederrobot' en ga zo maar door.
Als je meer wilt weten kun je misschien de volgend robot-pagina eens bekijken:www.solarbotics.com (een site waar alle gegeven informatie op terug te vinden is) Dit document werd geschreven als handleiding voor een van de nevenactiviteiten bij het KIJK Space Camp 1999 voor de Universiteit Twente. Het schema dat gebruikt is, bevat copyrights onder de naam 'Solarengine' 'Solarengine' is een geregistreerd handelsmerk van Mark W. Tilden en BEAM Robotics, Amerika. Redactie:.Dit artikel is met bereidwillige toestemming van de maker Edwin Dertien, overgenomen van zijn website en
maart 2006 15
aangepast voor publicatie in Robobits. Het originele artikel kunt u vinden op: http://www.dertien.dds.nl/content/files/solarengine/zonnebot.html
Door Rien van Harmelen 1. Inleiding In Robotbits no. 29 stond een artikel “Asuro Robot” door Jack Ruben. Uit het artikel bleek dat de Asuro-robot ook in Bascom geprogrammeerd zou kunnen worden. Omdat ik al enige tijd overwoog om te gaan programmeren in Bascom (–AVR) was dit de gelegenheid om me erin te bekwamen via een leuk robotje. Zoals Jack al vermeldt krijg je bij Conrad voor euro 49.95 een zeer compleet bouwpakket (1). Het in elkaar zetten leidde, (bij mij)niet tot problemen. De enige verandering die ik aangebracht heb is het front”wiel”. Voorgesteld wordt in de handleiding om een halve pingpong-bal te lijmen tegen de onderkant van de Asuro-print. Ik heb daar een “echt” wieltje voor gebruikt. Naast het bouwpakket voor de Asuro-robot wordt er ook nog een bouwpakketje, een RS 232 infrared transceiver, bijgeleverd, waarmee draadloze programmering mogelijk is (dit is sowieso al interessant !!). Te koop tegen meerprijs (euro 19.95) (1) is een USB infrared transceiver, waarmee draadloze programering mogelijk is via de USB Poort (Hier heb ik, vooralsnog, geen ervaring mee). Opmerking: Bij het ter perse gaan van dit artikel waren er inmiddels al verschillende uitbreidingen te koop (ultrasoon afstandsmeting, infrarood hindernis-detector, I2C). 2. Inlezen Bascom (-AVR) programma Als de Asuro-robot en de Infrared tranceiver in elkaar gezet en getest zijn (er is een uitgebreid testprogramma aanwezig op de
16 ROBOBITS
bijgeleverde CD) moet er in geval van “Bascom –gebruik” het Asuro Flash programma vanaf de bijgeleverde CD gekopieerd worden naar de harde schijf in bv C:\programs\flash. Het inlezen van ‘n Bascom programma in de Asuro-robot gaat nu als volgt: Stap 1:Schrijf een Bascom programma (zie Hoofdstuk 3).Compileer het Bascom programma (er wordt nu onder andere een .hex file aangemaakt) Stap 2:Start het Asuro Flash Programma.Kies in het Asuro Flash Programma de Com poort waarop de Infrared transceiver is aangesloten en laad de bewuste (Bascom) .hex file in het Asuro Flash Programma. Stap 3:Plaats de Infrared transceiver boven de Asuro-robot met de componenten-zijde naar elkaar toe. Click op “Program” in het Asuro Flash programma, waarbij min op meer gelijktijdig de switch S1 op de Asuro-robot op ON gezet wordt. Bij een goede communicatie (tussen de Asuro-robot en de Infrared transceiver) zal de .hex file geladen worden in het flash memory van de processor. Stap 4:Als de .hex file is ingelezen (het Asuro Flash programma zal eindigen met “ All Pages Flashed” en “ASURO Ready to start !!”) zet de switch S1 op de Asuro-robot op OFF. Stap 5:De Asuro-robot wordt tot “leven gebracht” door de switch S1 weer op ON te zetten. 3. Bascom programma’s Voor de Asuro robot zijn op het web veel programma’s in C+ voorhanden (2). Er is, bij mijn weten, slechts ėėn site waar ingegaan wordt op het programmeren van de Asuro-robot in Bascom: ”Der Versuch Asuro in Bascom zu übersetzen” (zie verwijzing naar deze site in (2)). De heer Moritz, de beheerder van deze site, heeft mij echter laten weten dat zijn interesse momenteel ergens anders ligt. Het Bascom gedeelte van zijn site wordt ook door hem niet meer bijgehouden. We zullen het dus zelf moeten doen. Ondanks enkele fouten heeft deze site mij wel een eind op weg geholpen. Ik zou dan ook de geïnteresseerden aanraden deze site te raadplegen. Belangrijk bij het programmeren is te weten op welke poorten van de microprocessor de verschillende onderdelen zijn aangesloten. In Tabel 1 zijn de verschillende onderdelen met hun aansluitingen gegeven.
maart 2006 17
Frontled (line)
Backled
Pollswitch Motor-rechts
Motor-links
Odometer
poort D.6 C.2 C.3 C.7 C.0 C.1 C.4 D.3 B.1 D.4 D.5 B.2 B.4 B.5 C.0 C.1 D.7
In/output Output Input Input Output Output Output Input Output Output Output Output Output Output Output Input Input Output
Tabel 1 Als eerste oefening heb ik voor de verschillende onderdelen “test”programma’s gemaakt. Het zou te ver voeren van al deze programma’s in dit artikel de listing te geven. Volstaan wordt met de listing van het programma “Test. Pollswitch”. Geïnteresseerden kunnen bij mij (3) de listings van de overige “test”programma’s opvragen (frontled, backled, motor, odometer). Het programmaatje “Test.Pollswitch” activeert de 6 schakelaartjes (K1 t//m K6) aan de voorkant van de Asuro-robot. Drukken op K1 geeft (op de HyperTerminal) de uitvoer: 32, K2 geeft: 16, K3 geeft: 8, K4 geeft: 4, K5 geeft: 2 en K1 geeft: 1 ‘Test Pollswitch $regfile = "m8def.dat" $crystal = 8000000 $baud = 2400 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Enable Adc Declare Function Pollswitch() As Byte
18 ROBOBITS
'Pollswitch Config Pind.3 = Output Portd.3 = 0 Config Pinc.4 = Input Portc.4 = 0 Dim Poll As Byte Do Poll = Pollswitch() Print Poll Waitms 100 Loop Function Pollswitch() As Byte Dim Erg1 As Word Dim Erg2 As Long Portd.3 = 1 Erg1 = Getadc(4) Erg2 = 10240000 / Erg1 Erg2 = Erg2 - 10000 Erg2 = Erg2 * 63 Erg2 = Erg2 + 5000 Erg2 = Erg2 / 10000 Pollswitch = Erg2 Portd.3 = 0 End Function 4. Vervolg Mogelijk worden enkele lezers over de streep getrokken om een Asuro-robot aan te schaffen nu blijkt dat de robot naast C+ ook te programmeren is in (de wat eenvoudigere taal) Bascom. Inmiddels hebben enkele leden de robot aangeschafd. Zij kunnen je tijdens de maandelijkse bijeenkomsten in Nieuwegein met raad en daad bijstaan met programmeren, leuke ideetjes, etc.etc. Het is dus nu de gelegenheid aan te haken. Misschien zijn er nog andere lezers bezig met het programmeren in Bascom voor de Asuro-robot. Hier ben ik als beginneling uiteraard zeer in geinteresseerd.Zelf werk ik momenteel aan een Line Following programma en een Quick Trip programma (zie voor definities (4)). Na afronding zijn ook de listings van deze
maart 2006 19
programma’s voor de geïnteresseerden beschikbaar (waarbij ik natuurlijk zeer geïnteresseerd ben in commentaar). Waar ik, vooralsnog, wat problemen mee heb is het gebruik van de odometer (het tellen van het aantal omwentelingen van de beide wielen bij een “hoge” snelheid). 5. (1) (2) age (3) (4)
“Literatuur” & Websites Conrad gids 2005, blz. 830 http://asuro.pytalhost.de/pmwiki/pmwiki.php?n=Main.HomeP
[email protected] http://www.dprg.org/competitions/roborama.html#qt
In april 2004 startte de NewBrain gg een micro controller project met als doelgroep de absolute beginner. Nu eens geen geavanceerde ontwikkelpakketten voor topgeleerden maar eenvoudig knutselwerk waaraan iedereen met een beetje interesse voor hardware en het edele soldeerwerk zondermeer aan kan deelnemen.Door allerlei omstandigheden is dat schip na twee soldeer sessies vastgelopen.Na twee jaar hebben 6500 gg en de NewBrain gg gezamenlijk dit schip weer vlotgetrokken. Zoals gezegd, de doelgroep is de beginner, die eigenlijk nog niet eens zeker weet of deze hobby wel voor hem/haar geschikt is. Wanneer je aan iets nieuws begint, ga je daar geen honderden euro’s aan besteden, daarom zijn de instapkosten erg laag gehouden. Het nadeel is dan weer dat het geen hippe uitstraling heeft, maar de processorkracht is er niet minder om. Er is gebruik gemaakt van bestaande materialen, zoals printen van de Forth gg een cursus uit België (met toestemming van de schrijver) en massale inkoop van de onderdelen. De meegeleverde software is de demo versie van Bascom, een volwaardige compiler met als enige beperking de 1KB grens.Dit is niet veel, maar om te beginnen is het voldoende.Indertijd is er zelfs een flinke korting bij de leverancier bedongen, of dat nog geldig is, is een kwestie van overleg met de leverancier. Laten we niet te hard van stapel lopen.Stapje voor stapje, we komen er wel, Keulen en Aken……weet je wel. Het hele bouwpakketje is te koop voor € 50,- (voor NB leden) De mensen die twee jaar geleden al meededen, weten het al, het is heel
20 ROBOBITS
goed mogelijk om binnen een paar uur een werkend systeempje te hebben.Zaterdag 1 april (nee geen aprilgrap) bouwen 4 mensen van de 6500 gg een setje.Het is de bedoeling dat er uitsluitend tijdens de bijeenkomsten aan de setjes zal worden gewerkt. Zo kan iedereen het wel en wee van de hardware volgen. Niet alleen de hardware, maar uiteraard zal ook de software niet worden vergeten.Voor het software gebeuren is het Internet een uitstekend communicatie middel.De gespreksgroep van Robotica lijkt mij een prima medium hiervoor. Het grootste belang bij dit project is de continuïteit, daarom zijn er nu twee gebruikersgroepen die er de schouders onder zetten. Er is lering getrokken uit de eerder gemaakte fouten. Deelnemers zijn verzekerd van ‘aftersales service’.Dit is van het grootste belang, omdat de doelgroep de absolute beginner is. Er zijn geen specifieke vaardigheden noodzakelijk, natuurlijk, als u nog nooit een soldeerbout hebt vastgehad, dan kan enig oefenen op een stukje afvalprint zeker geen kwaad. Als u de documentatie stap voor stap volgt, rijdt u zo het volgende station binnen. Een eindstation is er niet, u bepaalt zelf waar u instapt, maar ook wanneer u uitstapt. Tot slot: de prijs, want als echte Hollander is dat de bottomline NB leden bouwpakket € 50,- gebouwd € 60,Niet NB leden bouwpakket € 60,- gebouwd € 70,Verder zit er een CDrom met de documentatie, de cursus en bouwbeschrijving bij.Er is geen papier, zelf afdrukken als u alles op papier wenst.Maximaal 2 bordjes per persoon. Voor nadere gegevens zie de site's van NewBrain en 6500 http://www.hobby.nl/~newbrain-gg/ http://home.versatel.nl/beugel47/ selecteer 6500 gg Er is een soortgelijk project door MCSelec opgezet, kost slechts € 79,- ziet er heel mooi uit. is zeker het bekijken waard. http://www.mcselec.com/index.php?page=shop.product_details&fly page=shop.flypage&product_id=139&category_id=8&option=com_p hpshop&Itemid=1 De concurrentie spekken? nee, maar om achteraf te horen dat ze liever bij MCSelec hadden gekocht is niet leuk. Zoals gezegd, wij zijn
maart 2006 21
niet commercieel.Wij propageren een leuke hobby, van wie en bij wie u de spullen koopt is aan u. Veel knutselplezier! Groeten, namens het hele MCP team, Dré Jansen Naschrift redactie: Een mooie manier om voor relatief weinig geld, in samenwerking met anderen de eerste stappen te zetten in de wondere wereld van micro processoren. In dit geval een AVR microprocessor met Bascom als Basiccompiler. De hcc! 6500 GG houd zijn bijeenkomst altijd samen met onze robotica GG, in dezelfde zaal. Deze bijeenkomsten vinden altijd plaats op de eerste zaterdag van de maand in buurthuis t’Dok te Nieuwegein. Verdere adresgegevens vind u op de omslag!
22 ROBOBITS
Soms ben je met een project bezig en dan denk je, ik kom net wat vermogen op mijn voertuig te kort. Die motor is net te zwaar voor mijn huidige stuurelektronica, en dan ga je op zoek. En dan kom je een mooie print tegen. Op de website van micros.com stond een stuurprint, genaamd NMIH-0050, met oa de volgende specificaties: 5 Amp continu, 6 Amp Piek, voeding van 5,3 tot 40 Volt. Als je dat leest wordt je nieuwsgierig en ga je de documentatie opzoeken. Dan blijkt de print uit slechts een paar onderdelen te bestaan, met als belangrijkste een vermogens IC met daarin twee halve Hbruggen. Het leuke van deze schakeling is dat de bekende fout bij een hele H-brug dat je de hoge poort en lage poort gelijktijdige actief maakt niet kan realiseren. In elke halve H-brug schakeling zit interne elektronica die ervoor zorg dat altijd OF de hoge poort OF de lage poort ingeschakeld is. Dus NOOIT beide.Ik dacht, deze moet ik hebben. De prijs viel niet tegen, maar de verzend en handelingskosten WEL. Deze waren meer dan de print zelf.Twee weken later kwam de print binnen, in mijn schakeling gebouwd en draaien met de handel. Door de twee ingangen met puls breedte modulatie aan te sturen is het heel goed mogelijk om een pittige motor in draairichting en in snelheid te varieren.Een klein minpuntje was het feit dat de mechanische constructie niet helemaal goed was. De koelplaat maakte bijna contact met de plus van de motorsturing EN bijna met een uitgang van de motorsturing. Als je in het geval van sluiting de motorrichting om zou draaien, dan heb je dikke sluiting over je print en zou de motor ongecontroleerd gaan draaien. Niet echt wenselijk. Na het wegvijlen van twee hoekjes was dit probleem ook weer opgelost. Uiteindelijk conclusie. Ik ben zeer tevreden met deze print. Ziet er mooi uit, werkt goed en is zeer compact. Prijs acceptabel, verzend en handelingskosten minder. Maar ja, naar de kroeg gaan kost ook geld. Abraham Vreugdenhil.
maart 2006 23
Naast deze zware tweevoudige 1/2 H-brug hebben ze bij newmicros ook 1 en 3 Ampere motorstuurprinten. Het bekijken waard denk ik: http://www.newmicros.com/ Materiaal verzamelen, zagen, boren, schroeven, lijmen, solderen en dan is het eindelijk zover: je hebt een robotje gemaakt. Gelukkig ligt de volgende uitdaging al klaar: de software. Een routine om de sensoren uit te lezen, de motor aan te sturen enzovoort. De meeste van ons kennen dit wel: weken of maanden bezig zijn en dan is de robot af. Hij rijdt vooruit, achteruit, kan in een cirkel rijden en reageert op obstakels. En dan komt de vraag: hoe nu verder? Het antwoord hierop is: Roborama. Roborama geeft de keuze uit vier verschillende opgaven: Bij heen & weer moet de robot van één kant van de baan naar de andere kant rijden en weer terug en bij T-Tijd wordt dit uitgebreid met de derde hoek van de baan. Daarnaast kent RoboRama de onderdelen lijnvolgen (volg een witte lijn op een zwarte ondergrond) en het onderdeel voor de gevorderden: blikken, waarbij 6 blikken gelokaliseerd en opgehaald moeten worden. RobotMC organiseert op 6 mei voor de tweede keer de open club kampioenschappen met de vier RoboRama onderdelen, mini-sumo en lijnlabyrint wedstrijden. Heb jij een robotje dat één of meer van deze opgaven kan uitvoeren, schrijf je dan kosteloos in via
[email protected]. Maar ook toeschouwers zijn welkom op 6 mei. Kijk voor meer informatie op www.robotmc.org. Joep Naschrift redactie: tot zover de oproep van RobotMC voor deelname aan RoboRama. Onderstaande oproep komt van de maillist, en geeft nog wat nadere informatie rondom aanmelding en deelname. Zoals jullie allen ongetwijfeld weten worden op 6 mei de tweede open club kampioenschappen van RobotMC gehouden. Er worden dan wedstrijden gehouden in de disciplines: - Heen en weer - Lijnvolgen
24 ROBOBITS
-
T-tijd Blikken Mini-sumo Lijn-labyrint
Een maand geleden heb ik aangegeven dat het voor de organisatie belangrijk om een idee te hebben hoeveel deelnemers we per onderdeel kunnen verwachten, zodat we een globale indeling van de wedstrijden kunnen maken. Het aantal inschrijvingen is echter nog steeds laag. Ik begrijp dat velen wel overwegen om mee te doen en vaak ook met een robot bezig zijn. Maar het inschrijven wordt uitgesteld omdat nog niet onzeker is of de robot op tijd af is. We willen de wedstrijd goed organiseren en zoveel mogelijk mensen in staat stellen om deel te nemen. We hebben daarom gekozen voor een inschrijving in twee stappen: 1. voorlopige inschrijving voor 31 maart. Iedereen die overweegt deel te nemen kan zich vrijblijvend inschrijven en daarmee een plaats reserveren voor deelname. Bij de inschrijving aangeven aan welke onderdelen je deel wilt nemen en of je "mischien" (<50%) of "waarschijnlijk" (>50%) aan dit onderdeel zal deelnemen. Dit geeft ons een beeld van het aantal deelnemers per onderdeel zodat we kunnen gaan plannen en wedstrijdschema's voorbereiden. 2. voorlopige inschrijving omzetten in een definitieve inschrijving voor 28 april. Bij de omzetting van de voorlopige naar definitieve definitieve inschrijving geef je per onderdeel aan dat je daadwerkelijk deelneemt, wat de naam is van de robot en wie deze bedient (als je dat zelf niet bent). Op basis van deze informatie kunnen we de wedstrijdschema's in detail bepalen. Als je met meerdere robots aan hetzelfde onderdeel wilt deelnemen, moet je je meermalen voor dat onderdeel (voorlopig & definitief) inschrijven. Je kunt voor ieder onderdeel een andere robot gebruiken, maar ook dezelfde robot aan meer onderdelen laten deelnemen. Enne... De genoemde data zijn de deadline - het mag best eerder! Kortom: schrijf je snel - maar zeker voor 31 maart
maart 2006 25
(voorlopig) in om je plaats te reserveren en eventuele deelname zeker te stellen. Namens de wedstrijdcommissie, Joep.
26 ROBOBITS
Afgelopen december kocht ik voor 10 euro een robot met een infrarood afstand bediening. Het is een robot voorzien van 3 motoren, 2 bij de benen en 1 bij de rechterarm. Met de rechterarm kan hij het wapen richten. Via de luidspreker laat hij horen wat hij te zeggen heeft. Met de afstand bediening kun je hem allerlei handelingen verrichten, zoals dansen, lopen(afwisselend rechter en linker motor aansturen) naar voren of achteren, naar voren/achteren glijden, naar links/rechts draaien, met de wapen richten en schieten, en tenslotte zijn vuurmechanisme laden dan eventueel achter elkaar met schijfjes gaan schieten. Dat schieten gaat behoorlijk ver! Ze zijn gekleurde viltachtige schijfjes.Op zijn body heeft hij ook een aantal knoppen zitten, waarmee een aantal stappen erin geprogrammeerd kan worden. De robot loopt op 6 penlites, 4 voor hemzelf en 2 voor de afstandsbediening. (zie foto)Als robothobbyist wil je iets doen met dit robot, zodat hij ook autonoom obstakels kan ontwijken, zonder de afstandsbesturing zelf te bedienen. Voorwaarde bij dit project is dat de bestaande robotfuncties niet veranderd mogen worden, en ook niet aan de elektronica. Mijn eerste gedachte was om de afstandsbesturing te voorzien van een microprocessor en deze afstandsbediening als een rugzak op de rug van de robot te plaatsen. Als micro had ik de ATMEGA8 in gedachte, die ik ergens nog heb liggen.Met een HCT4066 (bilateral switches) aan de toetsen zou de micro de robot kunnen besturen. Dit idee heb ik snel laten varen daar ik moet gaan ingrijpen in de elektronica van de afstandsbediening. Het idee van de rugzak is gebleven, echter alleen de micro zonder de afstandsbesturing. Met andere woorden de functies van de afstandsbesturing moet ik gaan nabouwen in de micro en als dat
maart 2006 27
lukt hang je nog een SHARP GP2D12 erbij, een analoge IRafstandssensor, om obstakels/afgrond te kunnen ontwijken.Eerste opdracht was de codes van toetsen van de afstandsbediening ontcijferen, hoe doe je dat? Zonder verder na te denken heb ik een TSOP1736/38 (IR-ontvanger) geplaatst op de interrupt-ingangen INT0 en INT1 van mijn 28pins ATMEGA8 processor. Deze 2 ingangen heb ik zo geconfigureerd dat de een op de positieve flank reageert en de andere op de negatieve.Ik heb een programma geschreven om de code van een toets te kunnen bepalen, in het kort komt het op neer, dat je met een stopwatch de beide ingangen in de gaten moet houden.Het resultaat is een reeks getallen, die aangeven hoelang het signaal beurtelings laag en hoog is, of te wel de pulsvorm. Wanneer dezelfde toets steeds weer dezelfde reeks getallen produceert,(kleine afwijkingen zijn toegestaan) dan kan je de rest van de toetsen gaan bemonsteren. In totaal zijn er 11 toetsen.Aha, dacht ik, de pulsvorm van elke toets is bekend. Even proberen of de micro het lukt om de robot te manipuleren met de gevangen codes. Een programma was snel geschreven om een IR-led in de ritme van de bemonsterde getallen te laten branden. Ter controle heb ik een webcam gebruikt om zeker van te zijn dat de IR-led werkt. Je kan de pulsen niet zien, maar wel alles als één flits. Ik heb ook een audio-irverklikker, die een signaal laat horen, zodra hij een IR-bron ziet. Resultaat van de zendtest was teleurstellend, de robot is doof voor mijn micro. Ik zocht de fout in de IR-led; zoals verschillende IRgolflengten tussen zender en ontvanger, en de zendsterkte van het IR-licht (licht opbrengst). Schakeling figuur 1 en 2.Verschillende type IR-led gebruikt en verschillende IR-led schakelingen gemaakt, maar niets helpt! Ik begreep een lange tijd niet waarom het opzet niet werkte. Ook had ik mijn twijfels op de door mij gemaakte programma. Hier heb ik veel tijd verloren! Mijn scope bevestigt dat ik goed zat, maar toch werkt het niet!Vlak voor de bijeenkomst in Nieuwegein begreep ik opeens de fout welke ik
28 ROBOBITS
gemaakt had of wat ik over het hoofd gezien had. De pulsvorm bij de ingangen INT0 en INT1 is identiek aan de pulsvorm aangeboden aan de IR-led. Echter ik vergat dat de TSOP1736/38 veel meer doet dan alleen de pulsvorm te geven aan de micro. Deze IR-ontvanger laat alleen signalen door van 36/38Khz om beïnvloeding van andere IR-bronnen te verminderen.De ATMEGA8 zendt wel de pulsvorm, maar het wordt niet geaccepteerd door de IR-ontvanger van de robot. Je moet de pulsvorm mengen met een 36/38Khz signaal. In Nieuwegein vertelde ik wat ik aan het doen was en spontaan kwam Henny van Bodegom met een hardware oplossing, om de 36/38Khz signaal te maken.(zie figuur 3)Ik had deze schakeling willen maken, maar de drang om het met software op te lossen was groter. Met 2 timers van de micro heb ik het mekaar gekregen, de ene om de duur/dosering van 36/38Khz te regelen en de ander om met PWM de 36/38Khz te maken.Resultaat: met minimale onderdelen is de robot indirect te besturen met de ATMEGA8 micro. Er is geen galvanisch contact met de processor van de robot, behalve de gemeenschappelijke voeding. In combinatie met sensoren is het mogelijk de robot wat “intelligentie” te geven. Verdere uitwerking ervan is afhankelijk van de fantasie van de bouwer.De robot werkt zoals is bedoeld met de GP2D12 sensor op zijn linkerarm. Voor mij was een leuke en leerzame ervaring en heb nu weer een robot erbij om voor te zorgen. Fred Eisen. In het computertijdschrift C’t de nummers 2 t/m6 kun je de beschrijving en het programmeren vinden van de C’t-bot.Dit is een roborkarretje voorzien van een Atmega32, 2x SharpGP2D12, IRmuissensor, 2x LDR en een TSOP1736. Je ziet dus dat er voor de ervaren programmeurs vele programma’s te maken zijn. Helaas kan ik er nog geen BascomAVR programma’s voor vinden.Op www.segor.de kun je een bouwpakket vinden en veel documentatie op www.ct-bot.de.Het bouwpakket is hier aangekomen en de hoofdprint is voorzien van de onderdelen. Het karretje kan bij mij nu een eenvoudig programma uitvoeren. Wij hopen het de volgende bijeenkomst te kunnen tonen.
maart 2006 29
Jack Ruben.
30 ROBOBITS
¾ Zaterdag 1 april Bijeenkomst Nieuwegein. ¾ Zaterdag 6 mei Sint Katelijne Waver.België!. ¾ Zaterdag 6 mei RoboRama RobotMC. ¾ Zaterdag 3 juni Bijeenkomst Nieuwegein. ¾ Zaterdag 1 juli Bijeenkomst Nieuwegein. Op zaterdag 6 mei 2006 zal er WEL in buurthuis t’Dok de normale reguliere bijeenkomst zijn voor de AI en 6500 GG! De meeste leden van hcc!robotica zullen echter op de RoboRama wedstrijd te Sint Katelijne Waver zijn(tussen Antwerpen en Mechelen). De bijeenkomsten in Nieuwegein worden gehouden in Buurthuis ’t Dok, Hoornseschans 101 3432 TK te Nieuwegein. De Roborama wedstrijd wordt gehouden in het De Nayer Instituut te Sint Katelijne Waver.Voor de diverse route beschrijvingen kunt u terecht op onze website, en op die van RobotMC http://www.robotmc.org.
Microchip PIC microcontrollers FTDI USB chips TSOP IR receivers pager (mini) motortjes vele bouwpakketjes LCDs etc
Keep it cool: IRF3205 FET RDS(on) = 8 mΩ RoboBits aanbieding: € 3.00 voor 4 stuks (normaal E 1.43 p/s) Zie http://www.voti.nl/winkel/p/T-IRF3205.html - vermeldt "RoboBits aanbieding 4 - pas geld overmaken als u het verzoek tot betalen krijgt met het aangepaste bedrag - geldig tot de volgende RoboBits uitkomt maart 2006 31