1. Introduktion... 2. 2. Tillvägagångsätt... 2. 3. Robotkittet... 3 4. DSP... 4. 5. Digital Kamera... 7 6. HC 11... 8 7. FAQ... 8. Appendix...



Relevanta dokument
NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Att använda pekare i. C-kod

Installationsguide. För att installera mjukvara och hårdvara, följ nedanstående anvisningar.

Varför behövs det? I Allegro finns t.ex. stöd för:

KUNGLIGA TEKNISKA HÖGSKOLAN. Linefollower. Med LEGO Mindstorms och NXC. Paul Coada Introduktion i datateknik II1310

Jag rek. starkt att alla uppgraderar sin TomTom till version 5 eller högre då massor av nya funktioner och en betydande prestandaskillnad finns.

Installationsanvisning för kursens programvara på egen dator

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Enkel rak plastplog. Fäst med eltejp som ovan eller på annat sätt. Såga till plogen eller skär ut den med mattkniv

Teckentavlor. Inställning av styrsätt med programvalsratten

LEGO Mindstorm-robot

SÅindex 5 i Microsoft Excel 2010

DL SOFTWARE Uumajankatu 2 Umeågatan FIN VAASA/VASA FINLAND +358-(0) Fax +358-(0)

WAGO IO System Service Seminar. Diagnostik

Smart Rogic Manual. Robostick Manual

Datorsystem Laboration 2: Minnesmappade bussar

Smartair System. TS1000 Version 4.23

Webbkamera från

Om NXTprogrammering. Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT?

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

QUICK GUIDE Master reset, initiering och adressering. Master Reset av LCU6516

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

TOPAZ PHD. Användarmanual

LiTH Autonom bandvagn med stereokamera Användarhandledning. Gustav Hanning Version 0.1. Status. Granskad. Godkänd.

ORDNA DINA BILDER. Var finns bilderna Var bör de finnas

INNEHÅLLSFÖRTECKNING. Version 1

MSR Gjutarevägen Stenkullen

Programmeringsteknik med C och Matlab

Andromeda. Användning och Installation

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Digital Display VDS / Bus2

Systemkonstruktion SERIEKOMMUNIKATION

[MANUAL TILL LUVITS GRUNDFUNKTIONER]

Datorlaboration 0, Programmering i C++ (EDAF30)

Seriehantering. [En enkel guide för hur du som serieadministratör använder SVEMO TA.]

Övningar Dag 2 En första klass

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Manual för praktiker

Produktbild och funktionsknappar

Kom igång med din SMART Board. Det praktiska

Föreningarnas nya sidmall. Version 4,

Rev AdmiQ Snabb Guide

Mobil lagerhantering med streckkodsskanner

MONTERINGSANVISNING & BRUKSANVISNING för CARGARD Portstyrning RDC 30 / RDC 120

Monteringsanvisning och Garanti

Lathund Milestone 112 Ace

ASSA Smartair. Användarmanual Programmeringsenhet till TS1000. ASSA ABLOY, the global leader in door opening solutions.

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Laboration 10 - NetBeans

Klientinstallation FHS WLAN

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Att komma igång med FirstClass (FC)!

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Kontakt: Mikael Forsman Användarmanual för VIDAR 4.0

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Guide för pdf-formulär

JP JOYSTICKS PJP-008 & PJP-014

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Intraoral kamera. Installations- och användarmanual

- Trådlöst NVR kitt - Snabb installations guide -

M7005 Fischer/Weisser mätstyrningsserver M9003 ersatt med Simens S Plc

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

55201 Digitalkamera med video

Beställnings- och installationsguide av Dubbelskydd

Brädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999.

Manual Nedladdningsbara klienten NLK

UPPDATERING MJUKVARA FÖR PALTRONIC SYSTEMS

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Innehållsförteckning. Manual WebCT

Quick start manual. Smart-House Rev 2.0

På servern För att registrera och köra en Topocad 17 nätverkslicens krävs att man installerar den senaste Licensservern

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Installation av fjärrströmbrytare HE842, HE843 och HE862(2).

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Fotoballonger. Manual

Version: v.1.0. Manual för praktiker

55200 Inspelningsbar microfon

Telefrang Smoke Control System Installationsmanual för Midi- och MaxiSmoke Sida 1 av 12

Rekonditionering Memoplanner 1.0/2.0

Installationsanvisning för Su Officemallar 2003 För PC

Snabbguide. Lägg till PLC i IndraWorks-projekt IndraLogic som Profibusmaster

Lagadministration Linda Emterby

Sida. Manual Scalepoint Avfuktning

Steg 4 b. Molntjänster Onedrive Office 365 Windows 10. Mars -16 Liljedalsdata.se. Liljedalsdata Molntjänster En del av steg 4 Sida 1

Felsökning av mjukvara

RV03 Ändring av betygsskala

Trust PhotoCam LCD 2300 PHOTOCAM LCD Anvisningar för snabb installation. Version 1.0

Projektrapport EDA095

Objektorienterad programmering D2

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

Manual för Kollektomat

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Föreläsning 1 & 2 INTRODUKTION

.00 E00. Innehåll: Kablage allmänt. Tillägg för drift Radiostyrning Igångkörning Programmering Vinschradio Elschema Felsökning

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Så här skriver du ditt första program i C++

Transkript:

Innehållsförteckning 1. Introduktion... 2 2. Tillvägagångsätt... 2 3. Robotkittet... 3 4. DSP... 4 4.1 HÅRDVARA DSP... 4 4.2 MJUKVARA DSP... 4 5. Digital Kamera... 7 6. HC 11... 8 6.1 HÅRDVARA HC11... 8 6.2 MJUKVARA HC11... 8 7. FAQ... 8 Appendix... 9-1 -

1. Introduktion Kursen Mekatroniska System är på 4p. Av dessa poäng utgörs 3p av laborationer. Detta innebär att ca 100 timmar i laborationstid. Målet med laborationerna är att bygga en autonom robot för att utföra ett bestämt uppdrag. Kursen kommer att avslutas med en tävling där de olika robotarna får tävla mot varandra. För att bli godkänd på laborationsdelen krävs att man deltar i tävlingen med en fungerande robot. Ytterligare krävs att nedan deluppgifter skall vara utförda och godkända. Deluppgifter med tider: 1: Vecka 13 skall bildbehandlingen redovisas. Objekten skall kunna identifieras med kameran. 3: Vecka 20 provtävling. 4: Vecka 22 tävling Laborationstider: Måndagar mellan 15.15-17.00 Torsdagar mellan 15.15-17.00 Under laborationstiderna är handledarna tillgängliga för frågor, försök i största möjligaste mån respektera dessa tider. I labbet finns det manualer för LEGO -robotarna ( blå pärmar) och manualer för sensorerna ( grön pärm ). Använd dessa flitigt. För den intresserade körs en genomgång i utvecklingsmiljön för HC11:an måndagen den 19/2 kl15:15. Den kommer att behandla fördelar med interaktiv-c, motorstyrning, sensoravläsning, nerladdning av kod till HC11 mm. En genomgång i utvecklingsmiljöerna körs för Texas DSP:n måndagen den 26/2 kl15:15. Genomgången kommer att behandla olika debugger miljöer, hur en bild läses in på fil, dataformat, hur man skriver make-filer mm. Genomgångarna är inte obligatoriska utan ses som en hjälp att komma igång. 2. Tillvägagångsätt Förvissa er om att inga delar saknas. En inventeringslista finns i appendix. Det är lämpligt att ni sätter i gång med att ta lite exempelbilder med kameran och testa olika algoritmer i Matlab. Parallellt med detta kan ni bygga den mekaniska konstruktionen av roboten. Se stycket 5. Digital kamera för att läsa in bilder. När den mekaniska konstruktionen börjar ta form är det lämpligt att bekanta sig med HC11 och Interactive-C. Ett hett tips är att inte programmera hela programmet för roboten på en gång utan börja med att testa olika delfunktioner. Utnyttja att språket är interaktivt. När ni fått några enkla funktioner att fungera så är nästa steg att sluta loopen, dvs roboten reagerar på någon form av input (backar när den kör in i en vägg). När väl den enkla loopen fungerar blir det mycket lättare att bygga vidare med mer avancerade funktioner. Fortsätt sedan att finslipa era funktioner tills ni har ett vinnande koncept! - 2 -

3. Robotkittet Robot-kitet kommer ursprungligen från MIT i USA och består av ett HC11-kort, sensorer, LEGO och Interactive-C. Kittet har utökats med en kamera, DSP och består nu av. HC11-board DSP-kort med ett minnesutbyggnadskort Digital färgkamera Olika sensorer (brytare, avståndsmätare, osv) Olika aktuatorer (motorer) Batteri LEGO med hjul och axlar Sensorer & aktuatorer Till roboten finns det div. mikrobrytare, avståndsmätare och en färgkamera (sensorer). Som aktuatorer finns det dc-motorer, en servomotor samt en stegmotor (tyvärr med lite lågt moment ut). Under utvecklingsarbetet kan det schematiskt se ut som bild 1. När sedan roboten körs autonomt kopplas datorn bort och HC11:an ser DSP:n tillsammans med kameran som en smart sensor. Dator Serie ( RS232) Parallellport Aktuator( motor ) HC11 DSP Parallell Kamera Sensor( brytare ) Bild 1 Övergripande bild på kommunikationen smart sensor Programmet som skall kontrollera aktuatorer och läsa in sensorvärden laddas ner från datorn till HC11:an via en seriekabel och med programmet IC Interactiv C se mer om detta under kap 6 HC11. Med interactiv C menas att det går att skriva ett funktions anrop och funktionen utförs utan att main programmet startas. Ett ex: anslut seriekabel, batteri, dc-motor till motor1 och skriv motor(1,75); i kommandorutan. Motorn startar med 75% kraft framåt utan att det har startat något main program. För att starta ett main program ladda först ner c-filen med void main(void) funktionen, tryck därefter på reset-knappen och HC11:an startar. HC11 klarar inte bildbehandlingen som behövs till uppgiften under en rimlig tid därför får en DSP sköta det arbetet och avlasta HC11:an. Kommunikationen mellan HC11 och Dsp sker med hjälp av ett specialgjort I/O på HC11. Det digitala I/O:t har 8 ingångar och 8 utgångar. Den åttonde biten används för handskakning mellan Dsp och HC11. Detta betyder att 7 bitar data kan sändas och tas emot från Dsp:n. Se upp med detta. Ett tips är att inte köra över några stora bilder via denna I/O det är inte meningen. Däremot så skall kanalen användas till att ge information var tex. objekten befinner sig. Programmet som skall läsa in kamerabilden och göra bildbehandlingen laddas ner från datorn till DSP:n via en parallellkabel och med programmet dsk3d eller ett program som är utvecklat just för detta ändamål kallat dsk4d se mer om detta under kap 4. DSP. - 3 -

4. DSP 4.1 Hårdvara DSP Dsp-kortet är ett utvecklingskort från Texas. På kortet sitter det en TMS320C31 Dsp. Kortet har en 25- polig kontakt ( C ) för kommunikation med parallellporten på pc:n. Till kortet finns ett dotterkort som har tre st i/o:s. Två st parallellportsinterface ( A, E ) och ett digitalt i/o ( B, 8 in och 8 ut). Då kortet används tillsammans med dotterkortet, som det kommer att göra i denna kursen, sker strömförsörjningen från dotterkortet ( D ). OBS ANSLUT BARA SPÄNNINGSMATNINGEN TILL DOTTERKORTET EJ TILL DSP:N. A B Bild 2 DSP-kortet C DSP D E F A - Anslutning till pc för debugg. B - Anslutning till HC11. C - Anslutning till pc för ladda ned program. D - Spänningsmatning OBS Anslut bara här ej på Dsp:n! E - Anslutning av kamera. F - Spänningsmatning till kamera. 4.2 Mjukvara DSP Debugger 1 Till Dsp:n följer det med en debugger där det finns möjlighet att debugga sina program. Det går att ladda ner sina c-program från debuggern. Debuggern heter dsk3d. Vanliga kommadon är: load c:\user\kalle\a.out : laddar program. mem 0x80982a : visar innehåll i minnet. mm 0x80982a : manipulerar minnet. Debugger 2 Ett program har tagits fram för att på ett enkelt sätt läsa ut bilder från minnet i DSP:n. Det går även med detta program att ladda ner sina c-program från debuggern. Debuggern heter dsk4d. C-kompilator/ länkare För programutveckling finns en c-kompilator och en länkare. Länkaren och kompilatorn har inget grafiskt gränssnitt så vi använder oss av ett editeringsprogram kallat UltraEdit. UltraEdit Kopiera och packa upp dessa filer till er egen katalog som ni lämpligen skapar under c:\user: Cam.c Cam.h - 4 -

Example.c Init.c Init.h Io.c Io.h Io.mak Qcam.c Qcam.h Quickcam.cmd Dessa filer finns packade i c31exempel.zip Hur kompilera koden? Ultraedit kan inte kompilera men den kan starta och köra ett make-program som i sin tur läser in en *.mak-fil. I denna *.mak-fil beskrivs det vad som skall göras. Ett exempel på hur en mak-fil kan se ut. # # Makefil för Texas compiler # CC = c:\program\c3xtools\cl30 LK = c:\program\c3xtools\lnk30 EXE_NAME = io LIBS = # Namnet på kompilatorn # Namnet på länkaren # Namnet på den exekverbara filen COPTS = -c -s -v30 -if:\c3xtools -eo.o # Flaggor för kompilatorn LKCMD = quickcam.cmd # Namnet på komandofilen till länkaren OBJS = io.o # Namnet på objektfilen $(EXE_NAME): $(OBJS) quickcam.cmd io.mak # Om någon av dessa filer ändras $(LK) -v0 $(OBJS) $(LKCMD) # utförs denna rad io.o: io.c quickcam.cmd io.mak # Om någon av dessa filer ändras $(CC) $(COPTS) io.c $@ # utförs denna rad. Make filen är er egen och ni måste ändrar i den när ni lägger till fler filer i erat projekt. Se i filen quickcam.cmd för mer information. Konfigurera knapparna i Ultraedit I Ultraedit finns det en knapp med en hammare som icon, för markören över knappen och DSP compile and link skall bli synligt. För att denna knapp skall kopplas till eran *.mak-fil så måste en liten ändring göras. Klicka på advanced och tool configuration då skall denna Tool Configuration menyn poppa upp. - 5 -

Dubbelklicka på DSP compile and link i rutan längs ner så dyker texten upp. Ändra i command line rutan om ni har döpt om mak-filen från io.mak vilket den heter i exemplet. Ändra i Working Directory rutan till er katalog. Kontrollera att Replace Existing och Capture Output är markerade. OBS tryck nu på replace innan ok annars görs inte ändringen. Skapa nytt projekt i Ultraedit Tryck project och New Project/Workspace fyll i ert projekt namn och lägg den lämpligast i er katalog, tryck ok. Ett nytt formulär dyker upp tryck Add files och markera de filer som skall vara med i projektet dvs alla källkodsfiler, *.mak-filen och länkningsfilen quickcam.cmd tryck öppna och sedan close. Vill ni sedan lägga till fler filer i projektet görs det under project och files. Kompilera och länka Nu är det äntligen klart för att trycka på knappen kompilera. Make programmet startar, läser in *.makfilen och utför det ni har angivit i den. Eventuella felmedelanden listas. Länkaren skall generera en fil som skall heta io.out och en io.map-fil om allting är rätt. I io.map-filen kan man se var i minnet variabler och funktioner hamnar. Io.out är den körbara filen. Nerladdning av koden till DSP:n I Ultraediten finns det ytterligare en knapp DSK4D den startar ett debugger program i vilken den körbara filen io.out kan laddas ner. Makefil För att kompilera era program är det lämpligt att skapa en makefil och lägger den i ert hembibliotek. En makefil kan se ut enligt följande: # # Makefil för Texas compiler # CC = c:\program\c3xtools\cl30 # Namnet på kompilatorn - 6 -

LK = c:\program\c3xtools\lnk30 EXE_NAME = io LIBS = # Namnet på länkaren # Namnet på den exekverbara filen COPTS = -c -s -v30 -if:\c3xtools -eo.o # Flaggor för kompilatorn LKCMD = quickcam.cmd # Namnet på komandofilen till länkaren OBJS = io.o # Namnet på objektfilen $(EXE_NAME): $(OBJS) quickcam.cmd io.mak # Om någon av dessa filer ändras $(LK) -v0 $(OBJS) $(LKCMD) # utför denna rad io.o: io.c quickcam.cmd io.mak # Om någon av dessa filer ändras $(CC) $(COPTS) io.c $@ # utför denna rad. Command fil Till länkaren finns en kommando-fil. Hur man konfigurerar denna finns beskrivet närmare i appendix. Färdiga C-funktioner Det finns en del färdiga C-funktioner för att underlätta programmeringen av Dsp:n. Ett exempelprogram finns i appendix som beskriver de vanligaste funktionerna. Följande funktioner finns: Initieringar: int InitDsp(void) int InitHC11(void) - Initierar in och utgångar. - Dessa funktioner måste göras i början. För debugging: (används inte längre) int PcTalk(void) int TalkToPc(int *,int *) Kommunikation med kamera: int GetFrameFromPc(int *,int *) int SendCameraParametrar(int *) - Returnerar 1 om Pc:n vill kommunicera. - Pratar med Pc:n. - Hämtar en bild från kameran - Sänder parametrar till kameran. Måste göras innan en bild tas. Kommunikation med kamera: int NewMessageFromHC11(void) - Kontrollerar om det är något nytt meddelande. int WriteToHC11(int) - Skriver ett meddelande ( byte 0-127 ). int ReadFromHC11(void) - Läser ett meddelande ( byte 0-127 ). 5. Digital Kamera Den digitala kameran kommer från Connectix och modellen heter Color QuickCam 2. Kameran ansluts till en Pc via parallellporten. Strömförsörjningen får den från tangentbordskontakten. För att ta bilder med kameran kan ni använda ett av de program som följer med kameran, QuickPick. Under settings kan ni sätta Image size and quality. Ändra storleken till Quarter (160X120 ) och colors till thousands (uncompressed). Detta är den storlek som vi kommer att använda i kursen. Du kan nu ta lämpliga bilder och spara dessa i ett lämpligt format ( bmp ) för att sedan manipulera med dessa i Matlab. - 7 -

6. HC 11 6.1 Hårdvara HC11 Hur HC11 kortet fungerar och hur man programmerar kortet står väl beskrivet i manualen ( Blå pärm). Där står även hur man programmerar i Interactive-C. Läs igenom hela manualen. Labbhandledaren svarar ej på frågor som står i manualen. 6.2 Mjukvara HC11 Kommunikationen mellan HC11 och Dsp sker med hjälp av ett specialgjort i/o på HC11. Funktionerna finns i filen dsp.c. Det finns fyra funktioner för kommunikation: int dsp_init(void) - Initiering sker vid start. int dsp_read() - Läser en byte från Dsp. int dsp_write(int data) - Skriver en byte till Dsp. int dsp_new_message(void) - Kollar om nytt meddelande från Dsp. Obs! man kan bara sända 7 bitar åt gången, dvs värden mellan 0 och 127. 7. FAQ 1. Hur vet jag att mitt hc11 kort lever? På displayen skall ett hjärta blinka. Ju tyngre belastning desto långsammare blinkar hjärtat. Att det inte blinkar alls kan vara tecken på att datorn hängt sig. Boota om! 2. Vad är p-kod? På Hc11 finns en inteprenter som tolkar och tar hand om kod som laddas ner till HC11. Detta program kan ibland försvinna p.g.a. t.ex. dåliga batteri. I så fall ladda ner ny p-kod. 3. Hur laddar jag ner ny p-kod? Med hjälp av programmet dl.exe laddar man ner ny p-kod. Skriv följande i en dospromt : dl -pkoder21.s19 Timingen är mycket kritisk vid nerladdning så det fungerar inte alltid under Windows95. Programmet fungerar inte heller på en 286:a. Glöm inte att sätta HC11-bordet i download mode. 4. Hur sätter jag HC11 i download mode? Genom att trycka på choose och reset. Endast den gröna lampan skall lysa. Den gula skall slockna. 5. Mitt program fungerar lite konstigt fastän jag aldrig programmerar fel? När batterierna är dåliga kan p-koden bli korrupt och bara nästan fungera. Lösning: Kontrollera att batterierna är ok och ladda ner ny p-kod. - 8 -

Appendix Sammanställning av delar till mekatroniskasystem kurs Balkar antal Aktuatorer antal Hjul och axlar 16*1 28 DC-motor 4(8) Hjul antal 12*1 23 Servo 1 Stora hjul 8 10*1 12 Stegmotor 1 Mellan hjul 8 8*1 31 Små hjul 10 6*1 27 Ackumulatorer 2V 6 4*1 64 Batterier 1.5V 8 Hjul m. ring 12 2*1 93 Hjul u. ring 4 Sensorer antal Plattor antal Mikrobrytare stor 2 Axlar 10*6 11 Mikrobr. mellan pinne 2 12 17 6*4 10 Mikrobr. mellan valbar 2 10 17 4*4 10 Mikrobr. mellan rulle 2 8 17 10*2 7 Mikrobr. liten 3 6 27 8*2 39 Tryckströmbrytare stor 2 4 29 6*2 18 Tryckströmbrytare liten 2 3 13 4*2 46 2 12 3*2 22 Ir sensor 1 2*2 23 Fototransistor (ir) 2 10*1 23 Fotoresistor (synligt) 4 8*1 38 Sharp-sensor 4 6*1 38 Avståndsmätare 1 4*1 46 Lutningsgivare 1 3*1 46 Läsgaffel 3 2*1 122 Lysdiod (synligt) 2 Div antal HC11board 1 Lysdiod (ir) 2 DSP 1 Kugghjul och div Minneskort 1 Kamera 1 Kablage DSP-HC11 1 Kugghjul 40 24 16 8 Breda kedjor Smala kedjor Differential Kugghjul till diff. Kardanknut Gängad stång Mutter Kuggstång antal 11 32 25?? 52 165 2 11 4 2 7 14-9 -