Byggbeskrivning introARM

From Chalmers Robotförening

Detta är bygg-guiden till Chalmers Robotförenings nybörjarrobot IntroARM. Tanken är att guiden ska läsas från början till slut. Ifall du stöter på problem är det bara att fråga. Du hittar kontaktinformation här. Tänk på att gå lugnt och metodiskt fram. Det är enklare och går snabbare att tänka en extra gång än att göra fel och och tvingas göra om.

Guiden är upplagd som förberedelser plus ett flertal steg. Läs igenom hela steget innan du börjar löda, det blir lättare att göra rätt då. Varje steg består av:

  • Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)
  • En lista över de komponenter som ingår i steget
  • Lite att tänka på (t.ex. specialprocedurer för vissa komponenter). Efter detta är tanken att du ska montera de komponenter som anges, vilket primärt innehåller lödning men också lite skruvande, pressande, klippande osv.
  • Testning, där du laddar in ett program som gör olika saker och testar de olika delarna. Det uppmuntras att man försöker komma på lite egna program att för att testa sin hårdvara i syfte att lära sig. Detta gör att man har en ände att börja i så att det inte blir alltför överväldigande att börja programmera när allt är hopmonterat. Det är också lättare att upptäcka fel ifall man testar ofta.
  • Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)

Förberedelser

Rekommenderat är att du skriver ut komponentkartorna till varje steg då det är lättare att hitta var vilka komponenter skall sitta med hjälp av dem. Du det är också rekommenderat att du kontrollerar att allt finns med mot den fullständiga komponentlistan:

Komponent Artikelnr Referens Antal Finns med
Mikrokontroller 511-STM32F100C8T6B U2 1 Förmonterad
H-brygga, DRV8833 595-DRV8833PWPR U3 1 Förmonterad
Switchregulator (3.3V) 595-TPS62056DGS U1 1 Förmonterad
IMU MPU6050 U4 1 Förmonterad
Knappar, små 688-SKHRAB SW1-SW3 3
Tantal, 100uF, 10V 581-TPSB107M010R0400 C7,C15,C39 3
Stor keram 10uF 963-TMK316BJ106KLHT C2-C5,C13,C19-C20,C27-C30,C37-C38,C40 14
Liten Keram 100nF 77-VJ1206Y104KXXPBC C1,C6,C8-C12,C14,C18,C21-C26,C31-C36 21
Lastkapacitans Kristall 18pF 77-VJ1206A180JXXPBC C16-C17 2
10k resistor 660-RK73B2BTTD103J R6, R11, R13, R15, R17, R19-R20, R27 8
3k3 resistor 660-RK73B2BTTDD332J R1-R5,R7-R9,R21,R33-R37 7
100R resistor 660-RK73B2BTTD101J R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28 18
10R 660-RK73B2BTTDD100J R29-R32 4
IR-LED 78-TSUS5400 LED8-LED11 4
IR-mottagare 782-TSOP38238 IRMOT1-IRMOT5 5
Mostfet (P-kanal) 771-PMV65XP-T/R Q1-Q5 5
LED Grön 720-LGN971-KN-1 LED1-LED2,LED4,LED6 4
LED Röd 720-LYN971-HL-1 LED3,LED5,LED7 3
Induktor (switchregulator) 963-NRS5020T100MMGJ L1 1
Reflexdetektor 638-ITR8307TR8 REF1-REF4 4
Kristall 8 MHz 815-ABL-8-B2 X1 1
5V-regulator (1117-5) 863-NCP1117ST50T3G U6 1
Diod 652-CD214A-B130LF D1 1
Buzzer 254-PB1440-ROX SP1 1
SD-socket 688-SCHD3A0100 U5 1
Stiftlister Pin headers P1, P3-P10 1
Stiftlister Vinklade Pin headers P2 1
Krympslang 8 mm 4
PCB By CRF 1

Hårdvara som inte ska lödas på kortet

Komponent Artikelnr Referens Antal Finns med
Micro metal gear, 100:1 HP 1101 2
Motorbrackets, par 1089 1
Hjul, par 1090 1
CP2102/CP2104 CP2102 1
Lipo, 2s 9210000005 1

Bilder på komponenter

Alla komponenter.jpeg
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.

Utrustning

För att bygga ihop din IntroARM krävs en del utrustning. All utrustning finns i föreningens lokal, så det är rekommenderat att du sitter där och arbetar ifall du har möjlighet.

Nödvändig utrustning

Denna utrustning är i princip helt nödvändig för att du ska kunna bygga ihop IntroARM (är du väldigt duktig kan du klara dig utan en del av dessa saker)

  • Dator med en ledig usb-port samt programvara för att programmera STM32
  • Lödstation
  • Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)
  • Pincett
  • Avbitartång
  • Liten kryssmejsel

Bra-och-ha-utrustning

Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.

  • Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.
  • Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)
  • Någonting att hålla fast kretskortet med under lödningen
  • Multimeter rekommenderas till felsökning
  • Ett spänningsaggregat med strömbegränsning

Del 1 - Spänningsmatning och Microcontroller

Del 1 är framförallt mikrokontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern som används för programmering. Efter detta steg kan din robot blinka lite och ta in användarinputs (från knapparna). Den kan även kommunicera med datorn med UART.

Ingående komponenter del 1

Komponent Antal Referens
Mikrokontroller 1 (färdigmonterad) U2
Switchregulator (3.3V) 1 (färdigmonterad) U1
Stor keram 10uF 5 C2, C3, C4, C5, C13
Liten Keram 100nF 7 C6, C8, C9, C10, C11, C12, C14
Tantal, 100uF, 10V 3 C1, C7, C15
Lastkapacitans Kristall 18pF 2 C16, C17
10k resistor 2 R6, R11, R20
3k3 resistor 1 R9, R21
100R resistor 8 R1, R2, R3, R4, R5, R7, R8, R10
Mosfet (P-kanal) 3 Q1, Q2, Q3
LED Grön 4 LED1, LED3, LED5, LED7
LED Röd 3 LED2, LED4, LED6
Induktor (switchregulator) 1 L1
Diod 1 D1
Kristall 8 MHz 1 X1
Stiftlist (1x2) 1 P1
Stiftlist vinklad (1x4) 1 P2
Knappar, små 3 SW1, SW2, SW3

Att tänka på

  • LED1 - LED7 är lysdioder och har därmed polaritet, dvs att det spelar roll åt vilket håll de sitter åt. På LEDsen så finns det på ena kortänden lite grönt på ovansidan som markerar katoden (minus). På undersidan av leden så varierar det hur det är markerat, men generellt så är det en grön pil mot katoden eller ett streck som pekar mot katoden. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.
  • D1 är en vanlig diod och har även den polaritet. Katodsidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstrecket i komponentavtrycket.
  • C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda strecket utanför komponentens avtryck.
  • Lipo-batteriet har ingen strömbegränsning. Ifall det finns en kortslutning på kortet finns det risk att någonting går sönder. Var därför försiktig när du kopplar in det.

Hålmonterade:

  • Stiftlister
  • Knappar
  • Kristall

Notera: Bootkretsen är planerad att tas bort. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:

  • Löd inte C15, R10 och Q3
  • Istället för D1, kortslut detta med ett komponentben eller liknande (du får sådana från en IR-mottagare eller IR-led)
  • Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.
  • Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.

Testning

När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:

  • Ifall du har en multimeter, använd den och mät resistansen mellan V+ och GND, samt mellan VCC och GND. Där bör det inte vara någon nämnvärd kontakt (flertalet kohm).
  • Koppla in batteriet på Vin (precis bredvid buzzern). Tänk på att koppla åt rätt håll. Svart mot GND och röd mot Vin. Nu ska LED1 (power) börja lysa. Ifall den inte gör det, koppla snabbt ur

Du kan testa några program som gör följande:

  • Tänder LEDs
  • Tänder/släcker LEDs baserat på tid (delay)
  • Tänder slöcker LEDs baserat på knappar
  • Visar batteriets laddning (ADC)

Komponentlista

File:Dellistor.ods.zip

Del 2 - Motorer

I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler so morkar driva motorerna framåt och bakåt. Vidare finns det även tachometrar (REF1 och 2) som kan användas för att mäta motorernas (hjulens) hastigheter.

Komponentlista del 2

Komponent Antal Referens
H-brygga, DRV8833 1 (färdigmonterad) U3
10k resistor 2 R15, R13
100R resistor 2 R12, R14
Reflexdetektor 2 REF1, REF2
Stor keram 10uF 2 C19, C20
Liten Keram 100nF 1 C18
Micro metal gear, 100:1 HP 2
Motorbrackets, par 1
Hjul, par 1
Stiftlist (1x2) 2 P3, P4

Att tänka på

  • Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.
  • För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.
  • Hjulet kan vara lite trögt att få på, men det går med milt våld. Det kommer att vara trögare att få av.

Testning

VIKTIGT! Roboten kommer att springa iväg ifall du inte förbereder för detta. Två saker bör man alltid ha med när man testar robotar som kan röra på sig:

  • I koden ska du inte låta motorer köra förrän du har givit startkommando (t.ex. via en knapp). Din kod bör se ut liknande som följer:

<syntaxhighlight lang="C"> init_stuff(); //Do normal init routines while(!SW1){} //Wait for input switch 1 to be true run_motors(); //Start your engines! </syntaxhighlight>

  • Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)

Todo: Ladda in program som kör motorerna. Tryck lite på knapparna för att köra motorerna i olika hastighet, framåt och bakåt. Beroende på hur du monterat motorerna kan dom gå åt "fel" håll. I filen motors.h finns parametrar som heter MC_RIGHT_DIR och MC_LEFT_DIR. Dessa ställer in motorernas riktning. Dessa ställer motorernas neutralriktning och ska vara -1.0 eller 1.0. Ifall någon motor går åt fel håll, byt denna parameter för motorn.

Del 3 - Sensorer

Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:

  • 4 st Hinderdetektorer - Består av IR-mottagare för fjärrkontroller samt lysdioder som pulsas enligt ett visst mönster. När ljuset studsar på ett hinder får mottagaren signal.
  • 2 st Reflexdetektorer - Känner av underlagets reflektivitet. Kan används för att hitta bordskanter eller en vit linje runt en sumoplan. Skickar ut ljus och mäter hur mycket som kommer tillbaka.
  • 1 st IMU (Inertia Measurement Unit) - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.
  • 1st Fjärrkontrollsmottagare - Denna är likadan som hinderdektetorerna men riktad bakåt. Används för att ta emot kommandon från fjärrkontroller som använder RC5 (vanligt protokoll för TV-fjärrkontroller) t.ex. start/stopp och hastighetsinställningar.

Komponentlista del 3

Komponent Antal Referens
IMU 1 (färdigmonterad) U4
10k resistor 4 R17, R19, R27
3k3 resistor 3 R34, R35
100R resistor 8 R16, R18, R22, R23, R24, R25, R26, R28
22R resistor 4 R29, R30, R31, R32
Stor keram 10uF 4 C27, C28, C29, C30
Liten Keram 100nF 1 C21, C22, C23, C24, C25, C26, C31, C32, C33, C34
IR-mottagare 4 IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5
IR-LED 4 LED8, LED9, LED10, LED11
Reflexdetektor 2 REF3, REF4
Mosfet (P-kanal) 1 Q4
Krympslang X mm 4

Att tänka på

  • Tänk på att inte löda IR-mottagarna och lysdioderna hela vägen ner. Spara en del av benen så att de kan böjas tillrätta. Dett beror såklart på hur du tänkte bygga chassit till din robot.
  • IR-ledsen är polkänsliga. Det långa benet är plus (anod). Ifall någon har skojat och klippt av benen kan man titta i LEDen. Det ena benet går till en stor platta. Denna stora plattan är minus (katod).
  • Ir-mottagarna och lsydioderna behöver mycket skärmning. Använd krympslangen eller svart eltejp till detta. Här får man pröva sig fram lite (se Att skärma).
  • Reflexdetektorerna ska lödas från ovansidan tittandes nedåt i kortet. Matcha upp det avfasade hörnet med markeringen på kortet. Benen kan behöva böjas till lite. Se till att de når ända ut till paddarna.

Testning

  • Ett program som läser av framåtsensorerna och rapporterar på LEDs.
  • Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.

Att skärma av framåtsensorerna

Dessa sensorer är inte de allra bästa (tanken var aldrig att dessa komponenter skulle vara sensorer). Det krävs mycket skärmning på dem för att det ska bli bra. Både sändarna (IR-LEDsen) och mottgarna (IRMOT) behöver skärmas. Följande procedur är rekommenderad:

IR-LEDs

  • Böj de lite så att LEDsen pekar framåt
  • Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den
  • Trä den över LEDsen så att revan du klippte går över benen.
  • Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)
  • Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).
  • Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.

IR-mottagarna

  • Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)
  • Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.
  • Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)

Trimma

  • Kör testprogrammet som visar sensorernas status på LEDsen.
  • Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)
  • Ställ någon liten låda framför roboten och se vad den ser
  • Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.

Del 4 - Extrafunktioner

Dessa funktioner är inte nödvändiga för att din IntroARM ska kunna fungera som en robot, utan mer lite roliga extrafunktioner. Detta består av 3 funktioner:

  • 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)
  • Buzzer - Roboten låter! Rolig funktion med vilken roboten kan göra olika ljud och enklare spela musik. Kan vara bra som interface till roboten.
  • SD-sockel - En kontakt att montera SD-kort i (Sd-kort medföljer ej) på vilket man kan spara t.ex. loggar eller musik med hjälp av Fat-FS.

Komponentlista del 4

Komponent Antal Referens
5V-regulator (1117-5) U6 1
Buzzer 1 SP1
Mosfet (P-kanal) 1 Q5
Motstånd 3k3 1 R33
Stor keram 10uF 3 C37, C38, C40
Liten Keram 100nF 2 C35, C36
Tantal, 100uF, 10V 1 C39
SD-sockel 1 U5

Att tänka på

  • SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.

Testning

Program för pipande. Kanske nåt enkelt program för att läsa en fil eller nåt (spara en logg). Kanske t.o.m. spela upp en ljudfil (wav) från SD-kortet.

Del 5 - Extra interface

Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC) VIKTIGT! Montera enbart dessa stiftlister vid behov, de kommer att vara ivägen för batteriet. Vid normalt användande behövs de ej. Motstånden är seriemotstånd till UART3.

Komponentlista del 5

Komponent Antal Referens
Motstånd 3k3 2 R36, R37
Stiftlist (1x2) 2 P5, P6
Stiftlist (1x4) 1 P7
Stiftlist (1x5) 2 P8, P9
Stiftlist (1x8) 1 P10

Kopplingsschema

File:IntroARM2012v2.pdf

Komponenters placering på PCB

ComponentMapP1.png
ComponentMapP2.png