Projektrapport i Digitala projekt EITF11. Institutionen för Elektro- och informationsteknik, Lunds tekniska högskola

Relevanta dokument
Digitalt Projekt: Radiostyrd Bil

Digitala projekt - Radiostyrd bil

Pulsmätare med varningsindikatorer

Digitala Projekt(EITF40) - Larm

Thunder s Truck projektrapport

Bilen som inte kan krocka

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

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

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

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

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

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

The Intelligent Timer

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

ELEKTRO- OCH INFORMATIONSTEKNIK. Radiostyrd bil. EITF11 Digitala Projekt. Thomas Bergsten & Marcus Halbauer

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

Växtviskaren EITF11 Digitala projekt VT15, I12

High Core Remote Car X8000 Cool

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

Lunds Tekniska Högskola EITF11 Digitala projekt. Bandspelaren

Pulsmätare Digitala Projekt EITF11

Digitala Projekt VT13. PING-Pong

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

Lunds Tekniska Högskola. I-10 Grupp 11: David Sundström Max Schulz Albert Lundberg Handledare: Bertil Lindvall

Digitala Projekt (EITF11)

The Secure Light. Digitala Projekt EITF11. Hanna Tinglöf, I-12 Anna Horvath, I-12 Filippa Österlin, I-12. Handledare: Bertil Lindvall

Lunds Tekniska Högskola Elektro- och informationsteknik Digitala projekt (EITF11)

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

Digitala projekt Linjeföljande bil

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

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

EITF11. WormFight. Axel Eriksson, Felix Geuken Handledare: Bertil Lindvall EITF11

Projektrapport i Digitala System

EITF11 - Digitala projekt. Hastighetsmätare. Hugo Backmyr Mattias Karlsson

Digitala Projekt(EITF40) - Larm

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

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

Effektpedal för elgitarr

Helena Harrysson och Linnéa Wickberg

Projektrapport - Roterande digital LED-klocka

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

DIGITALA PROJEKT (EITF40) Fartmätare

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors

EITF11: Bandkanon Grp 05

RAPPORT: DIGITALA PROJEKT

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

EITF40 - RFID-terminal. Joakim Marculescu (dt08jm6), Eric Johansson (dt08ej6)

Digitala projekt Elektro- och informationsteknik

Linjeföljare Digitala projekt Johan Engström e02je Henrik Persson e02hp

Digitala Projekt (EITF11) Hemlarm

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

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

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

Gustaf Backman, Anton Nystedt, Nicholas Peebo Battleships. Lunds tekniska högskola. EITF11 Digitala projekt

DIGITALA PROJEKT Väderstation

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

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

EITF11 Digitala Projekt TIC TAC TOE. Lukas Ljungblom & Johan Lyckenvik I-13 Handledare: Bertil Lindvall

Projektrapport - Feststation

Rapportsammanfattning. Optima Sous Vide

TEMPERATURMÄTARE MED GRAFRITARE

Digitala Projekt EITF11 Grupp 9 Projektarbete Hanna Bondesson Marcus Skog. Reaktionsspel EITF11

Datorteknik 1 (AVR 1)

Datorprojekt, del 1. Digitala system 15 p

Feeding Daisy. EITF11 Lunds Tekniska Högskola. Grupp 12: Pontus Akervall Louise Landare Anton Schölin. En automatisk blomvattnare

Elektro och Informationsteknik LTH. Laboration 3 RC- och RL-nät i tidsplanet. Elektronik för D ETIA01

Programmera i teknik - kreativa projekt med Arduino

Projektrapport Målgång

GPIO - General Purpose Input Output

Studera databladen för LCD på sid 4, 5, 7, 8, 14, 18, 19, 20 och 23. Datablad finns på kurshemsidan.

Liftmaestro. Lunds Tekniska Högskola Elektro- och informationsteknik. Olle Gemfors, I13 Dayanand Sagar, I13 Mattias Wendler, I13

GPIO - General Purpose Input Output

#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned char num;

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

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Mekanisk solros, Digitala projekt(edi021) Kristoer Nordvall, Stefan Windfeldt, Inlämmnad: 4 december 2006

Digitala Projekt: Digitala Projekt, EITF11 - VT17 Oscar Ahlgren, Patrik Lorentsson och Sten Hellberg Handledare: Bertil Lindvall

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN

Labbrapport - LEGO NXT Robot

Det finns en handledning till kortet på hemsidan. AVR STK500.

Väderstation. Digitala Projekt EITF11 Institutionen för Elektro- och Informationsteknik Lunds Tekniska Högskola

Laborationsrapport av robotprogrammering

Elektro och Informationsteknik LTH. Laboration 5 Operationsförstärkaren. Elektronik för D ETIA01

Whac A mole. Ett rektionstest i kursen Digitala Projekt EITF11 utfört av: Axel Spångberg I10 Marcus Witting I10. Handlett av: Bertil Lindvall

Digitala System Projekt - EITA15 VT *SUPER DUPER KLOCKAN*

LOOKY LUKE. Caroline Hellström och Ville Orlander Arvola Industriell ekonomi I10. - Att välja en lyckosam väg EITF11 Digitala projekt

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Accelerometer. Rikard Ekström Mattias Kindborg. Informationsteknologi Lunds Universitet

WALL E. WALL EVADER EDI021 DIGITALA PROJEKT

AVR 5. Styrning av trafikljus. Digitala system 15 p

AVR Studio 4 Och AVRFLASH

Robotfotboll med Arduino

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

PROJEKT STAFFAN STALLEDRÄNG

Spänningsstyrd Oscillator

LTH. EITF11- Digitalaprojekt. Projektrapport WEB

JF-Link. Trådlös elmanövrering av hydraulik. Instruktionsbok. Bruksanvisning i original

Projektrapport. Till Projektet Bluetoothstyrd bil

Transkript:

RADIOSTYRD BIL Projektrapport i Digitala projekt EITF11 Institutionen för Elektro- och informationsteknik, Lunds tekniska högskola Victor Girardin (I-10), Rickard Olsson (I-10) & Staffan Theander (I-09) Handledare: Bertil Lindvall 20 maj 2013

Abstract This project was made in the digital projects course, EITF11, at LTH during the spring of 2013. The purpose of the course is to give students a hands-on introduction to electronic and digital systems development, through the means of building a electronic device of some kind. Our choice was to build a simple car controlled by a remote control. The requirements were that it would be able to drive forwards, backwards, right and left after receiving commands from the remote control. This report will give a summary of the construction and programming period, and in it we discuss some of the problems we encountered and how we solved those. In hindsight it has been a great experience which we all agree has been very rewarding.

Innehåll 1 Inledning 2 2 Teori 2 2.1 Kravspecifikation............................ 2 2.2 Hårdvara................................. 3 2.3 Mjukvara - hjälpmedel......................... 4 2.4 Mjukvara - skriven........................... 4 2.4.1 Bilenhet............................. 4 2.4.2 Kontrollenhet.......................... 5 3 Metod 5 3.1 Förberedelser.............................. 5 3.2 Idégenerering och framtagning av kravspecifikation........ 5 3.3 Kretsschema............................... 5 3.4 Byggande................................ 6 3.5 Kodning................................. 6 4 Resultat 7 5 Diskussion 7 6 Referenslista 8 A Kod 9 A.1 Bilenhet.................................. 9 A.2 Kontrollenhet.............................. 12 B Kretsscheman 14 B.1 Bilenhet.................................. 14 B.2 Kontrollenhet.............................. 15 C Bilder 16 C.1 Bilenhet.................................. 16 C.2 Kontrollenhet.............................. 17 1

1 Inledning Med det här projektet avsågs att öka förståelsen för ellära, elektronik och programmering i C, men framförallt i drivandet av ett digitalt projekt. Projektet gick ut på att bygga och programmera en enkel radiostyrd bil enligt nedanstående kravspecifikation och under processen utveckla den problemlösande förmågan. De största svårigheterna bestod i att förstå det omgivande bruset av radiosignaler och att hitta ett sätt att anpassa radiokommunikationen därefter. Detta löstes genom att kommunicera med signalstyrka som urskiljande attribut. På grund av tidskrävande arbete med radiokommunikation begränsades bilen till att uppfylla de mest basala funktionerna som att köra framåt, bakåt och svänga. Rapporten syftar till att redovisa projektets utförande och resultat samt diskutera lärdomar och bilens förbättringsmöjligheter. För att underlätta läsning och förståelse finns även en teoridel som beskriver hårdvara och mjukvara som använts och skapats under projektet, samt bilagor för noggrannare studier av resultat och utförande. Författarna hoppas bjuda på intressant läsning för parallellt läsande kursdeltagare och underlätta arbetet för kommande kursdeltagare. 2 Teori 2.1 Kravspecifikation De ursprungliga kraven såg ut enligt följande: 1. Bilen ska kunna köra framåt, bakåt och kunna svänga vänster och höger. 2. Bilen ska kunna bromsa. 3. Bilen ska styras från en extern styrplatta via radiosignaler. 4. Bilen ska ha en tuta eller en högtalare av något slag. 5. Bilen ska utrustas med blinkers. Respektive blinker ska aktiveras när bilen svänger. På grund av tidsbrist, till följd av stora problem med att få radiosändaren att fungera tillförlitligt, utgick krav 4. 2

2.2 Hårdvara 2 st. processorer, ATmega16: 8 bitars mikrokontroll med 16 Kbyte programmerbart flashminne. Processorn har 40 pinnar, varav pinne 3 och 4 (AIN0 resp. AIN1) visade sig vara speciellt intressanta för projektet. 2 st. radiosändare/mottagare (433 MHz RF Tranceiver(Parallax)): Fungerar både som mottagare och sändare av radiosignaler på frekvensen 433 MHz. Tranceivern har sex pinnar, bland annat en för att mäta signalstyrkan (RSSI). 1 st. Spänningsregulator (LP3852ET-5,0): Reglerar spänningen från 6V in i komponenten till 5V ut från komponenten. Komponenten är essentiell då processorn kräver 5V. 1 st. Dubbel H-brygga (L298n): Består av två bryggor som styr varsin motor. H-bryggan styrs av logiska signaler från processorn men får samtidigt en högre spänning direkt från batteriet(6v) som sedan skickas vidare till motorerna. Varje brygga har tre pinnar anslutna till processorn, en enable och två input. Input styr vilket håll som hjulen ska snurra medan en aktiverad enable-pinne medför att motorn får ström. 2 st. 6V motorer: Två motorer sammankopplade genom en plastplattform. Till motorerna är larvfötter kopplade som medför bilens framfart. 1 st. 6V batteri: Fem stycken 1,2 V laddningsbara seriekopplade batterier. 1 st. Debugger (AVR JTAGICE mkii): Används för att ladda upp exekverbar kod på processorerna, med hjälp av AVR studio 4. Dessutom användes fyra knappar, tre lysdioder samt talrika resistorer och kondensatorer med olika stora motstånd respektive kapacitanser. 3

2.3 Mjukvara - hjälpmedel AVR Studio 4: Programmet möjliggör kompilering och överföring av kod, skrivet i C i projektet, till processorerna. Dessutom underlättas testning av processorernas kopplingar till andra hårdvarukomponenter genom att det manuellt går att aktivera pinnar på processorn. Power Logic Program för att rita kretsscheman. 2.4 Mjukvara - skriven 2.4.1 Bilenhet main: Main-metoden innehåller en oändlig loop som ständigt tar emot och behandlar signaler via metoden readbits (se nedan) och sedermera motorcontrol (se nedan). readbits: I metoden readbits jämförs och matchas antalet ettor per tusen klockcyklar mot olika kommandon i motorcontrol. Dessutom styrs lamporna(vänster och höger) i metoden genom att tillhörande pinnar aktiveras i samband med att vänsteroch högerkommandon skickas till motorcontrol. motorcontrol: Här utförs kommandona framåt, vänster, höger och backa genom att pinnar kopplade till H-bryggan aktiveras i olika kombinationer. I bilaga A.1 ett presenteras hela koden för bilenheten. 4

2.4.2 Kontrollenhet main: Här ligger en oändlig loop som känner av knapptryckningar på kontrollen och beroende på vilken knapp som är nedtryckt skickar vidare olika signaler till sendbits. sendbits: Här skickas olika antal ettor eller nollor beroende på insignaler från mainmetoden. I bilaga A2 presenteras hela koden för kontrollenheten. 3 Metod 3.1 Förberedelser Under den första läsperioden under VT13, besöktes ett antal föreläsningar och laborationer som introduktion till elektronik, ellära och programmering i C, då projektgruppens medlemmar saknade erfarenhet av detta. 3.2 Idégenerering och framtagning av kravspecifikation Projektgruppen var tidigt överens om att det var en radiostyrd bil som skulle byggas, och frågan blev således hur avancerad den skulle vara och vilka funktioner den skulle ha. I slutändan bestämdes det, att en ganska simpel bil skulle konstrueras och att extra funktioner skulle läggas till i mån av tid. Planen visade sig vara klok, då vissa moment tog längre tid än förväntat. 3.3 Kretsschema Första steget i uppfyllandet av kravspecifikationen utgjorde skapandet av två kretsscheman. För tre ingenjörsstudenter med begränsade, för att inte säga näst intill obefintliga kunskaper inom elektronik och ellära blev detta en utmaning. Datorprogrammet, Power Logic som var avsett att underlätta arbetet, var inte så lättbegriplig och utgjorde till att börja med egentligen snarare ett hinder än ett hjälpmedel. Men med ständigt ökad förståelse för både program och ellära, uppdaterades och förbättrades kretsscheman kontinuerligt till att i slutet av projektet gestalta modeller av en fungerande radiostyrd bil med tillhörande styrenhet. 5

Det ska tilläggas att figurerna i kretsscheman (se bilagorna B1 och B2) inte alltid motsvarar den enhet som det faktiskt är, detta beroende på bristande databas i Power Logic. 3.4 Byggande Precis som med kretsschemat så ändrades och uppdaterades den fysiska designen kontinuerligt. Den första versionen av grundstrukturen stod färdig tre veckor efter projektstart. Den fungerade dessvärre inte alls. Bland annat insåg gruppen att knapparna inte fungerade som trott och att radiokommunikationen inte fungerade. Det senare berodde dels på störningar i luften i e-huset och dels på den inte allt för högt upplevda kvaliteten på sändaren/mottagaren. Efter att ha löst problemet med knapparna och testat en tre - fyra sätt att lösa radiokommunikationen på, stod den slutgiltiga designen klar i början av vecka sex. Den stora skillnaden gentemot ickefungerande konstruktioner, var att RSSI-pinnen på radiomottagaren kopplades till en av de spänningsjämförande pinnarna (AIN0 och AIN1) på processorn. 3.5 Kodning I och med problemen med radiokommunikationen, skrevs ett stort antal versioner av koden till både bilen och sändaren. Till en början fanns tron att det skulle gå att skicka bokstäver (i form av bytes) med hjälp av USART, men det visade sig vara en falsk förhoppning. Nästa försök handlade om att bara räkna ettor och nollor från den skickade data, men då uppstod det stora problem i form av störande brus. För att hantera bruset skrevs diverse kalibreringsmetoder och därpå beroende metoder för att hantera procentandelar ettor. Detta visade sig fungera till den grad att det gick att skicka två skilda kommandon, dock osäkert och med varierande resultat. Till slut löstes problemet med hjälp av RSSI-pinnen på radiomottagaren och processorns ACSR-register som möjliggjorde det att jämföra två pinnars spänning. Registrets ACO-bit sattes till high om första pinnen hade högre spänning än den andra, och till low om det var omvänt förhållande. En av jämförelsepinnarna kopplades därför till radiomottagarens RSSI-pinne och den andra kopplades med hjälp av ett par resistorer till en ganska konstant spänning på runt 1 V. Eftersom spänningen på RSSI-pinnen var på mellan 0,6 och 0,8 V då kontrollenheten inte skickade några signaler, men ökade till ca 1,5 V då den faktiskt skickade, gick det att avgöra om kontrollenheten försökte kommunicera eller inte, genom att avläsa ACO-biten. Som kommunikationsprotokoll användes en enkel metod som 6

gick ut på att skicka ett bestämt antal ettor (Kontrollenheten kommunicerar) per 1000 klockcyklar. Eftersom bilen endast skulle ha 6 (fick 5 till slut) kommandon gick det bra att låta bilens processor utföra samma operationer inom stora intervall av antal mottagna ettor. Sändare skickade därför lika många ettor som motsvarade intervallets mitt, vilket medförde en ganska säker och störningsfri kommunikation. Tester visade att 1000 klockcyklar var mer än tillräckligt, men då 1000 klockcyklar motsvarade en i sammanhanget försvinnande liten tid, beslöts det att kommunikationen fick jobba med de ursprungliga 1000 klockcyklarna. 4 Resultat Eftersom radiokommunikationsbiten krävde mer tid än väntat, togs en funktion bort, nämligen tutan, då detta inte hanns med. Annars uppfylldes samtliga krav och en färdig prototyp för en radiostyrd bil skapades. Bilen styrs med hjälp av fyra knappar på en stationär kontrollenhet och fungerar på ett par meters avstånd från kontrollenhetens radiosändare. Signalen når bilens radiomottagare även om de skickas genom föremål av inte allt för tjocka material, men fungerar som bäst då sändaren riktas direkt mot bilens mottagare utan att något är i vägen. Tack vare bilens larvfötter klarar den av lättare terrängkörning. Den för projektet kritiska biten, radiokommunikationen, löstes med signalstyrkevariationer istället för att avläsa bit-sekvenser från mottagarens datapinne. Koden är kort och koncis, dels då bilen inte har så många funktioner och dels för att koden är skriven med avseende på signalstyrka och dessutom inte hanterar bokstäver eller andra bit-sekvenser. Kommandon skickas från kontrollenheten som andelar ettor per tusen klockcyklar. Med den koden finns det möjlighet att öka antalet olika kommandon och därmed funktioner om man skulle vilja. 5 Diskussion Efter genomförandet av kursen Digitala Projekts praktiska del, kan det konstateras att tre inom området okunniga studenter har lyckats med uppgiften att konstruera en radiostyrd bil. Vägen dit var allt annat än rak, men medförde utmaningar och frågeställningar som löstes med varierande framgång. Först och främst har förståelsen för elektronik och ellära gått från näst intill obefintlig till duglig gällande utförande av enklare projekt inom ämnena. Av större vikt är de nya erfarenheterna och upplysningarna kring hur information tas fram och sållas vid arbetet med ett digitalt projekt samt hur ett projekt, fullständigt utan administrativ handledning, startas, drivs och avslutas. 7

Tack vare handledarens ovilja att svara på icke-konkreta frågor, har även förmågan att ställa just konkreta frågor förbättrats. Detta medförde föga överraskande att de flesta problemen gick att lösa utan handledarens hjälp och gav även insikten att konkretisering och formulering av problem är otroligt viktigt. Gällande projektets innehåll, fanns det egentligen bara en större flaskhals. Den utgjordes av problemen kring radiokommunikationsenheterna. Respekten och förståelsen för störningar i signaler har ökat men även tron på den egna problemlösande förmågan. Hade möjligheten och tiden funnits till att utveckla bilen vidare, finns det många förbättringar som kan göras. Bland annat kan ett snävare protokoll för radiokommunikationen skrivas för att dels öka hastigheten på kommandons utförande och dels för att lägga till funktioner. Funktionerna som ligger närmast till hands, är möjligheten att reglera hastigheten och att det ska gå att trycka på två knappar samtidigt så att det t.ex. går att backa och svänga samtidigt. Vidare hade blinkerfunktionen kunnat förbättras så att oönskade blinkningar tas bort och kontrollenheten hade kunnat göras batteridriven. Sammanfattningsvis, är det tre nöjda studenter med blodad tand, som ser fram emot påföljande kurser inom samma område. Det har varit en lärorik period, med nya lärdomar som upplevs som mer värdefulla inför arbetslivet, än de som fås av mer teoretiska kurser. 6 Referenslista ATmega16 (processor), datablad: http://www.atmel.com/images/doc2466.pdf L298N (H-brygga), databad: https://www.sparkfun.com/datasheets/robotics/l298_h_bridge.pdf Transceiver, datablad: http://www.wulfden.org/downloads/manuals/27982-433mhzrftransceiver-v1. 1.pdf Spänningsregulator, datablad: http://www.eit.lth.se/fileadmin/eit/courses/edi021/datablad/analog/ voltage/lp3855.pdf 8

A Kod A.1 Bilenhet 1 # include <avr / i o. h> # include < u t i l / delay. h> 3 # define F_CPU 1000000UL i n t speed ; 5 void readbits ( i n t counter_1 ) { 7 i f ( counter_1 > 200 && counter_1 < 400) { PORTC = (1 << PC0) ; 9 motorcontrol ( 2 ) ; else i f ( counter_1 > 400 && counter_1 < 600) { 11 motorcontrol ( 1 ) ; else i f ( counter_1 > 600 && counter_1 < 800) { 13 PORTC = ( 1 << PC1) ; motorcontrol ( 3 ) ; 15 e l s e i f ( counter_1 > 800 && counter_1 < 1000) { motorcontrol ( 4 ) ; 17 else { PORTC = 0x00 ; 19 motorcontrol ( 0 ) ; 21 23 void motorcontrol ( i n t cmd) { 25 i f (cmd == 1) { PORTD = 0 b10110100 ; 27 i f ( speed == 1) { PORTD = 0 b10110100 ; 29 speed = 0; else { 31 PORTD = 0x00 ; speed = 1; 33 else i f (cmd == 2) { 35 PORTD = 0x30 ; i f ( speed == 1) { 37 PORTD = 0x30 ; speed = 0; 39 else { 9

PORTD = 0x00 ; 41 speed = 1; 43 else i f (cmd == 3) { PORTD = 0x84 ; 45 11 i f ( speed == 1) { PORTD = 0x84 ; 47 speed = 0; 49 else { PORTD = 0x00 ; 51 speed = 1; 53 else i f (cmd == 4) { PORTD = 0 b11011000 ; 55 i f ( speed == 1) { PORTD = 0 b11011000 ; 57 speed = 0; else { 59 PORTD = 0x00 ; speed = 1; 61 else { 63 PORTD = 0x00 ; 65 67 void main ( void ) { 69 DDRC = 0x03 ; ACSR = 0x00 ; 71 i n t counter_1 = 0; i n t totalsum = 0; 73 DDRD = 0xFF ; speed = 0; 75 while ( 1 ) { i f (ACSR & (1 << ACO) ) { 77 counter_1 ++; 79 totalsum ++; i f ( totalsum > 999) { 81 r e a d B i t s ( counter_1 ) ; totalsum = 0; 10

83 counter_1 = 0; 85 11

A.2 Kontrollenhet # define F_CPU 1000000UL 2 # include <avr / i o. h> # i n c l u d e < u t i l / delay. h> 4 void sendbits ( i n t type, i n t times ) { 6 i n t counter = 0; while ( counter++ < times ) { 8 i f ( type == 1) { PORTD = 0xFF ; 10 else { PORTD = 0x00 ; 12 14 16 void main ( void ) { 18 DDRB = 0x00 ; DDRD = 0 x f f ; 20 PORTD = 0x00 ; i n t pressed ; 22 while ( 1 ) { pressed = 0; 24 i f ( PINB & 0x01 ) { sendbits ( 1, 500) ; 26 sendbits ( 0, 500) ; pressed = 1; 28 i f ( PINB & 0x02 ) { / / PB1 h i 30 sendbits ( 1, 300) ; sendbits ( 0, 700) ; 32 pressed = 1; 34 i f ( PINB & 0x04 ) { / / PB2 h i sendbits ( 1, 700) ; 36 sendbits ( 0, 300) ; pressed = 1; 38 i f ( PINB & 0x08 ) { / / PB3 h i 40 sendbits ( 1, 900) ; sendbits ( 0, 100) ; 12

42 pressed = 1; 44 i f ( pressed == 0) { / / No button press PORTD = 0x00 ; 46 48 13

B Kretsscheman B.1 Bilenhet Figur 1: Kretsschema till bilenheten i färdigbyggt skick. 14

B.2 Kontrollenhet Figur 2: Kretsschema till kontrollenheten i färdigbyggt skick. 15

C Bilder C.1 Bilenhet Figur 3: Bild på bilenheten i färdigbyggt skick. 16

C.2 Kontrollenhet Figur 4: Bild på kontrollenheten i färdigbyggt skick. 17