Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia



Relevanta dokument
Digitala projekt - Radiostyrd bil

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

DIGITALA PROJEKT Väderstation

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

Digitala Projekt (EITF11)

Digitalt Projekt: Radiostyrd Bil

Pulsmätare med varningsindikatorer

Rapport Radiostyrd LEGO bil

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Effektpedal för elgitarr

Projektrapport i Digitala System

Bilen som inte kan krocka

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

Systemkonstruktion Z3

(2B1560, 6B2911) HT08

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

Blue Key Digitala projekt VT

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

DANCING ROBOT. EITF11, Grupp 10. Kajsa Salomonsson, Hugo Hedin och Petter Mårtensson

GPIO - General Purpose Input Output

Programmera ett dörrlarm. Se video

Växtviskaren EITF11 Digitala projekt VT15, I12

Övning: hitta buggarna

Quadraglo. MSD0320 Bruksanvisning. Varning! Varning! ÅLDER FRÅN 8 ÅR. Läs denna bruksanvisning innan Ni använder produkten

Anders Arvidsson ROBOTBESKRIVNING. Roboten på bilden är extrautrustad

Department of Information Technology Digitala projekt. SuperKull. Daniel Öhman Alexander Persson

D/A- och A/D-omvandlarmodul MOD687-31

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

The Intelligent Timer

Digital Projekt EDI 021 Konstruktion av talande nummerpresentatör VT1 2004

Projektrapport. Till Projektet Bluetoothstyrd bil

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

ELEKTRICITET. Vad använder vi elektricitet till? Hur man använder elektricitet?

Digitalteknik: CoolRunner-II CPLD Starter Kit

Scan2Text Svensk Doc 2.0. Scan2Text Användarguide

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Systemkonstruktion SERIEKOMMUNIKATION

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Webservice & ERP-Integration Rapport

Tentamen i Digitalteknik, EIT020

MINIX NEO A2 Användarguide

Innehåll. 1 Inledning 3

Bruksanvisning för IR-1SP Micro

Programmering. Analogt och med smårobotar. Nina Bergin

HJULUTRUSTNINGSTEKNIK

Hur ser Blue-Bot ut i aktion?

Lego Robot [ ] [ ] [ ]

Så sparas ström i dagens åttabitare

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

Manual för WMR-252 inbyggnadsmottagare med universaldimmer

EDI021 Digitala projekt. Rapport LARMSYSTEM. Utförd av: Niklas Eklund E03 David Olsson E04. Inlämnad:

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

ENKEL Programmering 3

Introduktion till Arduino

Laboration i datateknik

Introduktion till E-block och Flowcode

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Förpackningen innehåler

Manual Sportident Onlinekontroll via GPRS

Ett urval D/A- och A/D-omvandlare

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

Bakgrund: När man programmerar på professionell nivå så går det ut på att koppla gränssnittet till funktioner.

Digitala projekt rapport

switchdim data & instruktion switchdim data & instruktion med reservation för ändringar.

Introduktion till Arduino

Digitala Projekt(EITF40) - Larm

Rapport. Fyra i rad-spel. Rapport Digitala Projekt EITF11 Grupp 9 Emma Rasmusson & Louise Ragnarsson Handledare: Bertil Lindvall

Systemskiss. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

LUNDS TEKNISKA HÖGSKOLA. Väderstation. Digitala Projekt, EITF11. Martin Olofsson, I08 & Fredrik Oher, I08 Vt 2012

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Programmering, dans och loopar

Konstruera, styra, reglera och programmera en röd tråd F-9

ETSA01 Digitala Projekt (I) VT- 13. Projektarbete AC Handledare Bertil Lindvall

Programmera en mänsklig robot. Lektionen handlar om att skapa och följa instruktioner. Programmera en mänsklig robot

Projektrapport. MegaLoad. Nätverksprogrammering EDA

Sekvensnät i VHDL del 2

Quick start manual. Smart-House Rev 1.1

Cecilia Ingard. Boksidan

PROJEKTTYP: Rapportsammanfattning STUDENTER: Larsson, J. ( ) och Oredsson, J. ( ) DATUM: 26 april, 2015

Kodlås. Kopplingsschema över kodlåset PAL-18

LiTH, Reglerteknik Saab Dynamics. Hårdvaruspecifikation Collision avoidance för autonomt fordon Version 1.0

Svensk manual Version Revision 3

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Handhavandeinstruktion

LPP Programmering. Syfte, övergripande mål Lära känna och kunna utföra enkla programmeringar i Scratch samt Lego Mindstorms.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Larmcentral. Digitala Projekt. Cecilia Olsson & Erika Björck Handledare: Bertil Lindvall LUNDS TEKNISKA HÖGSKOLA

Välkommen till ArkivDigital! Låt oss bjuda på en kort rundtur.

Digitala projekt Konstruktion av nummerpresentatör

Elektronik grundkurs Laboration 6: Logikkretsar

Instruktion för I/O-Kort, med USB-anslutning.

Digitala Projekt VT13. PING-Pong

BILAGA. En handmanövrerad mekanisk apparat för dosering av vätska till en behållare för titreranalys (så kallad digital titreringsapparat).

Programmera en mänsklig robot

Transkript:

Konstruktion av en radiostyrd legobil Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia 1

1.Innehållsförtäckning Rapport Radiostyrd LEGO bil...1 1. Innehållsförtäckning...2 2.0 Inledning...3 2.2. Mål med projektet...3 2.3. Kravspecifikation...3 3.0 Realisation av projektet...4 3.1. PC-delen...4 3.2. Sändaren...5 3.3. Bilen med tillhörande elektronik...6 3.3.1 Nrf401-kretsen.6 3.3.2 Processorn...6 3.3.3. H-bryggan...6 3.3.4. Motorerna...7 3.4 Mjukvara för styrning av bilen.7 3.5 Konstruktion av legobilen..7 4.0 Projektets utveckling.8 5.0 Resultat.9 5.1 Problem under projektets gång..9 6.0 Referenser 9 2

2.0 Inledning: Trådlös kommunikation befinner sig i en expansiv fas. Det finns många exempel på detta så som mobiltelefoni, telematik inom medicin där information om patientens tillstånd skickas till ett centralt sjukhus mm. I kursen digitala projekt behandlade vi ett annat område nämligen kommunikation för bilar ett område under stark tillväxt. De nyare bilarna förses med fler och fler smarta funktioner tack vare all inbyggd elektronik och i framtiden kommer även trådlös kommunikation att bli standard. Tillämpningar på trådlös kommunikation är t ex kommunikation mellan bil/verkstad för att kontrollera bilens tillstånd, kommunikation med satelliter för att hitta kortaste vägen till en viss destination. Båda dessa tillämpningar har blivit standardutrustning på de nyare bilarna I praktiken så är det bara fantasin som sätter gränserna för vad som kommer att finnas i bilarna. Ett specifik problem som vi behandlade under kursens gång var trådlös styrning av en legostyrd legobil försett med två motorer en för drivning en för styrning. 2.1 Mål med projektet: Målet med projektet var att bygga en legobil som styrs med hjälp av datorn. Projektet knyter samman tre delar av tekniken: Mekanik som omfattar konstruktion av en fungerande legobil. Bilen ska simulera beteendet av en verklig bil dvs. den ska kunna köras fram, bak samt kunna vrida på de främre hjulen. Elektronik (hårdvara) dvs. bilen skall förses med lämplig elektronik som möjliggör styrning av motorerna via trådlös kommunikation Mjukvara (programmering). Beteendet hos vår konstruktion skall vara programmerbar dvs. den skall styras med hjälp av mjukvara. Kraven på bilens funktioner kan utläsas i rubriken kravspecifikation som följer nedan. 2.2 Kravspecifikation Bilens basala funktioner är: Den skall kunna styras från tangentbordet med hjälp av piltangenterna. Bilens hjul skall kunna vridas även när bilen är i rörelse dvs. det ska vara möjligt att trycka på två tangenter samtidigt som t ex för att köra bak och vrida framhjulen åt höger. Eventuella förbättringar i form av förminskad strömförbrukning, felkorrigering etc. implementeras endast i mån av tid. Kommunikation mellan bil och datorn sker seriellt. Bilen skall kunna bromsas genom att man antingen frikopplar motorerna dvs. ingen knapp är nedtryckt eller byter hastighetsriktning tills bilen stannat helt. 3

3.0 Realisation av projektet I detta avsnitt kan man läsa hur uppgifterna från avsnittet kravspecifikation implementeras. Beskrivningen är detaljerad och den innehåller även detaljer om hur processen under implementationsfasen gick. Vårt system består av tre delar: PC-delen: som innehåller mjukvara för kommunikation med bilen. Sändare: sändare som skickar styrsignaler till bilen. Bilen: Bilen med tillhörande elektronik. Denna del är den mest komplexa och den innehåller både mjukvara och hårdvara. En principiell bild som visar hela systemet kan beskådas nedan Bild 3.1 Principiell bild av systemet för trådlös styrning av legobil med hjälp av datorn Samtliga dessa delar beskrivs i speciella avsnitt nedan 3.1. Pc-delen Styrningen av bilen sker från en pc med Windows XP. Programmet som används för att kommunicera med serieporten där sändaren är kopplad är skriven i java. Bilen styrs med hjälp av piltangenterna så som nämndes i avsnittet kravspecifikation och som vi upprepar här: Pil Upp : Kör framåt alternativt bromsa om man kör bakåt Pil Ned : Kör bakåt alternativt bromsa om man kör framåt Pil Vänster : Sväng framhjulen åt vänster Pil Höger : Sväng framhjulen åt höger Dessutom kan man trycka två knappar samtidigt för att köra och ändra hjulens riktning. Om inga piltangenter trycks kommer bilens båda motorer att stanna. Bilen kommer också att retardera till noll pga. friktionsförluster. Styrsignalen skickas x antal gånger till sändaren. Detta för att minska sannolikheten för fel vid överföringen. 5-bitars data skickas till processorn för styrning och drivning. 4

3.2 Sändaren: Sändarens syfte är att dels kommunicera med COM-porten på datorn dels att skicka styrsignaler till bilen. Sändaren är en enkel konstruktion som består av två kretsar: den ena kretsen är en krets med benämningen MAX-232 vars syfte är att omvandla en 12 volts signal från Com-porten till en TTL nivå, dvs. 5 V. Efter omvandling kopplas signalen direkt till den andra kretsen (nrf401) som är själva sändaren. En principiell skiss kan beskådas nedan. Bild 3.2. Principiell skiss av hur sändaren läser data från seriellporten Förutom signalen från MAX-232 (spänningsomvandlaren i bild 3.2 ovan) som är en datasignal kräver nrf401 en signal till nämligen en transmit-enable -signal som sätter kretsen i sändar-mode. 5

3.3 Bilen med tillhörande elektronik Det mesta av elektroniken finns på bilen. Ett blockschema kan beskådas nedan. Bild 3.3. Illustrering av elektronikdelen på bilen 3.3.1 Nrf401-kretsen. Det är samma krets som vid sändar-delen fast här är den kopplad så att den agerar som mottagare istället. Dvs. receive-enable sätts till 1. 3.3.2 Processorn Atmega16 är en mikroprocessor från Atmel. Den har portar för att skriva och läsa från andra enheter. Vissa av portarna används för att läsa information t ex i fallet med sändarkretsen. Vissa av portarna används för att skriva information som i fallet med H-bryggan dvs. vi styr H-bryggan med hjälp av portarna från processorn. Utsignalerna från portarna bestäms av mjukvaran som vi skrivit själv. 3.3.3 H-bryggan H-bryggan används för att ge effekt till motorerna på bilen. Insignalen till H-bryggan är en 5-volts signal som kommer från processorn men den är för svag för att kunna driva motorerna. Därför är den försedd med ett extra batteri på 6 volt. H-bryggan ger en drivsignal till motorerna när dess insignal är hög. När insignalen till bryggan är låg flyter ingen ström till den och det går därför ingen ström till motorerna. På så sätt så kan man styra motorernas tillstånd. 6

3.3.4 Motorerna Motorerna som användes för styrning och drivning av bilen var två enkla motorer som följer med legobitarna. Riktningen på motorn bestäms av polariteten på insignalen från processorn. 3.4 Mjukvara för styrning av bilen Mikroprocessorns uppgift är följande: Läs data från mottagaren Gör lämplig kontroll på data för att se om vi har fått fel signaler pga. störningar i omgivningen Beroende på insignal skicka lämpliga signaler till H-bryggan som kontrollerar motorernas effekt Programmeringsspråket som används är C. Dessutom används som vi nämnde innan ett javaprogram på PC-delen för att kommunicera med serieporten. Koden till programmet kan utläsas i bilaga 1. 3.5 Konstruktion av legobilen Bilen har två motorer en för drivning och en för styrning. Styrningen sker genom att vrida de främre hjulen. Vridningen av hjulen sker med hjälp av en motor som är kopplad till främre hjulen. Bilder på bilen kan betraktas nedan. 7

Bild 3.4 Legobil som konstruerades under kursen 4.0 Projektets utveckling Under projektet diskuterade vi olika alternativ för hur problemet skulle lösas. Bland annat diskuterade vi hur vi skulle hantera störningarna från luften då vi sände information från datorn till bilen. Skulle vi använda någon algoritm för feldetektering och felkorrigering. I så fall vilken? En annan metod vore att skicka informationen ett bestämt antal gånger och för att se att ingen störning förekommer så kollar vi att ett antal konsekutiva sekvenser är identiska. Den sista metoden är enkel att implementera dock kräver den snabb hårdvara eftersom data måste kollas flera gånger innan ett beslut kan fattas. I vårt fall med ett långsamt system där vi inte hinner trycka på någon knapp mer ett par gånger per sekund går det bra eftersom processorns klockfrekvens är16 MHz. Detta räcker mer än väl för en sådan långsam applikation. 8

Vi valde därför den sista metoden dvs. att skicka data flera gånger för att se att ett antal konsekutiva sekvenser är samma. Detta är de basala funktioner vi tänkte implementera. I mån av tid skulle vi också effektivisera bilens strömförbrukning. T.ex. är det dumt att låta motorn som vrider hjulen vara igång när knappen för vridning av hjulen är nedtryckt och hjulen befinner sig i ena ändläget dvs. de är vridna till max. Då kan vi stänga av denna motor. På så sätt undviker man batteriförbrukning. Dessa förbättringar implementeras endast i mån av tid. 5.0 Resultat Målet med kravspecifikationen uppnåddes. Vi kunde styra bilen med piltangenterna. Störningarna kunde ej elimineras helt, dock var resultatet tillfredställande. Förslag till förbättringar omfattar alltså lämpliga EMC-åtgärder t ex skärmning av elektroniken något som kan vara svårt att göra i en legobil. Sladdförbindelse bör fungera bra men då handlar det inte längre om trådlöskommunikation. Andra förbättringar omfattar främst kosmetiska detaljer t ex bättre gränssnitt på javaprogrammet som kommunicerar med porten. Den kan vara mera användarvänlig för användaren. Dock var vi intresserade av ett fungerande system och ej en försäljningsprodukt så vi nöjde oss med just ett fungerande prototyp. 5.1 Problem under projektets gång De problem som vi främst stött på har varit av praktiskt karaktär men vi bör även påpeka att dokumentationen av processorn har varit bristfällig något som tillverkaren och ej institutionen får belastas för. Det fanns buggar i AVR Studio 4 som vi dock har löst på ett eller annat sätt. 6.0 Referenser Datablad för de olika kretsarna som nämns i rapporten användes. Alla dessa manualer finns på kursens hemsida i underrubriken Informationsbank. 9

10