Difference between revisions of "Introbot09"

From Chalmers Robotförening
Line 822: Line 822:
[http://lmgtfy.com/?q=avr+programming+tutorial http://lmgtfy.com/?q=avr+programming+tutorial]
[http://lmgtfy.com/?q=avr+programming+tutorial http://lmgtfy.com/?q=avr+programming+tutorial]
[http://lmgtfy.com/?q=C+programming+tutorial http://lmgtfy.com/?q=C+programming+tutorial]
[http://lmgtfy.com/?q=C+programming+tutorial http://lmgtfy.com/?q=C+programming+tutorial]
=Introprogrammet=
==Syfte och funktion==
Syftet med Introbot-programmet är att de som aldrig programmerat tidigare ska kunna komma igång och bygga en robot utan att behöva lusläsa datablad. Det är även tänkt att vara som ett bibliotek med kodexempel (så att man slipper uppfinna hjulet om och om igen).
<br>
Introprogrammet som zip fil
Introbot09 Programmet
<br>
Introprogrammet utan meny med bara sumoprogrammet i mainfilen
Sumoprogrammet
==Dokumentation==
===Menysystemet===
Menysystemet är uppbyggt med en meny och två undermenyer med inställningar. Dessa är mer beskrivna nedan.
För att navigera sig i meny systemet använder man sig av knapparna. SW1 gör att värden ökas om man trycker på den eller att man går in i en meny genom att hålla den intryckt nån sekund. SW2 gör att värden minskas om man trycker på den eller att man går ut ur en meny eller inställning.
Värden och vilken meny man väljer visas på lysdioderna. För att välja meny 1 ska diod 1 lysa (den längst till höger).
Schematisk bild över ovan beskrivna text. Nedan finns även funktionerna mer beskrivna.
====Sumoprogrammet====
När man kommit in i programmet väntar den på att man ska trycka in och släppa upp knappen efter den är det en fördröjning på 5 sekunder. Sen startar sumoprogrammet.
====Linjeföljningsprogrammet====
När man kommit in i programmet väntar den på att man ska trycka in och släppa upp knappen efter den startar linjeföljningsprogrammet.
====Undermeny 1====
#Inställning av känslighet på reflex sensorer
#Inställning av motorhastighet
#Inställning av ir-mottagare känslighet
#Sensor test visar ref höger på diod 1, ir mottagare högger på diod 2, ir-mottagare vänster på diod 3 och ref vänster på diod 4
====Undermeny 2====
#Ljud av eller på. Grön(1,3) på, Röd(2,4) av
#Antal reflex sensorer till sumo. 2 eller 4
#Antal reflex sensorer till linjeföljning. 2 eller 4
#Svängtid för sumoprogrammet när den kommer ut till kanten
[[File:Byggbeskrivning-Figur 21 Introbotprogrammet (9.2.1).jpg]]

Revision as of 23:20, 11 October 2013

Introduktion

Introbot09 är en komplett byggsats för att man enkelt ska komma igång med sitt robotbyggande. Den är en uppgradering av Introbot07 och uppfyller kraven för minisumo liksom sina föregångare. Den har följande uppgraderingar jämfört med Introbot07:

  • Två avståndssensorer istället för en
  • Två knappar istället för en
  • Fyra reflexsensorer (där två kan användas som tachometrar) istället för bara två
  • Nya hjul (som passar på växellådans axlar och som har mycket bättre grepp)
  • Stöd för UART
  • Mer genomtänkt kretskort
  • Mer genomtänkt programbibliotek
  • Möjlighet till inkoppling av servos

I och med uppgraderingen har ett par funktioner tagits bort:

  • RS232-interface, då COM-portar är på väg bort i allt större mån. Istället erbjuder CRF en egenutvecklad USB-programmerare (länk).
  • Stöd för LCD, då den tar mycket plats och det är inte så många som använder den. Det går dock givetvis att koppla in en extern modul med display på en av utportarna. Introprogrammet innehåller dock ingen exempelkod för detta.

Vi har även uppdaterat byggbeskrivningen så att den ska bli lättare att följa. Introprogrammet är i större mån uppbyggt som ett bibliotek och är även bättre dokumenterat för ytterligare förståelse. Nedan följer en liten förklaring av de ingående delarna i Introbot09.

Modulbaserad robot

För att sprida ut kostnaderna och ge medlemmar större möjlighet att välja vad de vill ha är Introbot09 indelad i olika moduler. Den grundläggande modulen är kretskortet som innehåller motorstyrning, ett antal sensorer, lysdioder samt buzzer. De övriga modulerna är en modul med växellåda och kommande modulkort för specifika funktioner (t.ex. extra sensorer, servostyrning och Analog/Digital-omvandling). För medlemmar har vi även batterier till försäljning.

Etsade mönsterkort

Introbot09 har ett etsat mönsterkort för att det ska bli enklare att löda ihop. För ytterligare enkelhet finns det även tryck på kortet som visar vart de olika komponenterna ska sitta. Kortets storlek är 80×60 mm.

Integrerad H-brygga

Introbot09 har en mycket smidig motorstyrning i form av en IC-krets med en dubbel H-brygga för att man ska kunna styra två motorer både framåt och bakåt oberoende av varandra. H-bryggan är specificerad till att leverera som max 2,5A.

Avståndssensorer

Avståndssensorerna känner av avstånd med hjälp av infrarött ljus (IR-ljus). Sensorn mäter hur stor mängd IR-ljus med en viss modulerings frekvens (pullsning)som kommer in. Desto mer av den frekvensen det är, desto närmare är föremålet. Den modulerings frekvens som sensorn letar mest efter är 37kHz. Genom att ändra pulsningen på IR-lysdioderna kan man ändra avståndet på vilket sensorerna ”ser”.

Reflexsensorer

Reflexsensorerna känner av underlagets nyans i gråskala och ger ut ett analogt värde som man läser in i processorn som ett värde mellan 0 och 255. Kan även användas som tachometrar (alltså en sensor som känner av varvtal på ett hjul). För det krävs dock en kodskiva (skiva med spalter/markeringar) på hjulen, något som tyvärr inte följer med Introbot09. En sådan kan dock enkelt byggas själv av en tunn pappskiva.

Buzzer

Introbot09 är utrustad med en buzzer som kan göra ljud. Introprogrammet är utrustat med druvrutiner för ljud.

I2C

I2C är ett kommunikationsprotokoll som används för att kommunicera mellan olika mikroprocessorer. Det är smidigt att ha om man ska bygga ut Introbot09 med externa enheter, t.ex. extra sensorer.

UART

UART är ett annat kommunikationsprotokoll som används för att kommunicera mellan olika mikroprocessorer. Det är smidigt att ha om man ska bygga ut Introbot09 med externa enheter. De planerade modulkorten kommer att ha UART-kommunikation. UART kan även användas för att kommunicera med en dator via en seriellport.

Växellåda och hjul

Till Introbot09 kan en växellåda med hjul köpas. Växellådan har valbar utväxling på antingen 58:1 eller 203:1. Motorerna är specificerade till 3V.

Batteri

Till medlemmar kan vi även erbjuda ett batteri. Det är av typen Lithium-Polymer (Li-Po) med specifikationerna 7.4V, 900mAh, minst 12C.

Slutligen

Om du stöter på problem eller hittar du något fel på kortet eller instruktionerna så tveka inte att kontakta oss på info@robot.chs.chalmers.se. Givetvis kan ni även titta in på vårt forum, crf.nu/forum och ställe er fråga där. Lycka till med byggandet!

Förberedelser

Komponentlista

Kolla att du har alla enligt listan nedan:

Referens Komponent Typ Antal
C1-C6 Kondensator 100nF 6
C9-C11 Tantalkondensator 33µF 3
C7-C8 Elektrolytkondensator 220µF, 16V 2
R13-R14 Motstånd 47O 2
R6,R8,R10,R12,R23-R24 Motstånd 120O 6
R9,R11,R16-R22 Motstånd 330O 9
R1-R4,R15,R25 Motstånd 3k3O 6
R28 Motstånd 4k7O 1
R26-R27 Motstånd 10kO 2
R5,R7 Motstånd 39kO 2
R29-R30 Trimmotstånd 0-50kO 2
LED1,LED3,LED5 Lysdiod Grön, 3mm 3
LED2,LED4 Lysdiod Röd, 3mm 2
LED6-LED7 IR-lysdiod 5mm/TSUS5400 2
L1 Drossel 22uH 10%, 144mA Axiell 1
D1-D8 Schottkydiod 1N5819 8
T1-T4 Transistor NPN/BC548 4
SW1-SW2 Tryckknapp Tact-switch/FKX-101 2
IRMOT1-IRMOT2 IR-detektor IR-mottagare 3,3V/IRM8601S 2
REF1-REF4 Reflexdetektor/Tacho ITR8307 4
B1 Buzzer 6V magn QMB-06 star 1
M1, M2, VIN Kopplingsplint 2pol, 5,08 delning 3
ISP ISP-anslutning 2×3 stiftlist, 2.54mm delning 1
IC1 IC-sockel 28 hål, 0.3”/DIL28 1
IC1 Microcontroller ATMega168 1
IC2 Spänningsregulator 5V, 1A/LM7805 1
H-bridge H-brygga L298, dubbel H-brygga 1
- Stfitlist 1×40-pol 1
- Hylslist 1×20-pol 1
- Flatkkabel minst 16 pol c:a 15cm 1
- Kretskort By CRF 1

Bild över alla komponenter som ska vara med i grundpaketet. Notera att de komponenter du har i ditt kit kan se annorlunda ut, beroende på lite vilka komponenter vi fick tag på för stunden.
Byggbeskrivning-Figur 2 Komponenter i grundpaketet (2.1).jpg

Nedan följer alla komponenter som mer tillhör mekaniken. Beroende på om du köpt växellådan och batteriet så ska du ha allt i den här listan:

Komponent Typ Antal
Växellåda Twin motor gearbox/Tamiya 70097 1
Hjul Truck Tire (1 par)/Tamiya 70101 1
Anslutningskablar Till motorerna, 15cm 4
Anslutningskablar Till batterierna, hane 1
Anslutningskablar Till batterierna, hona 1
Strömbrytare Till batteriet 1
Batteri Li-Po 7.4V, 900mAh, 15C 1

Färgkodning motstånd

Kretskort och ritning

Innan du börjar bygga kan det vara bra att skriva ut den kompletta ritning och bilden på det tomma kretskortet.
Byggbeskrivning-Figur 4 Kretskort Top (2.2).jpgByggbeskrivning-Figur 4 Kretskort Bottom (2.2).jpg

De pinnar som olika funktioner är kopplade till:

Nr Port B Port C Port D
0 SW1 Reflex1 RXD
1 Buzzer Reflex2 TXD
2 LED1 Reflex3/Tacho SW2
3 LED2 Reflex4/Tacho IR-LED
4 LED3 ADC4/SDA M1_DIR
5 LED4 ADC5/SCL M1_PWM
6 IR-sensor1 Reset M2_PWM
7 IR-sensor2 Finns ej M2_DIR

Byggbeskrivning-Figur 6 Kopplingschema (2.2).jpg

Verktyg

För att montera Introbot09 krävs följande verktyg

  • Lödkolv och lödtenn
  • Avbitartång

En multimeter rekommenderas även för eventuell felsökning. För programmering krävs även en ISP-programmerare (länk).

Hantering av verktyg och komponenter

Viktiga saker att tänka på:

  • Ta inte i onödan på baksidan av kretskort då detta leder till sämre lödmöjligheter
  • Temperatur på lödstation beror på spetsstorlek och lödtenn men lagom temperatur brukar vara c:a 310 grader
  • Mikroprocessorn bör inte sitta i vid lödning. Övriga komponenter tål hyfsat höga temperaturer
  • Lägg på lagom mycket lödtenn, komponentbenet ska vara runtom i kontakt med omgivande lödö så att inte det är något hål. Men det får inte bli mer lödtenn än vad som får plats så att det inte rinner ut utanför lödön. Det kan leda till kortslutningar.
  • Löd en komponent i taget och efter lödning klipp av onödig benlängd.
  • Här finns en kort video som går igenom lödning (http://www.youtube.com/watch?v=I_NU2ruzyc4)

Spänningsregulator

Syfte och funktion

Spänningsregulatorn tar in spänning mellan 7.2V och 35V och omvandlar detta till en stabil spänning på 5V. Detta behövs då mikrokontrollern och sensorsystemet körs på 5V och dessutom fungerar dessa komponenter mycket bättre när spänningen hålls stabil.

Montering

Referens Komponent Typ Antal
C3-C4 Kondensator 100nF 2
C7-C8 Elektrolytkondensator 220µF, 16V 2
R16 Motstånd 330O 1
LED5 Lysdiod Grön, 3mm 1
M1, M2, VIN Kopplingsplint 2pol, 5,08 delning 3
IC2 Spänningsregulator 5V, 1A/LM7805 1
- Kretskort By CRF 1

Byggbeskrivning-Figur 8 Kopplingschema för spänningsregulator (3.2).jpg


Kretskort med komponenterna ovan monterade:
Byggbeskrivning-Figur 9 Spänningsregulator monterad Top (3.2).jpgByggbeskrivning-Figur 9 Spänningsregulator monterad 3D (3.2).jpg

  • Montera och löd fast kondensatorerna (C3-C4) och resistorn (R16). Det spelar ingen roll vilket håll de är vända.
  • Montera lysdioden (LED5) så att den är vänd så att anoden (det längre benet) kommer vid 5V markeringen och löd sedan fast den.
  • Sätt ihop kopplingsplintarna (VIN, M1, M2) till en list med hjälp av spaltningarna på sidan (Se bild nedan). Löd sedan fast dem så att kabelanslutningarna pekar ut från kretskortet.
  • Montera spänningsregulatorn (IC2) så att kylflänsen passar mot den vita markeringen på kretskortets komponentavtryck och löd sedan fast den.
  • Montera elektrolytkondensatorerna (C7-C8). Tänk på att dessa komponenter är polkänsliga, så se till att benet på den sidan av kondensatorn med en ljus rand placeras i hålet på minussidan. Löd sedan fast dem.

Testning

  1. Koppla in en strömkälla till VIN-skruvplinten, den som sitter närmast spänningsregulatorn. Anslutningskabeln kan behöva skalas lite innan den kopplas in, annars finns det risk att den inte har kontakt alls. VIKTIGT: Polvänd inte batterikontakten. Pluspolen (vanligtvis röd kabel) ska kopplas till pinnen som är markerad + på undersidan av kortet och minuspolen skall kopplas till den pinnen som är markerad -. Tyvärr är det lite svårt att se trycket till följd av färgen på kretskortet, men pluspolen är den anslutning längst bort från spänningsregulatorn i VIN-plinten. Det finns risk att spänningsregulatorn och andra komponenter går sönder annars.
  2. Lysdioden ska lysa om du har gjort rätt. Om du har en voltmeter ska du kunna mäta upp 5V mellan hålen som ligger ovanför texten 5V. OBS! Var försiktig så att du inte kortsluter mätpinnarna.

Komponentinformation

  • Spänningsregulatorn (IC2): Tar in spänning mellan 7.2V och 35V (då batterier kan ha olika spänning) och omvandlar detta till en stabil 5V. Detta gör den genom att omvandla allt över 5V till värme. Om ditt batteri har en högre spänning än 10V eller om ditt kort förväntas dra mycket ström (mer än 800mA)rekommenderas det att använda en extra kylfläns.
  • Kondensatorerna (C3-C6): Stabiliserar spänningen. Om spänningen skulle sjunka vid en tillfälligt högre belastning så hjälper dessa till att hålla spänningen jämn.
  • Lysdioden (LED5): Tänds då ström passerar mellan anoden (+) och katoden (-) och indikerar att spänningsregleringen fungerar.

Mikroprocessor

Syfte och funktion

Det är under denna del som kretskortet börjar ”leva”. Lysdioderna och Buzzern (högtalaren) är till för att berätta vad mikroprocessorn ”tänker”. Tryckknapparna är till för att användaren ska kunna ge kommandon till mikroprocessorn. ISP-kontakten (pinnarna) är till för att programmera roboten.

Montering

Referens Komponent Typ Antal
C1-C2 Kondensator 100nF 2
C11 Tantalkondensator 33µF 1
R17-R22 Motstånd 330O 6
R15 Motstånd 3k3O 1
R28 Motstånd 4k7O 1
R26-R27 Motstånd 10kO 2
LED1,LED3 Lysdiod Grön, 3mm 2
LED2,LED4 Lysdiod Röd, 3mm 2
L1 Drossel 22uH 10%, 144mA Axiell 1
T3 Transistor NPN/BC548 1
SW1-SW2 Tryckknapp Tact-switch/FKX-101 2
B1 Buzzer 6V magn QMB-06 star 1
ISP ISP-anslutning 2×3 stiftlist, 2.54mm delning 1
IC1 IC-sockel 28 hål, 0.3”/DIL28 1
IC1 Mikrokontroller ATMega168 1

Byggbeskrivning-Figur 11 Kopplingschema för mikroprocessor (4.2).jpg


Bilder på kretskortet med ovanstående komponenter monterade:
Byggbeskrivning-Figur 12 Mikroprocessor monterad Top (4.2).jpgByggbeskrivning-Figur 12 Mikroprocessor monterad 3D (4.2).jpg

  • Montera och löd fast motstånden (R15, R17-R22, R26-R27, R28). Det spelar ingen roll vilket håll de sitter åt. Notera att R26-R27 hör till UART-anslutningen, så om du vet att du inte kommer använda den så är det inte nödvändigt att montera dem.
  • Montera och löd fast de kondensatorerna (C1-C2) samt drosseln (L1). Det spelar ingen roll vilket håll dom sitter.
  • Montera lysdioderna (LED1-LED4) så att anoden (det långa benet) löds i det hålet markerat + och löd fast dem.
  • Montera transistorn (T3). Se till att du monterar den så att den stämmer överens med komponentavtrycket och löd fast den.
  • Montera och löd fast knapparna (SW1-SW2).
  • Montera tantalkondensatorn (C11) så att pinnen markerad med ett streck på framsidan hamnar i hålet markerat +. Löd sedan fast den.
  • Löd dit ISP-anslutningen (ISP) med de korta benen i kretskortet.
  • Montera IC1-sockeln. Se till att den är vänd åt rätt håll enligt komponentavtrycket på kretskortet d.v.s. urgröpningen i sockelns kortsida skall passas mot urgröpningen på komponentavtrycket. Löd sedan fast den.
  • Montera buzzern (B1) så att pinnen markerad med ett plus (+) på sidan sitter i hålet som är markerat med ett plus på kretskortets ovansida. Löd sedan fast den.
  • Mikrokontrollern (IC1) sätts i IC1-socken efter allt annat är fastlött. Urgröpningen skall sitta över urgröpningen i sockeln, alltså nedåt mot spänningsregulatorn. Benen på mikroprocessorn kan behöva böjas in något för att passa i socken. Böj försiktigt en sida i taget mot en plan yta för bästa resultat.

Testning

Detta testar mikrokontrollerns funktion och att lysdioderna och att buzzern fungerar.

  • Håll någon av knapparna SW1 eller SW2 nere och koppla på spänningen.
  • Håll knappen nedtryckt, då kommer buzzern pipa och när den slutar låta ska alla de fyra dioderna börja blinka.
  • Släpp upp knappen och diod 1 tänds.
  • Genom att trycka på SW1 respektive SW2 kommer det växla upp respektive ner vilken diod som lyser.

För att kunna göra denna testning behöver mikrokontrollern vara programmerad. Det sitter en liten markering av någon färg ovanpå kretsen om den är programmerad. Sitter det ingen sådan lapp där, kontakta någon i styrelsen för att få hjälp med programmeringen.

Felsökning

Först: Kolla att alla komponent är monterade enligt ovan. Försäkra dig om att mikrokontrollern är programmerad. (fråga någon i styrelsen om du behöver hjälp)

Jag hör pipet, men lysdioderna lyser inte alls

Dioder är troligen felvända, löd av en diod och vända på den. Testa sen igen.

Det går inte att växla mellan att de olika dioderna lyser

Tryckknappen är förmodligen problemet, kolla att den är inkopplad och lödd.

Lysdioderna lyser men jag får inget ljud

Kolla att transistorn och buzzern är monterade korrekt.

Komponentinformation

  • Mikrokontrollern (IC1): Är robotens ”hjärna”. Den styr hela roboten med hjälp av signaler till t.ex. lysdioderna och motorerna. Den tar in signaler från sensorerna och knapparna så att den vet vad som händer runt om roboten.
  • IC-sockeln (IC1-sockel): Har man för att man inte ska behöva löda fast mikroprocessorn, då den ibland kan behöva bytas.
  • ISP-anslutningen (ISP): Används för att programmera roboten. Man kopplar den till datorn via en programmerare för att kunna skicka in sitt program i roboten.
  • Buzzern (B1): Omvandlar elektriska signaler till ljud. Genom att skicka elektriska signaler med olika frekvens kan man få ljud med olika frekvens.
  • Tryckknapparna (SW1-SW2): Används för att ge ”order” till mikroprocessorn så att den vet vad användaren vill göra.
  • Drosseln (L1): Används för att jämna ut spänningen in till mikroprocessorn.
  • Transistorn (T3): Används för att skicka ut en frekvenssignal till buzzern. Man använder transistor eftersom processorn inte klarar av att driva buzzern själv.
  • Lysdioderna (D1-D4): Tänds då ström passerar mellan anoden (+) och katoden (-).
  • Kondensatorerna (C1-C2, C11): Stabiliserar spänningen. Om spänningen skulle sjunka vid en tillfälligt högre belastning så hjälper dessa till att hålla spänningen jämn.

Sensorer

Syfte och funktion

Sensorerna används för att berätta för mikrokontrollern hur robotens omgivning ser ut så att den kan agera därefter. Alla sensorer på Introbot09 använder IR-ljus på något sätt.

Montering

Referens Komponent Typ Antal
C9-C10 Tantalkondensator 33µF 2
R13-R14 Motstånd 47O 2
R6,R8,R10,R12,R23-R24 Motstånd 120O 6
R9,R11 Motstånd 330O 2
R25 Motstånd 3k3O 1
R5,R7 Motstånd 39kO 2
R29-R30 Trimmotstånd 50kO 2
LED6-LED7 IR-lysdiod 5mm/TSUS5400 2
T4 Transistor NPN/BC548 1
IRMOT1-IRMOT2 IR-detektor IR-mottagare 3,3V/IRM8601S 2
REF1-REF4 Reflexdetektor/Tacho ITR8307 4
- Stfitlist 1×40-pol 1
- Hylslist 1×20-pol 1
- Flatkkabel minst 16 pol c:a 15cm 1

Byggbeskrivning-Figur 14 Kopplingschema för sensorer (5.2).jpg


Bilder med ovan komponenter monterade:
Byggbeskrivning-Figur 15 Sensorer monterade Top (5.2).jpgByggbeskrivning-Figur 15 Sensorer monterade 3D (5.2).jpg

  • Montera motstånden (R5-R14, R23- R25) och löd fast dem. Det spelar ingen roll vilket håll de sitter.
  • Montera IR-dioderna (LED6-LED7). Kom ihåg att det långa benet är pluspolen och är markerat med ett plus på kortet. Böj sedan ner dioden så att den pekar ut från kortet och löd fast dem. Se till löda dem med lite avstånd från kortet så att man enkelt kan få in en krympslang runt dem.
  • Montera tantalkondensatorerna (C9-C10). Tänk återigen på att pluspolen är markerad med ett streck på sidan ovanför pluspinnen. När du försäkrat dig om att det är rätt så löd fast dem.
  • Montera och löd transistorn (T4) enligt komponentavtrycket på kortet.
  • Klipp till 4 st stiftlister med fyra pinnar var och löd fast dem vid REF1-REF4 på kortet. Det är den korta delen av benen som ska löds fast i kortet.
  • Klipp till 4 st hylslister med fyra anslutningar var, offra en anlutning vid varje kapning då det är praktiskt omöjligt att kapa listen utan att en anslutning går sönder. Så om du ska ha 4 pinnar så kapa mitt i den femte anslutningen.
  • Reflexdetektorerna (REF1-REF4) löds fast på flatkablarna då dessa skall sitta ett par mm från marken när roboten kör. Komponentbenens numrering framgår av bilden nedan. Notera att din reflexdetektor kan se annorlunda ut. Utgå från vart det ”avklippta hörnet” sitter när du bestämmer vilka pinnar som är vilka. Var försiktig när du böjer benen på detektorn då de kan relativt lätt gå av. Den andra änden av flatkabeln löds fast på en hylslist i nummerordning. Se sedan till att markera på hylslisten eller flatkabeln vilken sida som pinne ingång 1 sitter på då dessa inte bör kopplas fel, eftersom det är matningen till sensorn. Sedan är det bara att passa din markering mot ettan markerad på kortet för varje reflexdetektor. Om (REF3 och REF4) ska användas som marksensorer ska Trimmotståndet vridas till ”klockan 7” pekandes mot ”B”. Detta för att rätt motstånd ska uppnås. Notera att två av dessa reflexdetektorer (REF3- REF4) kan användas som tachometerar och då skall dessa sitta vid däcken, lämpligen vid sidan och då med en skiva med svarta och vita spalter fästs vid däcket.
  • Montera IR-mottagarna (IRMOT1-IRMOT2) så att mottagardelen pekar utåt, dvs så att den svarta bulan pekar ut från kortet och löd sedan fast dem. Notera att det kan vara smidigt att, liksom med IR-dioderna, löda fast dom med lite avstånd från kortet, då de är dels lättare att rikta och lättare att skärma av. Man kan även löda fast dem på kablar via stift-/hylslister om man vill placera sensorerna någon annanstans. Notera att IR-mottagarna samt IR-dioderna bör skärmas av, för att IR-ljuset inte ska lysa direkt in i IR-mottagarna. Detta görs med krympslang.
  • Montera trimmotstånden (R29-R30) och löd fast dem.

Byggbeskrivning-Figur 16 Reflexdetektor (5.2).jpg

Testning

Här är stegen för att testa om reflexdetektorerna och IR-mottagarna fungerar. Dessa test går ut på att man går in i sensortest i menysystemet. För att gå in där välj 3 och sen 4 i menysystemet. Instruktioner för att se hur du navigerar dig och hur menysystemet är uppbyggt se sidan för Introprogrammet. Exakt procedur för hur du gör se nedan.

  • Håll nån knapp nedtryckt när spänningen kopplas in och släpp upp den sen.
  • Diod 1 tänds efter nån sekund. Använd knapparna för att välja att diod 3 lyser (tryck på SW1 2 gånger).
  • Håll ner SW1 tills det kommer ett ljud och dioderna släcks. Släpp då upp SW1.
  • Diod 1 tänds. Använd knapparna för att välja att diod 4 lyser (Tryck på SW2 1 gång).
  • Håll ner SW1 tills det kommer ett ljud och dioderna släcks. Släpp då upp SW1.
  • Nu visas reflexsensorerna REF1, REF2 och Ir-mottagarnas tillstånd på dioderna. reflex ytterst och ir i mitten.
  • Kontrollera att alla sensorerna fungerar. Reflexsensorenas dioder ska lysa vid ljust underlag och ir-mottagarnas dioder ska lysa vid nära avständ.

Felsökning

Lysdioderna för ir-mottagarna lyser hela tiden

Kontrollera att avskärmningen är tillräckligt bra. Notera att IR-dioderna även kan behöva skärmas av i bakkant.

Lysdioderna för reflexsensorerna lyser fel

Kontrollera att kablarna är anslutna rätt och kontakterna är åt rätt håll.

Lysdioderna för ir-mottagaren lyser inte alls

Kontrollera att ir-dioderna sitter rätt håll. Den stor ytan i dioden är - och ska sitta åt höger. Du kan kontrollera om IR-dioden lyser med hjälp av en mobilkamera.

Komponentinformation

  • Reflexdetektorerna (REF1-REF2): Känner av underlagets nyans i en gråskala. Detta används främst för att känna igen linjer i backen (bra t.ex. när roboten ska följa en linje, eller undvika att köra över en kant). Utsignalerna är analoga.
  • Reflexdetektorerna (REF3-REF4): Kan även användas som s.k. Tachometrar. Dessa används för att känna av rörelserna på ett t.ex. hjul så att man vet hur långt roboten har kört/hur fort den kör. Genom att ha någon form av ”tänder” eller svarta och vita spalter på en skiva på hjulet kan man få reflexdetektorerna att skicka en puls varje gång en sådan spalt eller tand åker förbi och därigenom kan man härleda hjulets hastighet.
  • IR-mottagarna (IRMOT1-IRMOT2): Används för hinderdetektion. De reagerar bäst på IR-ljus som pulsas med frekvensen 38kHz. Utsignalerna är digitala.
  • IR-lysdioderna (LED6-LED7): Skickar ut IR-ljus som studsar på föremål och tillbaka till IR-mottagarna. Desto mer ljus av frekvenser i närheten av 38KHz som studsar tillbaka, desto närmare är föremålet. Genom att skicka ut ljuset med andra frekvenser kan man reglera avståndet på vilket IR-mottagarna upptäcker föremål.
  • Transistorn (T4): Används för att reglera pulsfrekvensen på IR-dioderna samt driva dessa för att, då processorn inte kan skicka ut så mycket ström som behövs.
  • Tantalkondensatorerna (C9-C10): Används för att IR-mottagarna behöver en jämn spänning att jobba med.
  • Trimmotstånden (R29-R30): Används för att man ska kunna ställa in ljusstyrkan och därigenom känsligheten hos reflexdetektorerna som används som tachometrar.
  • Flatkablarna, stiftlisterna och hylslisterna är bra för att man enkelt ska kunna ta loss reflexdetektorerna och för att man ska kunna lägga reflexdetektorerna vid marken, eller vart man nu vill mäta. De kan även användas till IR-dioderna/mottagarna.

Motorstyrning

Syfte och funktion

Motorstyrningen består i största allmänhet av en H-brygga. H-bryggor används för att man ska kunna styra höga effekter med bara signaler från en mikroprocessor. H-bryggan kan styra hastighet och riktning på två motorer oberoende av varandra.

Montering

Referens Komponent Typ Antal
C5-C6 Kondensator 100nF 2
R1-R4 Motstånd 3k3O 4
D1-D8 Schottkydiod 1N5819 8
T1-T2 Transistor NPN/BC548 2
H-bridge H-brygga L298, dubbel H-brygga 1

Byggbeskrivning-Figur 18 Kopplingschema för motorstyrning (6.2).jpg


Bilder med ovan komponenter monterade:
Byggbeskrivning-Figur 19 Motorstyrning monterad Top (6.2).jpgByggbeskrivning-Figur 19 Motorstyrning monterad 3D (6.2).jpg

  • Montera och löd motstånden (R1-R4), det spelar ingen roll vilket håll de sitter.
  • Montera schottskydioderna (D1-D8) enligt komponentavtrycket och löd fast dem.
  • Montera transistorerna (T1-T2) enligt komponentavtrycket och löd fast dem.
  • Montera h-bryggan (H-bridge) enligt komponentavtrycket och löd fast den. Benen kan behöva böjas lite för att de ska passa i hålen. Kom ihåg att vara försiktig när du böjer dem.
  • Montera och löd kondensatorerna (C5-C6), det spelar ingen roll vilket håll de sitter.

Testning

Här är stegen för att testa om motorerna och motorstyrningen fungerar. Dessa test går ut på att man går in i inställningarna för motorinställningarna i menysystemet. För att gå in där välj 3 och sen 2 i menysystemet. Instruktioner för att se hur du navigerar dig och hur menysystemet är uppbyggt se sidan för Introprogrammet. Exakt procedur för hur du gör finns nedan:

  • Håll nån knapp nedtryckt när spänningen kopplas in och släpp upp den sen.
  • Diod 1 tänds efter nån sekund. Använd knapparna för att välja att diod 3 lyser (tryck på SW1 2 gånger).
  • Håll ner SW1 tills det kommer ett ljud och dioderna släcks. Släpp då upp SW1.
  • Diod 1 tänds. Använd knapparna för att välja att diod 2 lyser (Tryck på SW1 1 gång).
  • Håll ner SW1 tills det kommer ett ljud och dioderna släcks. Släpp då upp SW1.
  • Motorerna startar och kör i den inställda hastigheten. Denna visas även binärt på dioderna. Tryck på SW1 för att öka hastigheten och SW2 för att minska den.

Felsökning

Den gröna dioden som visar att strömmen är på lyser inte

Shottkydioderna sitter förmodligen fel. Bryt strömmen så fort som möjligt.

Motorerna fungerar inte

Kontrollera att alla komponenter sitter rätt, framförallt transistorerna. Kontrollera även så att motorerna inte är trasiga. Detta kan göras genom att man kopplar in dem på ett spänningsaggregat.

Motorerna kör konstigt och inte åt rätt håll

Kontrollera och byt så att kablarna till motorerna är kopplade rätt.

Komponentinformation

  • H-bryggan (H-bridge): Denna används för att styra motorernas hastighet och riktning. Den integrerade kretsen på Introbot09 innehåller två stycken separata H-bryggor, för att man ska kunna styra två stycken motorer oberoende av varandra.
  • Transistorerna (T1-T2): Dessa används för att man inte ska kunna kortsluta H-bryggan genom att skicka fel signaler till den och för att man ska kunna styra riktningen med endast en pinne på microcontrollern.
  • Schottkydioderna (D1-D8): Dessa används för att jämna ut spänningen till motorerna, som annars kan variera kraftigt till följd av polvändningar i motorerna och liknande.
  • Kondensatorerna (C5-C6): Stabiliserar spänningen. Om spänningen skulle sjunka vid en tillfälligt högre belastning så hjälper dessa till att hålla spänningen jämn.

Mekanik

Syfte och funktion

Detta är den mekaniska delen av roboten och det är rätt självklart att den behövs för att få roboten att röra sig fysiskt.

Montering

Komponent Typ Antal
Växellåda Twin motor gearbox/Tamiya 70097 1
Hjul Truck Tire (1 par)/Tamiya 70101 1
Anslutningskablar Till motorerna, 15cm 4
Anslutningskablar Till batterierna, hane 1
Anslutningskablar Till batterierna, hona 1
Strömbrytare Till batteriet 1
Batteri Li-Po 7.4V, 900mAh, 15C 1

Montera ihop växellådan enligt medföljande beskrivning. Nedan finns ni några tips:

  • Bestäm vilken utväxling du vill ha (58:1 eller 203:1)
  • Dra åt låsskruven ordentligt så den inte släpper
  • Det är bara en av låsskruvarna som skall vara åtdragna (gäller enbart 58:1)
  • Tips är att smörja alla kugghjul och axlar (med medföljande tub samt sprejsmörjburken som finns i lokalen) och torka av innan montering. Efter montering kan man spruta i lite smörjmedel och sedan köra lite för att det ska sprida sig i hela växellådan.
  • Tänk på att växellådan är mer än 100 mm bred inkl de medföljande axlarna, så om du ska bygga en minisumo behöver du korta axlarna något.

Testning

Motorerna är specificerade för 3V. De kan provas antingen genom att ansluta dem till en spänningskälla som ger ca 3V, eller så kan man testa de genom att ansluta de till robotens motorutgångar och köra programmet ”motortest”. I Introprogrammet finns motorinställningar i meny 3 sedan undermeny 2. Därefter ändrar man hastigheten i 16 steg. På Introbot09 löses gränsen med spänning till motorerna genom att man kör en låg pulskvot till motorerna max ca 80%. Motorerna klarar dock mer än 3V, men tillverkaren rekommenderar det inte.

Komponentinformation

  • Växellåda med motorer: Motorerna omvandlar elektrisk energi till mekanisk rörelse. Ju högre spänningen är, ju fortare går motorerna. Växellådan är till för att motorerna ska bli ”starkare” när man sedan kopplar kraften till hjulen. Hjulen skulle snurra alldeles för fort i förhållande till styrkan om de skulle vara kopplade direkt till motorerna. Ju högre utväxling man har, ju starkare robot får man, men den går samtidigt långsammare.
  • Batteri: Batteriet lagrar energi som kan tas ut som elektrisk energi. Det är batteriet som driver allt på roboten. OBS! Kom ihåg att vissa typer av batterier, i synnerhet Li-Po- och Li-Ion-batterier är väldigt energitäta och kan börja brinna ordentligt, och i värsta fall explodera vid felaktig hantering som t.ex. felaktig laddning, fysiskt våld eller hetta.
  • Strömbrytare: Används för att enkelt kunna slå av och på roboten, utan att behöva rycka ut och sätta i kontakten hela tiden.

Programmering

Syfte och funktion

Detta är en mycket viktig del av roboten. Programmeringen är den som bestämmer vad som skall hända, dvs robotens ”psykologiska” beslutskraft. Detta kapitel kommer dock främst handla om hur man laddar ner sitt program till introbot och inte hur man skriver själva koden. Hur man kodar får man själv lära sig. I slutet av detta kapitel kommer det inom kort komma upp lite länkar på förslag på var man kan hitta bra guider och information.

Procedur för att programmera

Här är en kortfattad rutin från skrivning av program till användning av Introbot09:

  1. Hitta en utvecklingsmiljö i vilken du kan kompilera kod för mikroprocessorer (mer om detta nedan).
  2. Skriva programmet i C eller assembler
  3. Kompilera (göra om texten till maskinkod som mikroprocessorn förstår)
  4. Koppla in Introbot09 till datorn via en USB-programmerare (eller någon annan lösning)
  5. Ladda över .hex-filen till Introbot09 (OBS! Kontrollera att du laddar ner RÄTT .hex-fil till roboten. Detta gäller främst AVR Studio)
  6. Koppla ur och testa

Det finns redan ett färdigt Introbotprogram (det som din krets är programmerad med vid leverans) som du kan testa att programmera in. Det programmet kan du ladda ner här: (testprogrammet). Beskrivning av hur det fungerar finns i ett senare kapitel, Introprogrammet.

Skriva programmet och kompilera

I föreningen använder vi främst programmet AVR Studio om man kör Windows eller Eclipse om man kör Linux eller Mac OS X för att skriva vår kod, kompilera, simulera och ladda över programmet till mikroprocessorn. Det är dock möjligt att programmera i vilken texteditor som helst. Den viktiga delen i det hela är kompilatorn som heter AVR-GCC. Här nedan är lite information om de mjukvaror vi använder i föreningen och hur du får programmeringen att fungera under olika operativsystem.

Windows

Till Windows använder man programvaran AVR Studio. Denna mjukvara är utvecklad av ATMEL (tillverkarna av AVR-kretsar) och fungerar relativt bra. Den är gratis och går att ladda ner från [http://www.atmel.com/ www.atmel.com}. Följ instruktionerna för installation och användning. Detta fungerar idag främst för Windows XP men vi har hört rykten om att det även ska fungera för Windows Vista. Windows 7 är ännu otestad för oss. I zip-filen som kan laddas ner här nedan finns filen introbot.aps. Denna fil är projektfilen för AVR Studio och är färdiginställd för att kompileras korrekt för Introbot09. Dessutom behöver man installera paketet WinAVR. För att kompilera använder vi WinAVR som är kompilatorn AVR-gcc för Windows. Den hittas på: http://winavr.sourceforge.net/. Följ instruktionerna för att installera och implementera i AVR studio.

Linux

Om du kör Linux finns det en mycket utförlig guide på denna sida: AVR, Linux och Eclipse

Mac OS X

Om du kör Mac OS X finns det en guide på denna sida: AVR, Mac OS X och Eclipse

Koppla in Introbot09 till datorn

I Introbot09 har vi tyvärr tagit bort den inbyggda möjligheten att programmera genom datorns COM-port. Detta eftersom det är allt färre datorer idag som har tillgång till COM-port. Det enklaste sättet är att använda en USB-programmerare. Det finns ett antal USB-programmerare i lokalen och CRF har dessutom AVR Programmer 09, en USB-programmerare som liksom Introbot09 säljs som en byggsats.

Allmänna tips för koda

För en nybörjare kan det vara svårt att bara kasta sig in i C-programmeringens värld. Därför kan det vara bra att göra någon generell tutorial för C. Här är två förslag på länkar som kan hjälpa dig: http://lmgtfy.com/?q=avr+programming+tutorial http://lmgtfy.com/?q=C+programming+tutorial

Introprogrammet

Syfte och funktion

Syftet med Introbot-programmet är att de som aldrig programmerat tidigare ska kunna komma igång och bygga en robot utan att behöva lusläsa datablad. Det är även tänkt att vara som ett bibliotek med kodexempel (så att man slipper uppfinna hjulet om och om igen).
Introprogrammet som zip fil Introbot09 Programmet
Introprogrammet utan meny med bara sumoprogrammet i mainfilen Sumoprogrammet

Dokumentation

Menysystemet

Menysystemet är uppbyggt med en meny och två undermenyer med inställningar. Dessa är mer beskrivna nedan. För att navigera sig i meny systemet använder man sig av knapparna. SW1 gör att värden ökas om man trycker på den eller att man går in i en meny genom att hålla den intryckt nån sekund. SW2 gör att värden minskas om man trycker på den eller att man går ut ur en meny eller inställning. Värden och vilken meny man väljer visas på lysdioderna. För att välja meny 1 ska diod 1 lysa (den längst till höger). Schematisk bild över ovan beskrivna text. Nedan finns även funktionerna mer beskrivna.

Sumoprogrammet

När man kommit in i programmet väntar den på att man ska trycka in och släppa upp knappen efter den är det en fördröjning på 5 sekunder. Sen startar sumoprogrammet.

Linjeföljningsprogrammet

När man kommit in i programmet väntar den på att man ska trycka in och släppa upp knappen efter den startar linjeföljningsprogrammet.

Undermeny 1

  1. Inställning av känslighet på reflex sensorer
  2. Inställning av motorhastighet
  3. Inställning av ir-mottagare känslighet
  4. Sensor test visar ref höger på diod 1, ir mottagare högger på diod 2, ir-mottagare vänster på diod 3 och ref vänster på diod 4

Undermeny 2

  1. Ljud av eller på. Grön(1,3) på, Röd(2,4) av
  2. Antal reflex sensorer till sumo. 2 eller 4
  3. Antal reflex sensorer till linjeföljning. 2 eller 4
  4. Svängtid för sumoprogrammet när den kommer ut till kanten

Byggbeskrivning-Figur 21 Introbotprogrammet (9.2.1).jpg