IntroARM

From Chalmers Robotförening
Revision as of 14:38, 23 October 2014 by Sterna (talk | contribs) (→‎Elektronik)

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.

Introduktion

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 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 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.
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.

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.
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.

Features

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:

Elektronik

  • STM32F100CBTx med ARM Cortex-M3, 64-128kB Flash, 8kB RAM
  • 4 IR-avståndssensorer
  • 2 kantsensorer
  • Styrning av två motorer
  • 6 indikatorLEDs
  • 2 användarknappar
  • 2 tachometrar (hjulhastighetsmätare)
  • SD-kort
  • Högtalare
  • 3-axlig accelerometer
  • 3-axlig gyrometer
  • Batterimätning

Mekanik

  • 2 Pololu Micro Metal Gear motor HP (100:1 som standard)
  • 2 Motorfästen som monteras direkt på kretskortet
  • 2 Hjul med tachometertänder
  • Ett flertal fästpunker att skruva fast ett egenbyggt chassi i

Förberedelse programmering STM32

Vilse har satts på att göra en allomfattande guide för nybörjare som tar dig igenom alla moment för att komma igång med programmering.

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?)

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.

Byggbeskrivning introARM

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.

Programmering STM32

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.

Program IntroARM

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.

Förbättringsförslag

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

Till revision 4

  • Silkscreenen på komponentnamnen (för kondingar/motstånd) är väldigt små. Försök göra dom större om möjligt.
  • Buzzern har inget namn i silkscreen
  • Det står inte vilken SPI det är i silkscreenen (det står bara MISO/MOSI etc)
  • Det vore bra med någon mätpunkt/kontakt för V+ efter polvändningsskyddet på ovansidan.
  • Jordpadden för oscilloskopsklämma har lödmask på undersidan. Det borde den kanske inte ha.
  • Lägg stopmask (exponerad koppar) i jordplanet på andra sidan från motordrivaren. Vian borde även även vara större.
  • Flytta C23 och R23 lite längre från IRMOT2.
  • Det går ledare under ena motorn. Försök att routa om dessa.
  • 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.
  • Re-annotera alla komponentreferenser (så att referenser som inte finns längre tas bort)
  • Gör hålen för kantsensorerna lite mindre (totalt 1 mm i bredd och höjd kanske).

Till revision 3

  • Silkscreenen för C17 syns dåligt på kretskortet, flytta markeringen till nästa revision.
  • Silkscreen på tantalerna saknas/syns dåligt. Lägg till i footprintet ordentligt.
  • 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.
  • Motorkontakterna är långt ifrån motorerna, flytta i nästa revison.
  • 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.
  • Se till att det finns någonstans att sätta en jordklämma för att mäta med oscilloskop.
  • Footprintet till tachometrarna (REF1 och REF2) är dåligt. Markeringen syns dåligt.
  • 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.
  • Ta bort bootloader-kretsen. Eftersom stm32flash fungerar bra nu med att styra båda pinnarna behövs inte denna. Dra ut boot till programmeringsstiftlisten.
  • Fundera ifall motstånden till IR-ledsen behöver vara 10ohm (sternå fick det att funka bra med 100ohm). Kör på 100ohm.
  • Flytta C35 till innan MOSFETen till Buzzern
  • 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.
  • Footprintet för switchregulatorn behöver pin-1 markering, lägg till i nästa revision. Den sitter mot knapparna (från microcontrollern)