https://wiki.chalmersrobotics.se/w/api.php?action=feedcontributions&user=Pkalden&feedformat=atomChalmers Robotförening - User contributions [en]2024-03-29T04:47:58ZUser contributionsMediaWiki 1.37.1https://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=1148Byggbeskrivning introARM2014-10-25T03:39:45Z<p>Pkalden: /* Förberedelser */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar och hårdvarubuggar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br><br />
=Revisionhistorik=<br />
Denna revisionshistorik gäller kretskort och komponenter (d.v.s. endast hårdvara). En major revision (2 till 3) innebär byte av mönsterkort, medan en minor (t.ex. 2.1 innebär komponentuppgradring). Denna guide ska alltid försöka spegla den senaste revisionen. Mjukvarurevisioner hittas på [[Program IntroARM | mjukvarusidan.]]<br />
==Rev 3==<br />
* Ny layout på mönsterkortet. <br />
* Borttagning av switchregulatorn. Denna är ersatt med en större (DPAK), linjär 5V-regulator samt en mindre (SOT-223) 3V3-regulator.<br />
* Slutlig borttagning av bootkretsen.<br />
* Framåtsensorerna är flyttade längre bakåt, för att det ska bli enklare att montera en plog<br />
* Nu finns en stor jord-pad att sätta oscilloskopsklämman på<br />
* Mindre uppdateringar av vilka pinnar som går vart ''Todo: Skriv vilka''<br />
<br />
==Rev 2.1==<br />
Byggbeskrivningen för Rev2.1 och tidigare finns [[Byggbeskrivning introARM rev2 | här.]]<br />
* Borttagning av bootkretsen. Istället för att endast styra på en pinne anvädner man två pinnar för programmera. Följande instruktioner används för att skippa denna:<br />
** Löd inte C15, R10 och Q3<br />
** 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)<br />
** Löd ett kontaktstift (stiftlist) till plus-polen på C15 eller den R10-padden som är närmast motorerna.<br />
** Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Rev2==<br />
* Mindre uppdatering av kortets layout och silkscreen.<br />
* Tachometrarna är numera kopplade till ADC istället för timers. Endast en sensor per hjul.<br />
<br />
=Förberedelser=<br />
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:<br><br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U5<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Konding Tantal, 100uF, 10V<br />
|647-F951A107MAAAQ2<br />
|C1, C7<br />
|2<br />
|<br />
|-<br />
|Konding 10uF, 25V<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C15,C19-C20,C27-C30,C37-C38,C40<br />
|11<br />
|<br />
|-<br />
|Konding 100nF, 50V<br />
|77-VJ1206Y104KXXPBC<br />
|C3, C6,C8-C12, C14, C18, C21-C26, C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19, R20<br />
|7<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R9, R21, R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5, R7, R8, R10, R12, R14, R16, R18, R22-R27, R28-R32<br />
|23<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP4138<br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1, Q2, Q4, Q5<br />
|4<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|3V3-regulator (1117-33)<br />
|863-NCP1117ST33T3G<br />
|U2<br />
|1<br />
|<br />
|-<br />
|5V-regulator (LD2908)<br />
|511-LD29080DT50R<br />
|U1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
''Todo: Uppdatera med bilder på nya komponenter och ta bort gamla som inte ska finnas med.''<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen (t.ex. en s.k. Tredje hand)<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa saker i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det och låt det svalna.<br />
* Spänningen får inte bli för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
==Komma igång med programmeringen==<br />
Detta ska du göra först efter att du börjat löda ihop den, men du kan sätta igång det medan du börjar. Gå till artikeln [[Förberedelse programmering STM32]] för en guide. Det finns även en snabbguide i den artikeln för dig som vill komma igång snabbt. Där finns även exempelkod för IntroARM.<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
Del 1 är framförallt mikrokontrollerns kringkomponenter, kraftförsörjning (5V och 3V3) och grundläggande funktioner som indikatorleds och användarknappar. Efter detta steg kan din robot blinka lite och ta in användarinputs (från knapparna). Den kan även kommunicera med datorn med UART.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| Konding 10uF, 25V<br />
| 5<br />
| C2, C4, C5, C13, C15<br />
|-<br />
| Konding 100nF, 50V<br />
| 9<br />
| C3, C6, C8-C12, C14, C21<br />
|-<br />
| Konding Tantal, 100uF, 10V<br />
| 2<br />
| C1, C7<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 3<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 2<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 7<br />
| R1, R2, R3, R4, R5, R7, R8<br />
|-<br />
| Mosfet (P-kanal)<br />
| 2<br />
| Q1, Q2<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x5)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:IntroARM2013v3KomponentplaceringDel1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*C1 och C7 är tantalkondensatorer och även dessa har polaritet. Komponenterna skall monteras med den lilla toppen mot plus.<br />
*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, och var säker på att du koppla in det åt rätt håll.<br />
Hålmonterade:<br />
*Stiftlister P1-2<br />
*Knappar SW1-3<br />
*Kristall X1<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Konding 10uF, 25V<br />
| 2<br />
| C19, C20<br />
|-<br />
| Konding 100nF, 50V<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 2 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (förmonterad)<br />
| U5<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R17, R19<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R27, R34, R35<br />
|-<br />
| 100R resistor<br />
| 10<br />
| R16, R18, R22-R26, R28-R32<br />
|-<br />
| Konding 10uF, 25V<br />
| 4<br />
| C27-C30<br />
|-<br />
| Konding 100nF, 50V<br />
| 9<br />
| C22-C26, C31-C34<br />
|-<br />
| IR-mottagare<br />
| 5<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 3 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* IR-mottagarna och lysdioderna 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
* Ett program för styrning med fjärrkontroll.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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 2 funktioner:<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Konding 100nF, 50V<br />
| 2<br />
| C35, C36<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 4 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kan vara ivägen för batteriet. Vid normalt användande behövs de ej. Motstånden pullup för I2C.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br>[[File:IntroARM2013v3KomponentplaceringDel5.png|800px]]<br><br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=1142IntroARM2014-10-24T22:55:49Z<p>Pkalden: /* Till revision 4 */</p>
<hr />
<div>IntroARM är den senaste byggsatsen i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter, har en mycket kraftfullare processor och bättre motorer och växellåda än föregångaren.<br />
<br />
=Introduktion=<br />
IntroARM är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kit:en som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet. Det är dessutom enklare att göra om ifall man råkar göra fel.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare (kan diskuteras). Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med [http://en.wikipedia.org/wiki/ARM_Cortex-M ARM Cortex-M3-kärna] från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
Till skillnad från sina föregångare är IntroARM mer fokuseard mot att bli en minisumo, detta gör att det har gjorts vissa avkall mot modulariteten jämfört med tidigare byggsatser, men vi anser att de extra funktionerna och kvaliteten gör det värt det. Det krävs numera t.ex. ingen extra hårdvara (t.ex. chassi) för att få roboten att bara köra.<br />
Det är självklart möjligt att göra andra saker med byggsatsen, såsom t.ex. linjeföljare, inverterad pendel eller bara ett enkelt utvecklingskort. Det finns ett antal expansionsportar enkelt tillgängliga som man kan anvädna för ytterligare funktioner.<br />
<br />
=Features=<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
==Elektronik==<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 6 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar (hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
==Mekanik==<br />
* 2 Pololu Micro Metal Gear motor HP (100:1 som standard)<br />
* 2 Motorfästen som monteras direkt på kretskortet<br />
* 2 Hjul med tachometertänder<br />
* Ett flertal fästpunker att skruva fast ett egenbyggt chassi i<br />
<br />
=[[Förberedelse programmering STM32]]=<br />
Vilse har satts på att göra en allomfattande guide för nybörjare som tar dig igenom [[Förberedelse programmering STM32 | alla moment för att komma igång med programmering]].<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux (kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
I annat fall är google din vän. Googla på t.ex. Setting up STM32 for (och så det OS du använder). Du kan även slänga med din favoritutvecklingsmiljö (Eclipse) i söksträngen.<br />
<br />
=[[Byggbeskrivning introARM]]=<br />
[[Byggbeskrivning introARM]] går igenom hur du sätter ihop din IntroARM. Innehåller t.ex. vilka komponenter som ska sitta vart, lite testmöjligheter osv.<br />
<br />
=[[Programmering STM32]]=<br />
[[Programmering STM32]] går igenom hur man utvecklar programvara för STM32. Den innehåller information om drivrutiner till peripherals och STs biblioteik (stdperiph). Denna sida handlar inte hur man sätter upp utvecklingsmiljöer. Det görs i [[Förberedelse programmering STM32]].<br />
<br />
=[[Program IntroARM]]=<br />
[[Program IntroARM]] går igenom det program som finns är utvecklat av robotföreningen som är en bra punkt att utgå från. Den innehåller information om de färdiga funktioner som är skräddarsydda för IntroARM-kortet.<br />
<br />
=Förbättringsförslag=<br />
Här samlas buggar och förbättringsförslag på hårdvaran till IntroARM. Alla förbättringar ligger mot nästa revision. Om du har en gammal revision får du kolla längre ner. Nuvarande version: Rev3<br />
==Till revision 4==<br />
*Silkscreenen på komponentnamnen (för kondingar/motstånd) är väldigt små. Försök göra dom större om möjligt.<br />
*Buzzern har inget namn i silkscreen<br />
*Det står inte vilken SPI det är i silkscreenen (det står bara MISO/MOSI etc)<br />
*Det vore bra med någon mätpunkt/kontakt för V+ efter polvändningsskyddet på ovansidan.<br />
*Jordpadden för oscilloskopsklämma har lödmask på undersidan. Det borde den kanske inte ha.<br />
*Lägg stopmask (exponerad koppar) i jordplanet på andra sidan från motordrivaren. Vian borde även även vara större.<br />
*Flytta C23 och R23 lite längre från IRMOT2.<br />
*Det går ledare och vias under ena motorn. Försök att routa om dessa.<br />
*Det saknas revisionstext och namn etc. Glöm inte detta! Revision 3 känns igen på att den stora jordpadden inte är exponerad på undersidan.<br />
*Re-annotera alla komponentreferenser (så att referenser som inte finns längre tas bort)<br />
*Gör hålen för kantsensorerna lite mindre (totalt 1 mm i bredd och höjd kanske).<br />
*Transistorerna är lite svåra att löda, förstora padsen.<br />
*Lägg till silkscreen för de vinklade stiftlisterna.<br />
*5V och 3,3V markeringen täcks av motorfästena.<br />
<br />
==Till revision 3==<br />
*<s>Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision. C17 är helt slopad.</s><br />
*<s>Silkscreen på tantalerna saknas/syns dåligt. Lägg till i footprintet ordentligt.</s><br />
*<s>Det står inte vilken uart/I2C som går till vilken stiftlist. Detta borde märkas ut som RX1/TX1, RX2/TX2 osv. Fixa i nästa revision.</s><br />
*<s>Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.</s><br />
*<s>Benen till mikrokontrollern, h-bryggan och IMU är korta vilket för det svårare att löda. Dessa bör vara längre. Fixa i nästa revision.</s><br />
*<s>Se till att det finns någonstans att sätta en jordklämma för att mäta med oscilloskop.</s><br />
*<s>Footprintet till tachometrarna (REF1 och REF2) är dåligt. Markeringen syns dåligt.</s><br />
*<s>Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision. Problem, går inte att köpa från Mouser. De kan köpas från Elfa. Vi kör på dom med korta ben och ändrar hålet.</s><br><br />
*<s>Ta bort bootloader-kretsen. Eftersom [[stm32flash]] fungerar bra nu med att styra båda pinnarna behövs inte denna. Dra ut boot till programmeringsstiftlisten</s>.<br />
*<s>Fundera ifall motstånden till IR-ledsen behöver vara 10ohm (sternå fick det att funka bra med 100ohm). Kör på 100ohm.</s><br />
*<s>Flytta C35 till innan MOSFETen till Buzzern</s><br />
*<s>Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision</s>.<br />
*<s>Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision. Den sitter mot knapparna (från microcontrollern)</s><br><br />
----</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=1140IntroARM2014-10-24T19:10:31Z<p>Pkalden: /* Till revision 4 */</p>
<hr />
<div>IntroARM är den senaste byggsatsen i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter, har en mycket kraftfullare processor och bättre motorer och växellåda än föregångaren.<br />
<br />
=Introduktion=<br />
IntroARM är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kit:en som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet. Det är dessutom enklare att göra om ifall man råkar göra fel.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare (kan diskuteras). Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med [http://en.wikipedia.org/wiki/ARM_Cortex-M ARM Cortex-M3-kärna] från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
Till skillnad från sina föregångare är IntroARM mer fokuseard mot att bli en minisumo, detta gör att det har gjorts vissa avkall mot modulariteten jämfört med tidigare byggsatser, men vi anser att de extra funktionerna och kvaliteten gör det värt det. Det krävs numera t.ex. ingen extra hårdvara (t.ex. chassi) för att få roboten att bara köra.<br />
Det är självklart möjligt att göra andra saker med byggsatsen, såsom t.ex. linjeföljare, inverterad pendel eller bara ett enkelt utvecklingskort. Det finns ett antal expansionsportar enkelt tillgängliga som man kan anvädna för ytterligare funktioner.<br />
<br />
=Features=<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
==Elektronik==<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 6 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar (hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
==Mekanik==<br />
* 2 Pololu Micro Metal Gear motor HP (100:1 som standard)<br />
* 2 Motorfästen som monteras direkt på kretskortet<br />
* 2 Hjul med tachometertänder<br />
* Ett flertal fästpunker att skruva fast ett egenbyggt chassi i<br />
<br />
=[[Förberedelse programmering STM32]]=<br />
Vilse har satts på att göra en allomfattande guide för nybörjare som tar dig igenom [[Förberedelse programmering STM32 | alla moment för att komma igång med programmering]].<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux (kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
I annat fall är google din vän. Googla på t.ex. Setting up STM32 for (och så det OS du använder). Du kan även slänga med din favoritutvecklingsmiljö (Eclipse) i söksträngen.<br />
<br />
=[[Byggbeskrivning introARM]]=<br />
[[Byggbeskrivning introARM]] går igenom hur du sätter ihop din IntroARM. Innehåller t.ex. vilka komponenter som ska sitta vart, lite testmöjligheter osv.<br />
<br />
=[[Programmering STM32]]=<br />
[[Programmering STM32]] går igenom hur man utvecklar programvara för STM32. Den innehåller information om drivrutiner till peripherals och STs biblioteik (stdperiph). Denna sida handlar inte hur man sätter upp utvecklingsmiljöer. Det görs i [[Förberedelse programmering STM32]].<br />
<br />
=[[Program IntroARM]]=<br />
[[Program IntroARM]] går igenom det program som finns är utvecklat av robotföreningen som är en bra punkt att utgå från. Den innehåller information om de färdiga funktioner som är skräddarsydda för IntroARM-kortet.<br />
<br />
=Förbättringsförslag=<br />
Här samlas buggar och förbättringsförslag på hårdvaran till IntroARM. Alla förbättringar ligger mot nästa revision. Om du har en gammal revision får du kolla längre ner. Nuvarande version: Rev3<br />
==Till revision 4==<br />
*Silkscreenen på komponentnamnen (för kondingar/motstånd) är väldigt små. Försök göra dom större om möjligt.<br />
*Buzzern har inget namn i silkscreen<br />
*Det står inte vilken SPI det är i silkscreenen (det står bara MISO/MOSI etc)<br />
*Det vore bra med någon mätpunkt/kontakt för V+ efter polvändningsskyddet på ovansidan.<br />
*Jordpadden för oscilloskopsklämma har lödmask på undersidan. Det borde den kanske inte ha.<br />
*Lägg stopmask (exponerad koppar) i jordplanet på andra sidan från motordrivaren. Vian borde även även vara större.<br />
*Flytta C23 och R23 lite längre från IRMOT2.<br />
*Det går ledare under ena motorn. Försök att routa om dessa.<br />
*Det saknas revisionstext och namn etc. Glöm inte detta! Revision 3 känns igen på att den stora jordpadden inte är exponerad på undersidan.<br />
*Re-annotera alla komponentreferenser (så att referenser som inte finns längre tas bort)<br />
*Gör hålen för kantsensorerna lite mindre (totalt 1 mm i bredd och höjd kanske).<br />
*Transistorerna är lite svåra att löda, förstora padsen.<br />
*Lägg till silkscreen för de vinklade stiftlisterna<br />
<br />
==Till revision 3==<br />
*<s>Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision. C17 är helt slopad.</s><br />
*<s>Silkscreen på tantalerna saknas/syns dåligt. Lägg till i footprintet ordentligt.</s><br />
*<s>Det står inte vilken uart/I2C som går till vilken stiftlist. Detta borde märkas ut som RX1/TX1, RX2/TX2 osv. Fixa i nästa revision.</s><br />
*<s>Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.</s><br />
*<s>Benen till mikrokontrollern, h-bryggan och IMU är korta vilket för det svårare att löda. Dessa bör vara längre. Fixa i nästa revision.</s><br />
*<s>Se till att det finns någonstans att sätta en jordklämma för att mäta med oscilloskop.</s><br />
*<s>Footprintet till tachometrarna (REF1 och REF2) är dåligt. Markeringen syns dåligt.</s><br />
*<s>Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision. Problem, går inte att köpa från Mouser. De kan köpas från Elfa. Vi kör på dom med korta ben och ändrar hålet.</s><br><br />
*<s>Ta bort bootloader-kretsen. Eftersom [[stm32flash]] fungerar bra nu med att styra båda pinnarna behövs inte denna. Dra ut boot till programmeringsstiftlisten</s>.<br />
*<s>Fundera ifall motstånden till IR-ledsen behöver vara 10ohm (sternå fick det att funka bra med 100ohm). Kör på 100ohm.</s><br />
*<s>Flytta C35 till innan MOSFETen till Buzzern</s><br />
*<s>Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision</s>.<br />
*<s>Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision. Den sitter mot knapparna (från microcontrollern)</s><br><br />
----</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=1139Byggbeskrivning introARM2014-10-24T18:30:39Z<p>Pkalden: /* Ingående komponenter del 1 */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar och hårdvarubuggar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br><br />
=Revisionhistorik=<br />
Denna revisionshistorik gäller kretskort och komponenter (d.v.s. endast hårdvara). En major revision (2 till 3) innebär byte av mönsterkort, medan en minor (t.ex. 2.1 innebär komponentuppgradring). Denna guide ska alltid försöka spegla den senaste revisionen. Mjukvarurevisioner hittas på [[Program IntroARM | mjukvarusidan.]]<br />
==Rev 3==<br />
* Ny layout på mönsterkortet. <br />
* Borttagning av switchregulatorn. Denna är ersatt med en större (DPAK), linjär 5V-regulator samt en mindre (SOT-223) 3V3-regulator.<br />
* Slutlig borttagning av bootkretsen.<br />
* Framåtsensorerna är flyttade längre bakåt, för att det ska bli enklare att montera en plog<br />
* Nu finns en stor jord-pad att sätta oscilloskopsklämman på<br />
* Mindre uppdateringar av vilka pinnar som går vart ''Todo: Skriv vilka''<br />
<br />
==Rev 2.1==<br />
Byggbeskrivningen för Rev2.1 och tidigare finns [[Byggbeskrivning introARM rev2 | här.]]<br />
* Borttagning av bootkretsen. Istället för att endast styra på en pinne anvädner man två pinnar för programmera. Följande instruktioner används för att skippa denna:<br />
** Löd inte C15, R10 och Q3<br />
** 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)<br />
** Löd ett kontaktstift (stiftlist) till plus-polen på C15 eller den R10-padden som är närmast motorerna.<br />
** Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Rev2==<br />
* Mindre uppdatering av kortets layout och silkscreen.<br />
* Tachometrarna är numera kopplade till ADC istället för timers. Endast en sensor per hjul.<br />
<br />
=Förberedelser=<br />
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:<br><br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U5<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Konding Tantal, 100uF, 10V<br />
|647-F951A107MAAAQ2<br />
|C1, C7<br />
|2<br />
|<br />
|-<br />
|Konding 10uF, 25V<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C15,C19-C20,C27-C30,C37-C38,C40<br />
|11<br />
|<br />
|-<br />
|Konding 100nF, 50V<br />
|77-VJ1206Y104KXXPBC<br />
|C3, C6,C8-C12, C14, C18, C21-C26, C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19, R20<br />
|7<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R9, R21, R27, R33-R37<br />
|8<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5, R7, R8, R10, R12, R14, R16, R18, R22-R26, R28-R32<br />
|22<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP4138<br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1, Q2, Q4, Q5<br />
|4<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|3V3-regulator (1117-33)<br />
|863-NCP1117ST33T3G<br />
|U2<br />
|1<br />
|<br />
|-<br />
|5V-regulator (LD2908)<br />
|511-LD29080DT50R<br />
|U1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
''Todo: Uppdatera med bilder på nya komponenter och ta bort gamla som inte ska finnas med.''<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen (t.ex. en s.k. Tredje hand)<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa saker i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det och låt det svalna.<br />
* Spänningen får inte bli för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
==Komma igång med programmeringen==<br />
Detta ska du göra först efter att du börjat löda ihop den, men du kan sätta igång det medan du börjar. Gå till artikeln [[Förberedelse programmering STM32]] för en guide. Det finns även en snabbguide i den artikeln för dig som vill komma igång snabbt. Där finns även exempelkod för IntroARM.<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
Del 1 är framförallt mikrokontrollerns kringkomponenter, kraftförsörjning (5V och 3V3) och grundläggande funktioner som indikatorleds och användarknappar. Efter detta steg kan din robot blinka lite och ta in användarinputs (från knapparna). Den kan även kommunicera med datorn med UART.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| Konding 10uF, 25V<br />
| 5<br />
| C2, C4, C5, C13, C15<br />
|-<br />
| Konding 100nF, 50V<br />
| 9<br />
| C3, C6, C8-C12, C14, C21<br />
|-<br />
| Konding Tantal, 100uF, 10V<br />
| 2<br />
| C1, C7<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R20<br />
|-<br />
| 3k3 resistor<br />
| 2<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 7<br />
| R1, R2, R3, R4, R5, R7, R8<br />
|-<br />
| Mosfet (P-kanal)<br />
| 2<br />
| Q1, Q2<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x5)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:IntroARM2013v3KomponentplaceringDel1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*C1 och C7 är tantalkondensatorer och även dessa har polaritet. Komponenterna skall monteras med den lilla toppen mot plus.<br />
*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, och var säker på att du koppla in det åt rätt håll.<br />
Hålmonterade:<br />
*Stiftlister P1-2<br />
*Knappar SW1-3<br />
*Kristall X1<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Konding 10uF, 25V<br />
| 2<br />
| C19, C20<br />
|-<br />
| Konding 100nF, 50V<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 2 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (förmonterad)<br />
| U5<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R17, R19<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R27<br />
|-<br />
| 100R resistor<br />
| 10<br />
| R16, R18, R22-R26, R28-R32<br />
|-<br />
| Konding 10uF, 25V<br />
| 4<br />
| C27-C30<br />
|-<br />
| Konding 100nF, 50V<br />
| 9<br />
| C22-C26, C31-C34<br />
|-<br />
| IR-mottagare<br />
| 5<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 3 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* IR-mottagarna och lysdioderna 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
* Ett program för styrning med fjärrkontroll.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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 2 funktioner:<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Konding 100nF, 50V<br />
| 2<br />
| C35, C36<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 4 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kan vara ivägen för batteriet. Vid normalt användande behövs de ej. Motstånden pullup för I2C.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R34-R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br>[[File:IntroARM2013v3KomponentplaceringDel5.png|800px]]<br><br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=1138Byggbeskrivning introARM2014-10-24T18:30:10Z<p>Pkalden: /* Förberedelser */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar och hårdvarubuggar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br><br />
=Revisionhistorik=<br />
Denna revisionshistorik gäller kretskort och komponenter (d.v.s. endast hårdvara). En major revision (2 till 3) innebär byte av mönsterkort, medan en minor (t.ex. 2.1 innebär komponentuppgradring). Denna guide ska alltid försöka spegla den senaste revisionen. Mjukvarurevisioner hittas på [[Program IntroARM | mjukvarusidan.]]<br />
==Rev 3==<br />
* Ny layout på mönsterkortet. <br />
* Borttagning av switchregulatorn. Denna är ersatt med en större (DPAK), linjär 5V-regulator samt en mindre (SOT-223) 3V3-regulator.<br />
* Slutlig borttagning av bootkretsen.<br />
* Framåtsensorerna är flyttade längre bakåt, för att det ska bli enklare att montera en plog<br />
* Nu finns en stor jord-pad att sätta oscilloskopsklämman på<br />
* Mindre uppdateringar av vilka pinnar som går vart ''Todo: Skriv vilka''<br />
<br />
==Rev 2.1==<br />
Byggbeskrivningen för Rev2.1 och tidigare finns [[Byggbeskrivning introARM rev2 | här.]]<br />
* Borttagning av bootkretsen. Istället för att endast styra på en pinne anvädner man två pinnar för programmera. Följande instruktioner används för att skippa denna:<br />
** Löd inte C15, R10 och Q3<br />
** 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)<br />
** Löd ett kontaktstift (stiftlist) till plus-polen på C15 eller den R10-padden som är närmast motorerna.<br />
** Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Rev2==<br />
* Mindre uppdatering av kortets layout och silkscreen.<br />
* Tachometrarna är numera kopplade till ADC istället för timers. Endast en sensor per hjul.<br />
<br />
=Förberedelser=<br />
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:<br><br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U5<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Konding Tantal, 100uF, 10V<br />
|647-F951A107MAAAQ2<br />
|C1, C7<br />
|2<br />
|<br />
|-<br />
|Konding 10uF, 25V<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C15,C19-C20,C27-C30,C37-C38,C40<br />
|11<br />
|<br />
|-<br />
|Konding 100nF, 50V<br />
|77-VJ1206Y104KXXPBC<br />
|C3, C6,C8-C12, C14, C18, C21-C26, C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19, R20<br />
|7<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R9, R21, R27, R33-R37<br />
|8<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5, R7, R8, R10, R12, R14, R16, R18, R22-R26, R28-R32<br />
|22<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP4138<br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1, Q2, Q4, Q5<br />
|4<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|3V3-regulator (1117-33)<br />
|863-NCP1117ST33T3G<br />
|U2<br />
|1<br />
|<br />
|-<br />
|5V-regulator (LD2908)<br />
|511-LD29080DT50R<br />
|U1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
''Todo: Uppdatera med bilder på nya komponenter och ta bort gamla som inte ska finnas med.''<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen (t.ex. en s.k. Tredje hand)<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa saker i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det och låt det svalna.<br />
* Spänningen får inte bli för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
==Komma igång med programmeringen==<br />
Detta ska du göra först efter att du börjat löda ihop den, men du kan sätta igång det medan du börjar. Gå till artikeln [[Förberedelse programmering STM32]] för en guide. Det finns även en snabbguide i den artikeln för dig som vill komma igång snabbt. Där finns även exempelkod för IntroARM.<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
Del 1 är framförallt mikrokontrollerns kringkomponenter, kraftförsörjning (5V och 3V3) och grundläggande funktioner som indikatorleds och användarknappar. Efter detta steg kan din robot blinka lite och ta in användarinputs (från knapparna). Den kan även kommunicera med datorn med UART.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| Konding 10uF, 25V<br />
| 5<br />
| C2, C4, C5, C13, C14<br />
|-<br />
| Konding 100nF, 50V<br />
| 9<br />
| C3, C6, C8-C12, C14, C21<br />
|-<br />
| Konding Tantal, 100uF, 10V<br />
| 2<br />
| C1, C7<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R20<br />
|-<br />
| 3k3 resistor<br />
| 2<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 7<br />
| R1, R2, R3, R4, R5, R7, R8<br />
|-<br />
| Mosfet (P-kanal)<br />
| 2<br />
| Q1, Q2<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x5)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:IntroARM2013v3KomponentplaceringDel1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*C1 och C7 är tantalkondensatorer och även dessa har polaritet. Komponenterna skall monteras med den lilla toppen mot plus.<br />
*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, och var säker på att du koppla in det åt rätt håll.<br />
Hålmonterade:<br />
*Stiftlister P1-2<br />
*Knappar SW1-3<br />
*Kristall X1<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Konding 10uF, 25V<br />
| 2<br />
| C19, C20<br />
|-<br />
| Konding 100nF, 50V<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 2 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (förmonterad)<br />
| U5<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R17, R19<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R27<br />
|-<br />
| 100R resistor<br />
| 10<br />
| R16, R18, R22-R26, R28-R32<br />
|-<br />
| Konding 10uF, 25V<br />
| 4<br />
| C27-C30<br />
|-<br />
| Konding 100nF, 50V<br />
| 9<br />
| C22-C26, C31-C34<br />
|-<br />
| IR-mottagare<br />
| 5<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 3 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* IR-mottagarna och lysdioderna 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
* Ett program för styrning med fjärrkontroll.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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 2 funktioner:<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Konding 100nF, 50V<br />
| 2<br />
| C35, C36<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 4 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:IntroARM2013v3KomponentplaceringDel4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kan vara ivägen för batteriet. Vid normalt användande behövs de ej. Motstånden pullup för I2C.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R34-R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br>[[File:IntroARM2013v3KomponentplaceringDel5.png|800px]]<br><br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=1137IntroARM2014-10-24T18:14:44Z<p>Pkalden: /* Till revision 4 */</p>
<hr />
<div>IntroARM är den senaste byggsatsen i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter, har en mycket kraftfullare processor och bättre motorer och växellåda än föregångaren.<br />
<br />
=Introduktion=<br />
IntroARM är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kit:en som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet. Det är dessutom enklare att göra om ifall man råkar göra fel.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare (kan diskuteras). Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med [http://en.wikipedia.org/wiki/ARM_Cortex-M ARM Cortex-M3-kärna] från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
Till skillnad från sina föregångare är IntroARM mer fokuseard mot att bli en minisumo, detta gör att det har gjorts vissa avkall mot modulariteten jämfört med tidigare byggsatser, men vi anser att de extra funktionerna och kvaliteten gör det värt det. Det krävs numera t.ex. ingen extra hårdvara (t.ex. chassi) för att få roboten att bara köra.<br />
Det är självklart möjligt att göra andra saker med byggsatsen, såsom t.ex. linjeföljare, inverterad pendel eller bara ett enkelt utvecklingskort. Det finns ett antal expansionsportar enkelt tillgängliga som man kan anvädna för ytterligare funktioner.<br />
<br />
=Features=<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
==Elektronik==<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 6 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar (hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
==Mekanik==<br />
* 2 Pololu Micro Metal Gear motor HP (100:1 som standard)<br />
* 2 Motorfästen som monteras direkt på kretskortet<br />
* 2 Hjul med tachometertänder<br />
* Ett flertal fästpunker att skruva fast ett egenbyggt chassi i<br />
<br />
=[[Förberedelse programmering STM32]]=<br />
Vilse har satts på att göra en allomfattande guide för nybörjare som tar dig igenom [[Förberedelse programmering STM32 | alla moment för att komma igång med programmering]].<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux (kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
I annat fall är google din vän. Googla på t.ex. Setting up STM32 for (och så det OS du använder). Du kan även slänga med din favoritutvecklingsmiljö (Eclipse) i söksträngen.<br />
<br />
=[[Byggbeskrivning introARM]]=<br />
[[Byggbeskrivning introARM]] går igenom hur du sätter ihop din IntroARM. Innehåller t.ex. vilka komponenter som ska sitta vart, lite testmöjligheter osv.<br />
<br />
=[[Programmering STM32]]=<br />
[[Programmering STM32]] går igenom hur man utvecklar programvara för STM32. Den innehåller information om drivrutiner till peripherals och STs biblioteik (stdperiph). Denna sida handlar inte hur man sätter upp utvecklingsmiljöer. Det görs i [[Förberedelse programmering STM32]].<br />
<br />
=[[Program IntroARM]]=<br />
[[Program IntroARM]] går igenom det program som finns är utvecklat av robotföreningen som är en bra punkt att utgå från. Den innehåller information om de färdiga funktioner som är skräddarsydda för IntroARM-kortet.<br />
<br />
=Förbättringsförslag=<br />
Här samlas buggar och förbättringsförslag på hårdvaran till IntroARM. Alla förbättringar ligger mot nästa revision. Om du har en gammal revision får du kolla längre ner. Nuvarande version: Rev3<br />
==Till revision 4==<br />
*Silkscreenen på komponentnamnen (för kondingar/motstånd) är väldigt små. Försök göra dom större om möjligt.<br />
*Buzzern har inget namn i silkscreen<br />
*Det står inte vilken SPI det är i silkscreenen (det står bara MISO/MOSI etc)<br />
*Det vore bra med någon mätpunkt/kontakt för V+ efter polvändningsskyddet på ovansidan.<br />
*Jordpadden för oscilloskopsklämma har lödmask på undersidan. Det borde den kanske inte ha.<br />
*Lägg stopmask (exponerad koppar) i jordplanet på andra sidan från motordrivaren. Vian borde även även vara större.<br />
*Flytta C23 och R23 lite längre från IRMOT2.<br />
*Det går ledare under ena motorn. Försök att routa om dessa.<br />
*Det saknas revisionstext och namn etc. Glöm inte detta! Revision 3 känns igen på att den stora jordpadden inte är exponerad på undersidan.<br />
*Re-annotera alla komponentreferenser (så att referenser som inte finns längre tas bort)<br />
*Gör hålen för kantsensorerna lite mindre (totalt 1 mm i bredd och höjd kanske).<br />
*Transistorerna är lite svåra att löda, förstora padsen.<br />
<br />
==Till revision 3==<br />
*<s>Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision. C17 är helt slopad.</s><br />
*<s>Silkscreen på tantalerna saknas/syns dåligt. Lägg till i footprintet ordentligt.</s><br />
*<s>Det står inte vilken uart/I2C som går till vilken stiftlist. Detta borde märkas ut som RX1/TX1, RX2/TX2 osv. Fixa i nästa revision.</s><br />
*<s>Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.</s><br />
*<s>Benen till mikrokontrollern, h-bryggan och IMU är korta vilket för det svårare att löda. Dessa bör vara längre. Fixa i nästa revision.</s><br />
*<s>Se till att det finns någonstans att sätta en jordklämma för att mäta med oscilloskop.</s><br />
*<s>Footprintet till tachometrarna (REF1 och REF2) är dåligt. Markeringen syns dåligt.</s><br />
*<s>Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision. Problem, går inte att köpa från Mouser. De kan köpas från Elfa. Vi kör på dom med korta ben och ändrar hålet.</s><br><br />
*<s>Ta bort bootloader-kretsen. Eftersom [[stm32flash]] fungerar bra nu med att styra båda pinnarna behövs inte denna. Dra ut boot till programmeringsstiftlisten</s>.<br />
*<s>Fundera ifall motstånden till IR-ledsen behöver vara 10ohm (sternå fick det att funka bra med 100ohm). Kör på 100ohm.</s><br />
*<s>Flytta C35 till innan MOSFETen till Buzzern</s><br />
*<s>Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision</s>.<br />
*<s>Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision. Den sitter mot knapparna (från microcontrollern)</s><br><br />
----</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=920Byggbeskrivning introARM2014-04-16T22:12:42Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
Föruppsatt VM av Ubuntu 12.04 för Virtualbox med byggkedja förinstallerad. Tillgänglig via torrent.<br />
[[File:IntroARM.vdi.torrent.zip]]<br><br />
Användaren i VMen är introarm och lösenordet är crf. Notera även att det är upp till användare att sätta upp guest-extension för att få UBS-delning fungerande. Detta eftersom att det är i stor del beroende på version av Virtualbox och vilket operativsystem som används.<br />
<br />
<br />
stm32flash under Linux:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]] finns även på Devilholks githubsida.<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]<br />
<br />
För bägge gäller följande:<br><br />
1. Zippa upp<br><br />
2. Ställ dig i den upzippade mappen i terminalen<br><br />
3. Skriv "make" i terminalen<br><br />
4. Skriv "sudo make install" i terminalen<br><br />
5. Ange lösenord<br><br />
<br />
<br />
För att ladda upp med v3:<br />
<br />
Kortslut DTR kondensatorn på USB UART-kretsen genom att löda bort den och löda över den. <br />
Anslut RTS till pinne 5, kolla noga vilken som är RTS på USB-UART kretarna, vissa är dåligt märkta.<br />
Anslut DTR till pinne 4<br />
Kör sedan följande kommando i terminalen:<br />
<br />
sudo stm32flash -b115200 -Rcs.rts -Bcs.dtr -w'''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.<br />
<br />
<br />
<br />
För att ladda upp med v2<br />
<br />
Anslut RTS till pinne 4, kolla noga vilken som är RTS på USB-UART kretarna, vissa är dåligt märkta.<br />
Kör sedan följande kommando i ternminalen:<br />
<br />
sudo stm32flashv2 -tw '''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=919Byggbeskrivning introARM2014-04-15T17:29:18Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
Föruppsatt VM av Ubuntu 12.04 för Virtualbox med byggkedja förinstallerad. Tillgänglig via torrent.<br />
[[File:IntroARM.vdi.torrent.zip]]<br><br />
Användaren i VMen är introarm och lösenordet är crf. Notera även att det är upp till användare att sätta upp guest-extension för att få UBS-delning fungerande. Detta eftersom att det är i stor del beroende på version av Virtualbox och vilket operativsystem som används.<br />
<br />
<br />
stm32flash under Linux:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]] finns även på Devilholks githubsida.<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]<br />
<br />
För bägge gäller följande:<br><br />
1. Zippa upp<br><br />
2. Ställ dig i den upzippade mappen i terminalen<br><br />
3. Skriv "make" i terminalen<br><br />
4. Skriv "sudo make install" i terminalen<br><br />
5. Ange lösenord<br><br />
<br />
<br />
För att ladda upp med v3:<br />
<br />
Kortslut DTR kondensatorn på USB UART-kretsen genom att löda bort den och löda över den. <br />
Anslut RST till pinne 5<br />
Anslut DTR till pinne 4<br />
Kör sedan följande kommando i terminalen:<br />
<br />
sudo stm32flash -b115200 -Rcs.rts -Bcs.dtr -w'''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.<br />
<br />
<br />
<br />
För att ladda upp med v2<br />
<br />
Anslut RST till pinne 4<br />
Kör sedan följande kommando i ternminalen:<br />
<br />
sudo stm32flashv2 -t '''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=918Byggbeskrivning introARM2014-04-15T17:06:47Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
Föruppsatt VM av Ubuntu 12.04 för Virtualbox med byggkedja förinstallerad. Tillgänglig via torrent.<br />
[[File:IntroARM.vdi.torrent.zip]]<br><br />
<br />
<br />
stm32flash under Linux:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]] finns även på Devilholks githubsida.<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]<br />
<br />
För bägge gäller följande:<br><br />
1. Zippa upp<br><br />
2. Ställ dig i den upzippade mappen i terminalen<br><br />
3. Skriv "make" i terminalen<br><br />
4. Skriv "sudo make install" i terminalen<br><br />
5. Ange lösenord<br><br />
<br />
<br />
För att ladda upp med v3:<br />
<br />
Kortslut DTR kondensatorn på USB UART-kretsen genom att löda bort den och löda över den. <br />
Anslut RST till pinne 5<br />
Anslut DTR till pinne 4<br />
Kör sedan följande kommando i terminalen:<br />
<br />
sudo stm32flash -b115200 -Rcs.rts -Bcs.dtr -w'''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.<br />
<br />
<br />
<br />
För att ladda upp med v2<br />
<br />
Anslut RST till pinne 4<br />
Kör sedan följande kommando i ternminalen:<br />
<br />
sudo stm32flashv2 -t '''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:IntroARM.vdi.torrent.zip&diff=917File:IntroARM.vdi.torrent.zip2014-04-15T17:04:53Z<p>Pkalden: </p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=916Byggbeskrivning introARM2014-04-14T20:30:45Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
stm32flash under Linux:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]] finns även på Devilholks githubsida.<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]<br />
<br />
För bägge gäller följande:<br><br />
1. Zippa upp<br><br />
2. Ställ dig i den upzippade mappen i terminalen<br><br />
3. Skriv "make" i terminalen<br><br />
4. Skriv "sudo make install" i terminalen<br><br />
5. Ange lösenord<br><br />
<br />
<br />
För att ladda upp med v3:<br />
<br />
Kortslut DTR kondensatorn på USB UART-kretsen genom att löda bort den och löda över den. <br />
Anslut RST till pinne 5<br />
Anslut DTR till pinne 4<br />
Kör sedan följande kommando i terminalen:<br />
<br />
sudo stm32flash -b115200 -Rcs.rts -Bcs.dtr -w'''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.<br />
<br />
<br />
<br />
För att ladda upp med v2<br />
<br />
Anslut RST till pinne 4<br />
Kör sedan följande kommando i ternminalen:<br />
<br />
sudo stm32flashv2 -t '''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=915Byggbeskrivning introARM2014-04-14T20:29:50Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
stm32flash under Linux:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]]<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]<br />
<br />
För bägge gäller följande:<br />
1. Zippa upp<br><br />
2. Ställ dig i den upzippade mappen i terminalen<br><br />
3. Skriv "make" i terminalen<br><br />
4. Skriv "sudo make install" i terminalen<br><br />
5. Ange lösenord<br><br />
<br />
<br />
För att ladda upp med v3:<br />
<br />
Kortslut DTR kondensatorn på USB UART-kretsen genom att löda bort den och löda över den. <br />
Anslut RST till pinne 5<br />
Anslut DTR till pinne 4<br />
Kör sedan följande kommando i terminalen:<br />
<br />
sudo stm32flash -b115200 -Rcs.rts -Bcs.dtr -w'''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.<br />
<br />
<br />
<br />
För att ladda upp med v2<br />
<br />
Anslut RST till pinne 4<br />
Kör sedan följande kommando i ternminalen:<br />
<br />
sudo stm32flashv2 -t '''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=914Byggbeskrivning introARM2014-04-14T20:25:23Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
stm32flash under Linux:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]]<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]<br />
<br />
För bägge gäller följande:<br />
1. Zippa upp<br />
2. Ställ dig i den upzippade mappen i terminalen<br />
3. Skriv "make" i terminalen<br />
4. Skriv "sudo make install" i terminalen<br />
5. Ange lösenord<br />
<br />
<br />
För att ladda upp med v3:<br />
<br />
Kortslut DTR kondensatorn på USB UART-kretsen genom att löda bort den och löda över den. <br />
Anslut RST till pinne 5<br />
Anslut DTR till pinne 4<br />
Kör sedan följande kommando i terminalen:<br />
<br />
sudo stm32flash -b115200 -Rcs.rts -Bcs.dtr -w'''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.<br />
<br />
<br />
<br />
För att ladda upp med v2<br />
<br />
Anslut RST till pinne 4<br />
Kör sedan följande kommando i ternminalen:<br />
<br />
sudo stm32flash -t '''introarm.bin''' /dev/ttyUSB0<br />
<br />
Notera att introarm.bin kan variera beroende på vad filen som du vill ladda över heter och var du står i terminalen.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=913Byggbeskrivning introARM2014-04-14T20:06:18Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.<br />
<br />
stm32flash:<br />
Två modifierade versioner av stm32flash:<br />
<br />
Den till v3 är här: [[File:Stm32flash-master.zip]]<br />
<br />
Den till v2 är här: [[File:Stm32flash with RTS-toggle.zip]]</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:Stm32flash_with_RTS-toggle.zip&diff=912File:Stm32flash with RTS-toggle.zip2014-04-14T20:04:18Z<p>Pkalden: Pkalden uploaded a new version of &quot;File:Stm32flash with RTS-toggle.zip&quot;</p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=911Byggbeskrivning introARM2014-04-14T19:54:09Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. Den nyare har dock inget streck, utan en liten plupp (topp) på ena sidan som markerar plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det de röda ledsen som skickas med är felmärkta. Dessa ska sitta "bak-och-fram". Testa gärna ledsen med en multimeter innan du löder på dem.''<br />
<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28-R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil. Programmet testar grundläggande funktioner som motorer, knappar, LEDs, sensorer, UART och buzzer.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:Stm32flash-master.zip&diff=910File:Stm32flash-master.zip2014-04-14T19:52:22Z<p>Pkalden: </p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:Stm32flash_with_RTS-toggle.zip&diff=909File:Stm32flash with RTS-toggle.zip2014-04-14T19:51:37Z<p>Pkalden: </p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:IntroARM_Makefile_Project.zip&diff=908File:IntroARM Makefile Project.zip2014-04-14T19:51:13Z<p>Pkalden: Pkalden uploaded a new version of &quot;File:IntroARM Makefile Project.zip&quot;</p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=905Byggbeskrivning introARM2014-04-01T22:20:46Z<p>Pkalden: /* Kod */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28-R32<br />
|22<br />
|<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
=Kod=<br />
Koden ligger temporärt här:<br />
[[File:IntroARM_kod.zip]]<br><br />
Denna kod innehåller endast de specifika .c- och .h-filer som IntroARM använder sig av. Zip-filen innehåller ett startup-script (.S-filen) som behövs. Programmet bygger på STs standard-bibliotek som inte följer med, men som kan hittas via STs hemsida (Todo: Lägg till en länk där man hittar det). Det finns inte heller med ett länkarscript, som också behövs.<br />
<br />
Mer temporär kod:<br />
[[File:IntroARM Makefile Project.zip]]<br><br />
Är ett komplett projekt med samma kod som ovan men innehåller allt som behövs för att kompilera koden under korrekt uppsatt Eclipse i Ubuntu. Detta innebär bibilotek, länkarskript och makefil.</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:IntroARM_Makefile_Project.zip&diff=904File:IntroARM Makefile Project.zip2014-04-01T22:03:10Z<p>Pkalden: </p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=895Byggbeskrivning introARM2014-03-19T03:56:55Z<p>Pkalden: /* Del 4 - Extrafunktioner */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP4.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=894Byggbeskrivning introARM2014-03-19T03:54:33Z<p>Pkalden: /* Komponentplacering */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. För de blå komponenterna, läs "Att tänka på" för detta segment.<br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=893Byggbeskrivning introARM2014-03-19T03:52:39Z<p>Pkalden: /* Del 3 - Sensorer */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP3.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=892Byggbeskrivning introARM2014-03-19T03:51:30Z<p>Pkalden: /* Komponentplacering */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP2.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=891Byggbeskrivning introARM2014-03-19T03:50:59Z<p>Pkalden: /* Komponentplacering */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>[[File:ComponentMapP1.png|800px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>'''''Todo: Dela upp bilderna eller lägg dom på sidan'''''<br />
<br>[[File:ComponentMapP2.png|200px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:ComponentMapP4.png&diff=890File:ComponentMapP4.png2014-03-19T03:48:48Z<p>Pkalden: </p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:ComponentMapP3.png&diff=889File:ComponentMapP3.png2014-03-19T03:48:30Z<p>Pkalden: </p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:ComponentMapP2.png&diff=888File:ComponentMapP2.png2014-03-19T03:48:10Z<p>Pkalden: Pkalden uploaded a new version of &quot;File:ComponentMapP2.png&quot;</p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=File:ComponentMapP1.png&diff=887File:ComponentMapP1.png2014-03-19T03:47:48Z<p>Pkalden: Pkalden uploaded a new version of &quot;File:ComponentMapP1.png&quot;</p>
<hr />
<div></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=886Byggbeskrivning introARM2014-03-19T03:21:42Z<p>Pkalden: /* Ingående komponenter del 1 */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 8<br />
| C6, C8, C9, C10, C11, C12, C14, C21<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>'''Todo: Dela upp bilden i 2 eller lägg den i bredd'''<br />
<br>[[File:ComponentMapP1.png|200px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>'''''Todo: Dela upp bilderna eller lägg dom på sidan'''''<br />
<br>[[File:ComponentMapP2.png|200px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=885Byggbeskrivning introARM2014-03-19T03:20:45Z<p>Pkalden: /* Komponentlista del 3 */</p>
<hr />
<div>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 [http://chalmersrobotics.se/?page_id=465 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. Titta gärna även igenom listan med förslag på förbättringar innan du börjar. Den finns [[IntroARM#F.C3.B6rb.C3.A4ttringsf.C3.B6rslag_till_version_3 | här.]]<br />
<br />
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:<br />
* Lite allmän information om steget (t.ex. vad som ska uppnås efter steget)<br />
* En lista över de komponenter som ingår i steget<br />
* 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.<br />
* 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. <br />
* Vanliga fel, som innehåller lite vanliga fel som brukar uppkomma (typiska symptom och åtgärder)<br><br />
<br />
=Förberedelser=<br />
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:<br />
<br />
{| class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Mikrokontroller<br />
|511-STM32F100C8T6B <br />
|U2<br />
|1<br />
|Förmonterad<br />
|-<br />
|H-brygga, DRV8833<br />
|595-DRV8833PWPR<br />
|U3<br />
|1<br />
|Förmonterad<br />
|-<br />
|Switchregulator (3.3V)<br />
|595-TPS62056DGS <br />
|U1<br />
|1<br />
|Förmonterad<br />
|-<br />
|IMU<br />
|MPU6050<br />
|U4<br />
|1<br />
|Förmonterad<br />
|-<br />
|Knappar, små<br />
|688-SKHRAB <br />
|SW1-SW3<br />
|3<br />
|<br />
|-<br />
|Tantal, 100uF, 10V<br />
|581-TPSB107M010R0400 <br />
|C7,C15,C39<br />
|3<br />
|<br />
|-<br />
|Stor keram 10uF<br />
|963-TMK316BJ106KLHT <br />
|C2-C5,C13,C19-C20,C27-C30,C37-C38,C40<br />
|14<br />
|<br />
|-<br />
|Liten Keram 100nF<br />
|77-VJ1206Y104KXXPBC<br />
|C1,C6,C8-C12,C14,C18,C21-C26,C31-C36<br />
|21<br />
|<br />
|-<br />
|Lastkapacitans Kristall 18pF<br />
|77-VJ1206A180JXXPBC<br />
|C16-C17<br />
|2<br />
|<br />
|-<br />
|10k resistor<br />
|660-RK73B2BTTD103J <br />
|R6, R11, R13, R15, R17, R19-R20, R27<br />
|8<br />
|<br />
|-<br />
|3k3 resistor<br />
|660-RK73B2BTTDD332J <br />
|R1-R5,R7-R9,R21,R33-R37<br />
|7<br />
|<br />
|-<br />
|100R resistor<br />
|660-RK73B2BTTD101J <br />
|R1-R5,R7,R8, R10,R12,R14,R16,R18,R22-R26,R28<br />
|18<br />
|<br />
|-<br />
|10R<br />
|660-RK73B2BTTDD100J <br />
|R29-R32<br />
|4<br />
|<br />
|-<br />
|IR-LED<br />
|78-TSUS5400 <br />
|LED8-LED11<br />
|4<br />
|<br />
|-<br />
|IR-mottagare<br />
|782-TSOP38238 <br />
|IRMOT1-IRMOT5<br />
|5<br />
|<br />
|-<br />
|Mostfet (P-kanal)<br />
|771-PMV65XP-T/R<br />
|Q1-Q5<br />
|5<br />
|<br />
|-<br />
|LED Grön<br />
|720-LGN971-KN-1<br />
|LED1-LED2,LED4,LED6<br />
|4<br />
|<br />
|-<br />
|LED Röd<br />
|720-LYN971-HL-1<br />
|LED3,LED5,LED7<br />
|3<br />
|<br />
|-<br />
|Induktor (switchregulator)<br />
|963-NRS5020T100MMGJ <br />
|L1<br />
|1<br />
|<br />
|-<br />
|Reflexdetektor<br />
|638-ITR8307TR8 <br />
|REF1-REF4<br />
|4<br />
|<br />
|-<br />
|Kristall 8 MHz<br />
|815-ABL-8-B2<br />
|X1<br />
|1<br />
|<br />
|-<br />
|5V-regulator (1117-5)<br />
|863-NCP1117ST50T3G <br />
|U6<br />
|1<br />
|<br />
|-<br />
|Diod<br />
|652-CD214A-B130LF <br />
|D1<br />
|1<br />
|<br />
|-<br />
|Buzzer<br />
|254-PB1440-ROX <br />
|SP1<br />
|1<br />
|<br />
|-<br />
|SD-socket<br />
|688-SCHD3A0100 <br />
|U5<br />
|1<br />
|<br />
|-<br />
|Stiftlister<br />
|Pin headers<br />
|P1, P3-P10<br />
|1<br />
|<br />
|-<br />
|Stiftlister Vinklade<br />
|Pin headers<br />
|P2<br />
|1<br />
|<br />
|-<br />
|Krympslang 8 mm<br />
|<br />
|<br />
|4<br />
|<br />
|-<br />
|PCB<br />
|By CRF<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
Hårdvara som inte ska lödas på kortet<br />
{|class="wikitable"<br />
!Komponent<br />
!Artikelnr<br />
!Referens<br />
!Antal<br />
!Finns med<br />
|-<br />
|Micro metal gear, 100:1 HP<br />
|1101<br />
|<br />
|2<br />
|<br />
|-<br />
|Motorbrackets, par<br />
|1089<br />
|<br />
|1<br />
|<br />
|-<br />
|Hjul, par<br />
|1090<br />
|<br />
|1<br />
|<br />
|-<br />
|CP2102/CP2104<br />
|CP2102<br />
|<br />
|1<br />
|<br />
|-<br />
|Lipo, 2s<br />
|9210000005<br />
|<br />
|1<br />
|<br />
|}<br />
<br />
==Bilder på komponenter==<br />
<br />
[[File:Alla_komponenter.jpeg|Thumb|600px|Test|]]<br><br />
Bild över alla komponenter som ingår. Tyvärr syns inte vilka motstånd eller kondingar som är vilka.<br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Capacitor_100n.jpg|Konding, 100nF. Gula och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_10u.jpg|Konding, 10uF. Bruna och tjockare. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_18p.jpg|Konding, 18pF. Gråa och tunna. Saknar polaritet.<br />
File:IntroARM2012_Component_-_Capacitor_tantal.jpg|Tantalkonding, 100uF. Orange med ett brunt streck. Polkänslig där strecket är plus. ''Todo: uppdatera med nya komponenten.''<br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_Resistor_100.jpg|Motstånd, 10ohm. Det står 100 på det, vilket innebär 10*10<sup>0</sup><br />
File:IntroARM2012_Component_-_Resistor_101.jpg|Motstånd, 100ohm. Det står 101 på det, vilket innebär 10*10<sup>1</sup><br />
File:IntroARM2012_Component_-_Resistor_103.jpg|Motstånd, 10kohm. Det står 103 på det, vilket innebär 10*10<sup>3</sup><br />
File:IntroARM2012_Component_-_Resistor_332.jpg|Motstånd, 3k3ohm. Det står 332 på det, vilket innebär 33*10<sup>2</sup><br />
</gallery><br />
<br />
<gallery heights=75px><br />
File:IntroARM2012_Component_-_LED.jpg|Lysdiod. Den gröna markeringen visar vart katoden (negativa sidan) är. Den gröna markeringen pekar på katoden. ''Notera att det FINNS LEDs som är felmärkta. Ifall de av någon anledning inte lyser när de testas, vänd på dem och testa igen. Funkar det då, uttala svordomar.''<br />
File:IntroARM2012_Component_-_Diod.jpg|Schottkydiod. Markeringen som syns dåligt till höger markerar katoden (negativa sidan).<br />
</gallery><br />
<br />
==Utrustning==<br />
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.<br />
===Nödvändig utrustning===<br />
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)<br />
* Dator med en ledig usb-port samt programvara för att programmera STM32<br />
* Lödstation<br />
* Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
* Pincett<br />
* Avbitartång<br />
* Liten kryssmejsel<br />
===Bra-och-ha-utrustning===<br />
Denna utrustning är inte nödvändig att ha, men underlättar en del i ditt byggande.<br />
* Flussmedel förenklar lödningen, men inte helt nödvändigt. Det är mer viktigt att ha ifall man är nybörjare.<br />
* Värmepistol, Varmluftsstation eller Cigarettändare (för krympslangen)<br />
* Någonting att hålla fast kretskortet med under lödningen<br />
* Multimeter rekommenderas till felsökning<br />
* Ett spänningsaggregat med strömbegränsning<br />
<br />
==LiPo-batteriet==<br />
''Detta borde vara en egen artikel. Den ligger här tills vidare.''<br><br />
Till din IntroARM har du fått ett s.k. [http://en.wikipedia.org/wiki/Lithium_polymer_battery LiPo-batteri] (Lithium-Polymer). Dessa batterier är vida använda av hobbyister för sin prestanda, men medför vissa risker:<br />
* Lipot har väldigt hög energitäthet. Detta innebär att, trots sin låga vikt innehåller mycket energi. Lipot kan också släppa ifrån sig denna energi mycket snabbt.<br />
* Lipot är ömtåligt, så var försiktig när du hanterar det (du behöver inte vara överdrivet försiktig). Stick aldrig vassa skaer i lipot, undvik att tappa det och elda inte på det. Om det blir varmt, koppla ur det.<br />
* Spänningen får inte gå för låg. Detta lipo har två celler i serie. Varje cell har en maxspänning på 4.2V och en "nominell" spänning på 3.7V. Detta medför att total spänningen över lipot är 8.4V som max och 7.4V nominellt. Exakt vilken cellspänning som är dålig för lipot är lite oklart, men se till att spänningen aldrig understiger 3.0V per cell (för 2 i serie blir det som väntat 6.0V).<br />
* Används endast en lipoladdare. Lipo-batterier måste laddas på ett speciellt sätt, annars kan dom ta skada (ofta i form av försämrad kapacitet, men kan det kan även gå värre). Använd endast en laddare avsedd för lipon, och ladda inte med för mycket ström. Alla lipos går att ladda med en upp till ström motsvarande 1C. 1C motsvarar lipots kapacitet i ström, d.v.s. om ett lipo har kapaciteten 1000mAh, så är 1C=1000mA=1A. På samma sätt är 2C=2A för detta lipo.<br />
* Lipot säger inte nej. Ifall lipot kopplas in på någonting som vill ha väldigt mycket ström (t.ex. om det är en korslutning) kommer lipot inte begränsa strömmen. Detta kan medföra att nånting går sönder (typiskt börjar ryka). Lipot kan dock inte ge hur mycket ström som helst. Vanligen står det en kontinuerlig maxurladdning och en kortvarig (burst) maxurladdning uttryckt i C på batteriet. Typiska värden är 15C kont och 25C burst (man skriver ofta 15-25C) för lågspec-lipos. Bra lipos kan ha rating upp till 70-130C. Burst brukar man säga är "några sekunder".<br />
<br />
=Del 1 - Spänningsmatning och Microcontroller=<br />
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.<br />
<br />
==Ingående komponenter del 1==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11, R20<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9, R21<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>'''Todo: Dela upp bilden i 2 eller lägg den i bredd'''<br />
<br>[[File:ComponentMapP1.png|200px]]<br><br />
<br />
==Att tänka på==<br />
* 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.<br />
*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.<br />
*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.<br />
*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.<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
Notera: Bootkretsen är planerad att tas bort till revision 3. För revision 2 på kretskortet kan följande procedur användas för att skippa bootkretsen:<br />
* Löd inte C15, R10 och Q3<br />
* 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)<br />
* Löd ett kontaktstift (stiftlist) till +-polen på C15 eller den R10-padden som är närmast motorerna.<br />
* Pinnen som kallas för boot är kopplad mot reset och den extrapinnen du lödade är kopplad mot boot0.<br />
<br />
==Testning==<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
Du kan testa några program som gör följande:<br />
*Tänder LEDs<br />
*Tänder/släcker LEDs baserat på tid (delay)<br />
*Tänder slöcker LEDs baserat på knappar<br />
*Visar batteriets laddning (ADC)<br />
<br />
=Del 2 - Motorer=<br />
I detta steg kommer roboten att börja röra på sig. Motordrivaren översätter microcontrollers svaga signaler till starka signaler som orkar 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.<br />
==Komponentlista del 2==<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
===Komponentplacering===<br />
Här visas vart komponenterna i del 1 sitter på kortet (de rödmarkerade). De gråa komponenterna ska vara monterade innan detta steg. Separat bild för undersidan och ovansidan. <br />
<br>'''''Todo: Dela upp bilderna eller lägg dom på sidan'''''<br />
<br>[[File:ComponentMapP2.png|200px]]<br><br />
<br />
==Att tänka på==<br />
* Montera de små komponenterna först och vänta med motorerna och motorfästena till sist.<br />
* För att sätta fast motorerna elektriskt, böj ut stiftlisterna P3 och P4 till motorkontakterna och löd fast dem.<br />
* 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.<br />
<br />
==Testning==<br />
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:<br />
* 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:<br />
<syntaxhighlight lang="C"><br />
init_stuff(); //Do normal init routines<br />
while(!SW1){} //Wait for input switch 1 to be true<br />
run_motors(); //Start your engines!<br />
</syntaxhighlight><br />
* Palla upp roboten så att den är fysiskt förhindrar att åka iväg (t.ex. på en tejprulle, liten mugg eller liknande)<br />
<br />
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.<br />
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.<br />
<br />
=Del 3 - Sensorer=<br />
Här kan roboten börja ta intryck av omgivningen. Det finns ett par olika sensorer:<br />
* 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.<br />
* 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.<br />
* 1 st [http://en.wikipedia.org/wiki/Inertial_measurement_unit IMU (Inertial Measurement Unit)] - En krets som innehåller en 3-axlig accelerometer och ett 3-axligt gyro. Kan användas om man vill balansera roboten.<br />
* 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. <br />
==Komponentlista del 3==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 9<br />
| C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
==Att tänka på==<br />
* 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. Detta beror såklart på hur du tänkte bygga chassit till din robot (det är inte nödvändigtvis fel att löda de ända ner på kortet så länge lysdioderna kan böjas framåt).<br />
* 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).<br />
* 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).<br />
* 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.<br />
<br />
==Testning==<br />
* Ett program som läser av framåtsensorerna och rapporterar på LEDs.<br />
* Ett program som skriver ut kantsensorererna på uarten samt tänder en LED vid en viss nivå.<br />
<br />
==Att skärma av framåtsensorerna==<br />
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:<br />
===IR-LEDs===<br />
* Böj de lite så att LEDsen pekar framåt<br />
* Ta den mindre av krympslangen "SÄTT IN STORLEK HÄR" klipp en liten reva i den<br />
* Trä den över LEDsen så att revan du klippte går över benen.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
* Ta en pincett och vik ihop den på baksidan av lysdioden (de läcker mycket ljus bakåt).<br />
* Vid behov, tejpa på baksidan lysdioden, gärna svart eltejp.<br />
===IR-mottagarna===<br />
* Ta den större krympslangen och klipp en reva i den (lite större än för LEDsen)<br />
* Trä den över mottagaren med revan nedåt, över benen. Låt det vara kvar en del framför mottagaren.<br />
* Krymp krympslangen (helst med varmuluft) på inte alltför hög temperetaur (100-150C)<br />
===Trimma===<br />
* Kör testprogrammet som visar sensorernas status på LEDsen.<br />
* Lägg roboten på en ganska öppen yta (gärna en sumoplan inklusive säkerhetsmarginal)<br />
* Ställ någon liten låda framför roboten och se vad den ser<br />
* Ifall den ser för dåligt, klipp av små bitar av krympslangen. Klipp först på mottagarna och i andra hand på LEDsen.<br />
<br />
=Del 4 - Extrafunktioner=<br />
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:<br />
* 5V-regulator - Försörjer 5V till ev andra extra funktioner som du sätter dit själv (t.ex. extra sensorer)<br />
* 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.<br />
* 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.<br />
==Komponentlista del 4==<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
|5V-regulator (1117-5)<br />
|U6<br />
|1<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Motstånd 3k3<br />
| 1<br />
| R33<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
==Att tänka på==<br />
* SD-sockeln kan vara lite lurig att löda. Den löds enklast genom sockeln med viss försiktighet.<br />
==Testning==<br />
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.<br />
<br />
=Del 5 - Extra interface=<br />
Kontakter för de extra interface som finns utdraget på IntroARM (t.ex. extra UART, SPI, I2C, DAC, ADC)<br />
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.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Motstånd 3k3<br />
| 2<br />
| R36, R37<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
=Kopplingsschema=<br />
[[File:IntroARM2012v2.pdf]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=884IntroARM2014-03-14T22:23:44Z<p>Pkalden: /* Förbättringsförslag till version 3 */</p>
<hr />
<div>IntroARM2012 är den senaste byggsatsen i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kit:en som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet. Det är dessutom enklare att göra om ifall man råkar göra fel.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med [http://en.wikipedia.org/wiki/ARM_Cortex-M ARM Cortex-M3-kärna] från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
=Features=<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
==Elektronik==<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar (hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
==Mekanik==<br />
* 2 Pololu Micro Metal Gear motor HP (100:1 som standard)<br />
* 2 Motorfästen som monteras direkt på kretskortet<br />
* 2 Hjul med tachometertänder<br />
* Ett flertal fästpunker att skruva fast ett egenbyggt chassi i<br />
<br />
=[[Förberedelse programmering STM32]]=<br />
Ordförande Mikael Tulldahl har satts på att göra en allomfattande guide för nybörjare som tar dig igenom [[Förberedelse programmering STM32 | alla moment för att komma igång med programmering]].<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux (kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
I annat fall är google din vän. Googla på t.ex. Setting up STM32 for (och så det OS du använder). Du kan även slänga med din favoritutvecklingsmiljö (Eclipse) i söksträngen.<br />
<br />
=[[Byggbeskrivning introARM]]=<br />
[[Byggbeskrivning introARM]] går igenom hur du sätter ihop din IntroARM. Innehåller t.ex. vilka komponenter som ska sitta vart, lite textmöjligheter osv.<br />
<br />
=[[Programmering STM32]]=<br />
[[Programmering STM32]] går igenom hur man utvecklar programvara för STM32. Den innehåller information om drivrutiner till peripherals och STs biblioteik (stdperiph). Denna sida handlar inte hur man sätter upp utvecklingsmiljöer. Det görs i [[Förberedelse programmering STM32]].<br />
<br />
=Förbättringsförslag till version 3=<br />
Nuvarande version: V2<br />
*Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
*Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
*Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision. Den sitter mot knapparna (från microcontrollern)<br><br />
*Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision. Problem, går inte att köpa från Mouser. De kan köpas från Elfa<br><br />
*Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
*Benen till mikrokontrollern, h-bryggan och IMU är korta vilket för det svårare att löda. Dessa bör vara längre. Fixa i nästa revision.<br />
*Det står inte vilken uart/I2C som går till vilken stiftlist. Detta borde märkas ut som RX1/TX1, RX2/TX2 osv. Fixa i nästa revision.<br />
*Ta bort bootloader-kretsen. Eftersom [[stm32flash]] fungerar bra nu med att styra båda pinnarna behövs inte denna. Dra ut boot till programmeringsstiftlisten.<br />
*Se till att det finns någonstans att sätta en jordklämma för att mäta med oscilloskop.<br />
*Footprintet till tachometrarna (REF1 och REF2) är dåligt. Markeringen syns dåligt.<br />
*Fundera ifall motstånden till IR-ledsen behöver vara 10ohm (sternå fick det att funka bra med 100ohm)<br />
*Flytta C35 till innan MOSFETen till Buzzern<br />
----</div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=503Byggbeskrivning introARM2013-11-26T22:36:05Z<p>Pkalden: /* Komponentlista del 4 */</p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R21, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21, R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21, C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37, C38, C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35, C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
=Del 5=<br />
<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kommer att vara ivägen för batteriet. Vid normalt användande behövs de ej.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=502Byggbeskrivning introARM2013-11-26T22:35:47Z<p>Pkalden: /* Komponentlista del 3 */</p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17, R19, R21, R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21, R34, R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16, R18, R22, R23, R24, R25, R26, R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29, R30, R31, R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27, C28, C29, C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21, C22, C23, C24, C25, C26, C31, C32, C33, C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1, IRMOT2, IRMOT3, IRMOT4, IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3, REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37,C38,C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35,C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
=Del 5=<br />
<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kommer att vara ivägen för batteriet. Vid normalt användande behövs de ej.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=501Byggbeskrivning introARM2013-11-26T22:34:22Z<p>Pkalden: /* Del 2 */</p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15, R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12, R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1, REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19, C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37,C38,C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35,C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
=Del 5=<br />
<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kommer att vara ivägen för batteriet. Vid normalt användande behövs de ej.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=500Byggbeskrivning introARM2013-11-26T22:33:44Z<p>Pkalden: /* Del 2 */</p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P3, P4<br />
|}<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37,C38,C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35,C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
=Del 5=<br />
<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kommer att vara ivägen för batteriet. Vid normalt användande behövs de ej.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=499Byggbeskrivning introARM2013-11-26T22:33:08Z<p>Pkalden: /* Del 5 */</p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37,C38,C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35,C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
=Del 5=<br />
<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de kommer att vara ivägen för batteriet. Vid normalt användande behövs de ej.<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=498Byggbeskrivning introARM2013-11-26T22:31:38Z<p>Pkalden: </p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1, C7, C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mosfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlist (1x2)<br />
| 1<br />
| P1<br />
|-<br />
| Stiftlist vinklad (1x4)<br />
| 1<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang X mm<br />
| 4<br />
| <br />
|}<br />
<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Buzzer<br />
| 1<br />
| SP1<br />
|-<br />
| Mosfet (P-kanal)<br />
| 1<br />
| Q5<br />
|-<br />
| Stor keram 10uF<br />
| 3<br />
| C37,C38,C40<br />
|-<br />
| Liten Keram 100nF<br />
| 2<br />
| C35,C36<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 1<br />
| C39<br />
|-<br />
| SD-sockel<br />
| 1<br />
| U5<br />
|}<br />
<br />
=Del 5=<br />
<br />
VIKTIGT! Montera enbart dessa stiftlister vid behov, de är ivägen för batteriet generellt<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Stiftlist (1x2)<br />
| 2<br />
| P5, P6<br />
|-<br />
| Stiftlist (1x4)<br />
| 1<br />
| P7<br />
|-<br />
| Stiftlist (1x5)<br />
| 2<br />
| P8, P9<br />
|-<br />
| Stiftlist (1x8)<br />
| 1<br />
| P10<br />
|}<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=497Byggbeskrivning introARM2013-11-26T22:23:41Z<p>Pkalden: </p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet(P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang Xmm<br />
| 4<br />
| <br />
|}<br />
<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
<br />
=Del 5=<br />
<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=496Byggbeskrivning introARM2013-11-26T22:22:29Z<p>Pkalden: </p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 3===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet(P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang Xmm<br />
| 4<br />
| <br />
|-<br />
}<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
<br />
=Del 5=<br />
<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=Byggbeskrivning_introARM&diff=495Byggbeskrivning introARM2013-11-26T22:21:25Z<p>Pkalden: </p>
<hr />
<div>Den här bygg-guiden till [[IntroARM]] är uppdelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
=Förberedelser Montering=<br />
<br />
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.<br />
<br />
==Nödvändig utrustning==<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (Använd blyat lödtenn, då blyfritt är hälsofarligt)<br />
*Flussmedel är rekommenderat, men inte helt nödvändigt<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol, Varmluftsstation, Ciggaretttändare eller Lödstationen (för krympslangen)<br />
*Liten kryssmejsel<br />
*Någonting att hålla fast kretskortet med under lödningen<br />
*Multimeter rekommenderas till felsökning<br />
<br />
=Del 1=<br />
<br />
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. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br>''TODO: Infoga bilder''<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket.<br />
<br>''TODO: Infoga bilder''<br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br>''TODO: Infoga bilder''<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF-kondensatorerna är gula och saknar polaritet<br><br />
10uF-kondensatorerna är bruna och saknar polaritet<br><br />
18pF-kondensatorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms-motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms-motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms-motstånden kan kännas igen på att det står 332 på dem(detta står för 33*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
<br />
===Testning===<br />
När alla komponenter ovan är monterade är det dags att testa. Rekommenderat är följande procedur:<br />
* 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).<br />
* 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<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
=Del 2=<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
<br />
=Del 3=<br />
<br />
===Komponentlista del 2===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| IMU<br />
| 1 (färdigmonterad)<br />
| U4<br />
|-<br />
| 10k resistor<br />
| 4<br />
| R17,R19,R21,R27<br />
|-<br />
| 3k3 resistor<br />
| 3<br />
| R21,R34,R35<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R16,R18,R22,R23,R24,R25,R26,R28<br />
|-<br />
| 22R resistor<br />
| 4<br />
| R29,R30,R31,R32<br />
|-<br />
| Stor keram 10uF<br />
| 4<br />
| C27,C28,C29,C30<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C21,C22,C23,C24,C25,C26,C31,C32,C33,C34<br />
|-<br />
| IR-mottagare<br />
| 4<br />
| IRMOT1,IRMOT2,IRMOT3,IRMOT4,IRMOT5<br />
|-<br />
| IR-LED<br />
| 4<br />
| LED8, LED9, LED10, LED11<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF3,REF4<br />
|-<br />
| Mosfet(P-kanal)<br />
| 1<br />
| Q4<br />
|-<br />
| Krympslang Xmm<br />
| 4<br />
| <br />
|-<br />
}<br />
<br />
=Del 4=<br />
<br />
===Komponentlista del 4===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
<br />
=Del 5=<br />
<br />
===Komponentlista del 5===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=287IntroARM2013-10-30T19:53:28Z<p>Pkalden: /* Del 1 Montering */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
Rekomenderat ä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.<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. 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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*Kristall<br />
<br />
100nF kapacitorerna är gula och saknar polaritet<br><br />
10uF kapacitorerna är bruna och saknar polaritet<br><br />
18pF kapacitorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=286IntroARM2013-10-30T19:52:59Z<p>Pkalden: /* Del 1 Montering */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
Rekomenderat ä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.<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. 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 med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
100nF kapacitorerna är gula och saknar polaritet<br><br />
10uF kapacitorerna är bruna och saknar polaritet<br><br />
18pF kapacitorerna är gråa och saknar polaritet<br><br />
<br />
10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br><br />
100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br><br />
3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br><br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=285IntroARM2013-10-30T18:38:39Z<p>Pkalden: </p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
Rekomenderat ä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.<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. På undersidan av leden så varierar det hur det är markerat, men generellt så är det en görn pil mot katoden eller ett streck med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
*100nF kapacitorerna är gula och saknar polaritet<br />
*10uF kapacitorerna är bruna och saknar polaritet<br />
*18pF kapacitorerna är gråa och saknar polaritet<br />
<br />
*10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br />
*100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br />
*3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br />
<br />
===Komponentlista del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=284IntroARM2013-10-30T18:36:28Z<p>Pkalden: /* Del 1 */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
Rekomenderat ä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.<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. På undersidan av leden så varierar det hur det är markerat, men generellt så är det en görn pil mot katoden eller ett streck med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
*100nF kapacitorerna är gula och saknar polaritet<br />
*10uF kapacitorerna är bruna och saknar polaritet<br />
*18pF kapacitorerna är gråa och saknar polaritet<br />
<br />
*10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br />
*100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br />
*3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
===Del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=283IntroARM2013-10-30T18:36:16Z<p>Pkalden: /* Del 1 Montering */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
Rekomenderat ä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.<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
==Del 1 Montering==<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. På undersidan av leden så varierar det hur det är markerat, men generellt så är det en görn pil mot katoden eller ett streck med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
*100nF kapacitorerna är gula och saknar polaritet<br />
*10uF kapacitorerna är bruna och saknar polaritet<br />
*18pF kapacitorerna är gråa och saknar polaritet<br />
<br />
*10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br />
*100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br />
*3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
===Del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=282IntroARM2013-10-30T18:35:50Z<p>Pkalden: /* Förberedlerser Montering */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
Rekomenderat ä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.<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
==Del 1 Montering==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. På undersidan av leden så varierar det hur det är markerat, men generellt så är det en görn pil mot katoden eller ett streck med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
*100nF kapacitorerna är gula och saknar polaritet<br />
*10uF kapacitorerna är bruna och saknar polaritet<br />
*18pF kapacitorerna är gråa och saknar polaritet<br />
<br />
*10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br />
*100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br />
*3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
===Del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=281IntroARM2013-10-30T18:35:25Z<p>Pkalden: /* Nödvändig utrustning */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
====Nödvändig utrustning====<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
==Del 1 Montering==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. På undersidan av leden så varierar det hur det är markerat, men generellt så är det en görn pil mot katoden eller ett streck med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
*100nF kapacitorerna är gula och saknar polaritet<br />
*10uF kapacitorerna är bruna och saknar polaritet<br />
*18pF kapacitorerna är gråa och saknar polaritet<br />
<br />
*10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br />
*100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br />
*3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
===Del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkaldenhttps://wiki.chalmersrobotics.se/w/index.php?title=IntroARM&diff=280IntroARM2013-10-30T18:34:52Z<p>Pkalden: /* Monteringsförberedelser */</p>
<hr />
<div>IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Den är utvecklad med ytmonterade komponenter och har en mycket kraftfull processor.<br />
<br />
=Introduktion=<br />
IntroARM2012 är det senaste kittet i Chalmers robotförenings serie av utbildningskit. Till skillnad från de tidigare kitten som har varit designade med enbart [http://en.wikipedia.org/wiki/Through-hole_technology hålmonterade komponenter](komponenter med långa komponentben som går igenom kretskortet och fästs på andra sidan av det) så är IntroARM2012 designat med huvudsakligen [http://en.wikipedia.org/wiki/Surface-mount_device ytmonterade komponenter]. Detta är mer i led med tiden då utanför då hålmonterade komponenter i stort sett inte längre används utanför prototypdesign för hobbyister. Dessutom är ytmonterade komponenter mindre, billigare och lättare att tillverka kretskort till då det inte behöver borras lika många hål genom kretskortet.<br><br />
Att komponenterna är mindre och inte längre har långa komponentben medför dock att lödningen av kittet blir svårare. Vi har därför valt att förmontera de svåraste komponenterna samt välja större mer nybörjarvänliga komponenter i övrigt. Tanken är att göra användaren mer bekväm med ytmonterade komponenter så att han eller hon inte känner att det är svårare än att arbeta med hålmonterade komponenter. Då det mesta arbete med kretskort på föreningen sker med ytmonterade komponenter så kan även de mer erfarna medlemmarna arbeta med kortet utan att de känner att de tar ett steg bakåt. <br />
<br />
Ytmonterade komponenter ger även en möjlighet att använda en kraftigare, mer modern mikrokontroller som ger användaren mer möjligheter än tidigare. Den nya mikrokontrollern är en 32-bitars mikrokontroller av med ARM Cortex-M3-kärna från ST Microelectronics. Den är en del i en stor serie av ARM-processorer som ST erbjuder som alla kan programmeras på liknande sätt. Serien sträcker sig från svagare mikrokontrollers till bland de kraftigaste på mikrokontroller marknaden.<br><br />
Den mikrokontroller som används i IntroARM är en STM32F100 som är en av de svagare i STs utbud, men fortfarande kraftigare än de tidigare som använts i Introbot. Vidare så erbjuder även ST ett färdigt funktionsbibliotek till som täcker alla lågnivåfunktioner på deras mikrokontrollers och gör det lättare att komma igång och implementera nya saker.<br />
<br />
==Features==<br />
Den kraftigare mikrokontrollern ger också möjlighet att utöka mängden funktioner från de som fanns på Introbot09. De funktioner som finns på IntroARM är:<br />
* [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?referrer=70032480 STM32F100CBTx] med ARM Cortex-M3, 64-128kB Flash, 8kB RAM<br />
* 4 IR-avståndssensorer<br />
* 2 kantsensorer<br />
* Styrning av två motorer<br />
* 4 indikatorLEDs<br />
* 2 användarknappar<br />
* 2 tachometrar(hjulhastighetsmätare)<br />
* SD-kort<br />
* Högtalare<br />
* 3-axlig accelerometer<br />
* 3-axlig gyrometer<br />
* Batterimätning<br />
<br />
=Kända buggar=<br />
Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.<br><br />
Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.<br><br />
Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision.<br><br />
Kantdetektorerna har för korta ben för hålen, det finns kantdetektorer med längre ben, använd dem. Fixa till nästa revision.<br><br />
Ingen plusmarkering för IR dioderna, det korta benet skall vara mot GND. GND kan identifieras genom att det är ett stort plan på kretskortet istället för en enkel ledare till lödpadden. Fixa till nästa revision.<br />
----<br />
<br />
= Byggbeskrivning =<br />
<br />
Den här guiden är updelad i delar, varje del kommer innehålla två moment, ett lödning- och byggmoment samt ett programeringsmoment. <br />
<br />
Byggmomentet involverar framförallt lödning men även lite skruvande och pressande. Vidare så ger kittet endast den elektriska och mekanska grunden och sedan är det upp till dig att lägga till din personliga finish. <br />
<br />
Programmeringen under konstruktionen involverar framförallt att ladda upp ett färdigt program till microkontrollern som möjliggör testning av de komponenter som monterades i det tillhörande lödningsmomentet. Men vi ser gärna att ni lär er en liten del programmering i varje steg och kommer därför försöka förbereda några enkla övningar och länka till lämpliga läroresurser. Annars kan det lätt bli för mycket att ta in när du väl börjar programmera.<br />
<br />
==Förberedlerser==<br />
<br />
===Sätt upp programeringsmiljön===<br />
<br />
Då många av de aktiva på robotföreningen använder linux som primärt operativsystem när vi programmerar så är det lättare för oss att underhålla en linuxbaserad lösning än en windowsbaserad lösning. Därför rekomenderar vi om ni inte använder linux i nuläget att ni antigen dualbootar ert existerande operativsystem med en linuxpartition eller använder en virtuell maskin i ert existerande operativsystemet som kör linux(kräver lite bättre dator då det innebär att köra två operativsystem samtidigt). Vi kommer att ge instruktioner för hur ni sätter upp den virtuella maskinen här i denna guide och även ge en färdigkonfigurerad virtuell linux installation. Hur man sätter upp en dualboot finns det mycket instruktioner om hur man göra på andra ställen, bara att googla. (Kanske hitta guider för bägge och länka till dem?)<br />
<br />
<br />
===Förberedlerser Montering===<br />
<br />
===Nödvändig utrustning===<br />
*Dator med en ledig usb-port<br />
*Lödstation<br />
*Lödtenn (60% Tenn, 40% Bly)<br />
*Pincett<br />
*Avbitartång<br />
*Värmepistol eller Varmluftsstation eller Ciggaretttändare eller Lödstationen<br />
*Liten kryssmejsel<br />
<br />
*Multimeter rekommenderas till felsökning<br />
<br />
==Del 1==<br />
<br />
==Del 1 Montering==<br />
<br />
Del 1 är framförallt microkontrollerns kringkomponenter, kraftförsörjning och grundläggande funktioner som indikatorleds och användarknappar. Här ingår även den krets som styr bootloadern. De komponenter som behövs till denna del kan ses i tabell 1 nedan.<br />
<br />
<br />
<br />
Viktiga saker att tänka på när du löder detta moment är följande:<br />
LED1, LED2, LED3, LED4, LED5, LED6, 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. På undersidan av leden så varierar det hur det är markerat, men generellt så är det en görn pil mot katoden eller ett streck med en klump på katodsidan. Katoden är markerat med ett dubbelsträck på komponentavtrycket på kretskortet.<br />
<br />
D1 är en vanlig diod och har även den polaritet, katodsidansidan är i detta fall markerad med ett svagt grått streck på ovansidan. Denna markering skall matchas mot dubbelstreket i komponentavtrycket. <br />
<br />
C1, C7 och C15 är tantalkapacitatorer och även dessa har polaritet. Komponenterna skall monteras med det bruna strecket mot det breda stecket utanför komponentens avtryck.<br />
<br />
Hålmonterade:<br />
*Stiftlister<br />
*Knappar<br />
*kristall<br />
<br />
*100nF kapacitorerna är gula och saknar polaritet<br />
*10uF kapacitorerna är bruna och saknar polaritet<br />
*18pF kapacitorerna är gråa och saknar polaritet<br />
<br />
*10kOhms motstånden kan kännas igen på att det står 103 på dem(detta står för 10*10³)<br />
*100Ohms motstånden kan kännas igen på att det står 101 på dem(detta står för 10*10¹)<br />
*3k3Ohms motstånden kan kännas igen på att det står 302 på dem(detta står för 30*10²)<br />
<br />
==Komponentlista==<br />
[[File:Dellistor.ods.zip]]<br><br />
===Del 1===<br />
{| class="wikitable"<br />
|-<br />
! Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| Mikrokontroller<br />
| 1 (färdigmonterad)<br />
| U2<br />
|-<br />
| Switchregulator (3.3V)<br />
| 1 (färdigmonterad)<br />
| U1<br />
|-<br />
| Stor keram 10uF<br />
| 5<br />
| C2, C3, C4, C5, C13<br />
|-<br />
| Liten Keram 100nF<br />
| 7<br />
| C6, C8, C9, C10, C11, C12, C14<br />
|-<br />
| Tantal, 100uF, 10V<br />
| 3<br />
| C1,C7,C15<br />
|-<br />
| Lastkapacitans Kristall 18pF<br />
| 2<br />
| C16, C17<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R6, R11<br />
|-<br />
| 3k3 resistor<br />
| 1<br />
| R9<br />
|-<br />
| 100R resistor<br />
| 8<br />
| R1, R2, R3, R4, R5, R7, R8, R10<br />
|-<br />
| Mostfet (P-kanal)<br />
| 3<br />
| Q1, Q2, Q3<br />
|-<br />
| LED Grön<br />
| 4<br />
| LED1, LED3, LED5, LED7<br />
|-<br />
| LED Röd<br />
| 3<br />
| LED2, LED4, LED6<br />
|-<br />
| Induktor (switchregulator)<br />
| 1<br />
| L1<br />
|-<br />
| Diod<br />
| 1<br />
| D1<br />
|-<br />
| Kristall 8 MHz<br />
| 1<br />
| X1<br />
|-<br />
| Stiftlister<br />
| 1(1x2)<br />
| P1<br />
|-<br />
| Stiftlist vinklad<br />
| 1(1x4)<br />
| P2<br />
|-<br />
| Knappar, små<br />
| 3<br />
| SW1, SW2, SW3<br />
|}<br />
<br />
===Del 2===<br />
{| class="wikitable"<br />
|-<br />
!Komponent<br />
! Antal<br />
! Referens<br />
|-<br />
| H-brygga, DRV8833<br />
| 1 (färdigmonterad)<br />
| U3<br />
|-<br />
| 10k resistor<br />
| 2<br />
| R15,R13<br />
|-<br />
| 100R resistor<br />
| 2<br />
| R12,R14<br />
|-<br />
| Reflexdetektor<br />
| 2<br />
| REF1,REF2<br />
|-<br />
| Stor keram 10uF<br />
| 2<br />
| C19,C20<br />
|-<br />
| Liten Keram 100nF<br />
| 1<br />
| C18<br />
|-<br />
| Micro metal gear, 100:1 HP<br />
| 2<br />
| <br />
|-<br />
| Motorbrackets, par<br />
| 1<br />
| <br />
|-<br />
| Hjul, par<br />
| 1<br />
| <br />
|-<br />
| Stiftlister<br />
| 2(1x2)<br />
| P3, P4<br />
|}<br />
<br />
==Kopplingsschema==<br />
[[File:IntroARM2012v2.pdf]]<br><br />
<br />
==Komponenters placering på PCB==<br />
[[File:ComponentMapP1.png|400px]]<br><br />
[[File:ComponentMapP2.png|400px]]<br></div>Pkalden