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



Relevanta dokument
Digitala projekt rapport

Projektarbete. Nummerpresentatör

DIGITALA PROJEKT Väderstation

Pulsmätare med varningsindikatorer

SMS-Relay. Digital Projects Lund University, Faculty of Engineering. Lund Supervisor: Bertil Lindvall

Digitala projekt - Radiostyrd bil

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

ABAX Föraridentifiering

Datakommunikation med IR-ljus.

CanCom Bluetooth BLUETOOTH V5.6. Specifikation Specification LED. transceiver

Digitala Projekt Konstruktion av Tamagocchi. Av: Oskar Andersson D05 & Danial Rehman D05

Uppmätning, lagring och presentation av samtalstider i det fasta telenätet

Digitala Projekt (EITF11)

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Effektpedal för elgitarr

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Datorsystemteknik DAV A14 Föreläsning 1

Anders Arvidsson ROBOTBESKRIVNING. Roboten på bilden är extrautrustad

HF0010. Introduktionskurs i datateknik 1,5 hp

Systemkonstruktion SERIEKOMMUNIKATION

Instuderingsfrågor ETS052 Datorkommuniktion

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Åtkomst och användarhandledning

Ett väldesignat & slimmat plånboksfodral från WE CHARGE. Tillverkat i konstskin. Snäpp i telefonen i det hårda skalet och låt plånboksfodralet skydda

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

Manual för EQE PLC enhet

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

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

Komma igång med E-Line RIO

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

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

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

Manual. Abelko M-Bus Device Creator (MBDC)

Felsökning av mjukvara

Det finns många typer och former av kapslingar

Datorsystem Laboration 2: Minnesmappade bussar

FIRST LEGO League. Stockholm

Digitala Projekt - Snake Grupp - 7. Erik Ljung, d01elj Erik Simmons, d01es 25 maj 2005

Föreläsningsanteckningar till Konstruktionsmetoder

Installationsanvisning av proximityläsare 1103/2. Mod. 1103/2

Senaste version kan hämtas från Internet i PDF 1 format

HÄR ÄR HUNDEN! Med Followit Hunter behöver du inte längre leta

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum:

Grunderna i stegkodsprogrammering

Att komma igång med FirstClass (FC)!

Hobbyelektronik med Raspberry Pi och Erlang

DAGBOK HB ADVENTURE TEAM. Vårat lag: Jinci, Ida, Jennifer, Felicia Lagledare: Hans

Forskningrapport LAVINER. Varför vi valde den här naturkatastrofen. Laviner

FIRST LEGO League. Härnösand 2012

Östbergsskolans loggbok!

Nokia Bluetooth Headset BH-112 Användarhandbok

Forma komprimerat trä

DAC500 Door Access Control unit

Projektarbete 2: Interaktiv prototyp

F5 Introduktion till digitalteknik

1. Att lyssna 1. Titta på den som talar. 2. Tänk på vad som sagts. 3. Vänta på min tur att prata. 4. Säg det jag vill säga. 1.

Eftersom det endast är en fristående strömslinga man påverkar då man trycker på knappen säger man att omkopplaren i bild 1 är en enpolig omkopplare.

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

Smart Rogic Manual. Robostick Manual

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Modbus. Supportdokument. Lathund för att använda Modbus över RS XXX eller TCP/IP.

SafetyMOB. Installations och användarmanual för. trådlöst nödstopp - dödmansgrepp. SafePort Marine. Dokument: SM_UM_sv Version:

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Predator Digital 3D. Predator Digital 3D. Bruksanvisning. Version 1.0

KRAVSPECIFIKATION. Pontus Brånäs Wojtek Thorn Version 1.1. Status

55200 Inspelningsbar microfon

Teckentavlor. Inställning av styrsätt med programvalsratten

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

4 Laboration 4. Brus och termo-emk

Temperaturregleringssystem

Digital- och datorteknik

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

Beijer Electronics AB 2000, MA00336A,

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert Problemexempel 1

Nokias trådlösa headset (HS-36W) Användarhandbok Utgåva 2 SV

Vad roligt att ni har valt att bjuda varandra på den här timmen.

Innehåll. 1 Inledning 3

Föreläsningsanteckningar 3. Mikroprogrammering II

Slutrapport för Pacman

FIRST LEGO League. Stockholm

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

Utvärdering av föräldrakurs hösten 2013

Kundkategorisering i Rebus

VIKTIG INFO GÄLLANDE OMKOPPLINGEN TILL DET ÖPPNA NÄTET

Klass 6B Guldhedsskolan

Växtviskaren EITF11 Digitala projekt VT15, I12

Lära känna skrivbordet

SMS Switch Butler. SMS-Switch Butler. Toleka AB, Fenixväg 28, Gustavsberg Tel: , fax:

Manual Sportident Onlinekontroll via GPRS

EMN2 växelriktare 2 10 kva

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

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Innehåll 1. Om ScandLarm Air Ladda ner App Starta kontrollpanel Konfigurera App till kontrollpanelen

Teknikprogrammet, inriktning informations- och medieteknik

SVM F4. Integrationsverk. Installationsanvisning

A-del motsvarande KS1

Lathund Milestone 112 Ace

Hantering av begränsat antal skrivningar på Solid State diskar

Digital- och datorteknik

Transkript:

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

Abstract The purpose with this project was to get some understanding how Bluetooth works and how to use it in practical applications. A suitable and fun project is to control a small car with a cell phone using Bluetooth. This report describes the result and development of our project. Hardware and software explination are also included.

2. Inledning...4 3. Specifikation...5 4. Komponenter...6 4.1 Processor...6 4.2 Minne...6 4.3 Logik...6 4.4 Drivkrets...6 4.5 Spänningsomvandlare...7 4.6 Multichipp...7 4.7 Kristalloscillator...7 4.8 Spänningsregulatorer...8 4.9 Bluetoothmodulen...8 5. Konstruktion...9 5.1 Mjukvara...9 5.1.1 Mobiltelefon...9 5.1.2 Bilen...10 6. Resultat / Problem...11 7. Sammanfattning...11

2. Inledning Vi valde att styra en liten egenbyggd bil med en mobiltelefon via Bluetooth. Detta gav oss lite inblick i hur Bluetooth fungerar samt att vi lärde oss en del om hur man konstruerar datorsystem. Mobiltelefonen pratar med ett Bluetooth chip som i sin tur är anslutet till en mikroprocessor av typen Motorola 68008. Det roliga med projektet är att det innefattar hela kedjan från högnivå programmering till lågnivå hårdvara.

3. Specifikation Projektet går ut på att vi vill få en fungerande uppkoppling mellan en mobil av märket Nokia 6600 som innehåller bluetooth och en bluetoothmodul som är placerad på en liten egentillverkad bil. Genom att kommunicera genom det trådlösa gränsnittet blutetooth vill vi kunna styra bilen från mobilen. Båda använder sig av en uppkoppling som heter UART Universal Asynchronous Receiver/Transmitter. Kommunikationen som sker genom standarden UART består av seriell kommunikation och det går att använda sig av fullduplex, men vi var enbart intresserade av att kunna skicka data från mobilen till bluetoothmodulen. För att kunna få en fungerande uppkoppling med bluetooth från mobilen utvecklade vi en programvara i språket J2ME som är snarlikt java fast en mer nerbantad version och som innehåller mer anpassade funktioner för den mobila marknaden.

4. Komponenter 4.1 Processor Motorola 68008 microprocessor För att få ut så mycket som möjligt av projektet använde vi oss av en processor som inte innehåller några extra delar. Alla övriga komponenter blir man då tvungen att adressera. Själva adressbussen innehåller i sig 20 bitar vilket innebär att man kan adressera totalt 1 Mbyte. Datan som skickas mellan processorn och övriga komponenter sker via databussen, den har en storlek på 8 databitar. För att kommunikation överhuvudtaget ska kunna fungera på data bussen måste komponenter kunna gå i tri-state vilket betyder att enheterna blir högohmiga när det inte är adresserade. 4.2 Minne EPROM 27C64 8K x 8 Bit Parallell EPROM RAM 6264 8K x 8 Parallell Bit CMOS SRAM. Programmet som processorn körs på är lagrat i ett EPROM på 8 kbyte. EPROMet är återskrivningsbart, genom att man belyser det så raderar man datan. Vi byggde även in ett ram-minne på kortet för att kunna lagra data ifall vi ville utöka projektet med ytterligare funktioner. 4.3 Logik PALCE22V10 För att få komponenterna att gå i tri-state använder man sig av programmerbara logik kretsar. Genom att man matchar rätt adressering med rätt komponent i logikkresten så bestämmer man vilken komponent man vill ha kontakt med. Vi använde även en logikkrets som enbart hade hand om avbrotten som genereras från multichippet. 4.4 Drivkrets L298 Dual full-bridge driver För att kunna driva motorerna använde vi oss av en drivkrets som klarar av att leverera tillräckligt med ström. Denna styrs i sin tur från utgångarna på multichippet.

4.5 Spänningsomvandlare DM7407N Eftersom multichippet använder sig av en spänning på 5 V och Bluetoothmodulen arbetar vid 3.3 V behöver vi denna krets för att få upp spänningen från 3.3 V till 5 V vid data överföring från Bluetoothmodulen till multichippet. 4.6 Multichipp Multi-Function Peripheral, MK68901 Istället för att använda sig av flera olika chip som enbart innehåller en specifik funktion föll valet på denna enhet som innehåller många olika funktioner som lämpade sig väl för oss. Funktionerna vi använde oss av var i första hand Singel channel full duplex USART för att kommunicera med bluetoothmodulen. Multichippet lämnade i sin tur ett vektoriserat avbrott varje gång vi får indata från bluetoothmodulen som fyller databuffern i multichippet. För att få lite indikation av vad som försegår när vi var uppkopplade mot mobilen använde vi oss av två stycken lysdioder som var kopplade till Output på multichippet. Ena lysdioden indikerar att programmet är igång och flyter på utan problem och den andra lysdioden indikerar ifall vi läser in ett paket som inte är korrekt. För att få rätt baudrate (kommunikationshastighet) mellan multichippet och bluetoothmodulen använde vi oss av en timer på multichippet. Bluetoothmodulen är inställd på att kommunicera i 9.6 KHz och vi ställde in timern därefter. Vi använde även samma timer för att kunna köra bilen i olika hastigheter och för att få olika drivning på hjulen vid svängning. Timern levererar då ett vektoriserat avbrott som vi tog hand om i programmet och delade ner till lämpligt värde för att leverara rätt pulser till drivkretsen. Drivkretsen styr i sin tur motorerna. 4.7 Kristalloscillator EXO-3 För att leverera rätt klockpuls till processorn använde vi oss av en kristalloscillator. Processorn klarar av en max hastighet på 10 MHz och det valde vi att köra på. Även Multichippet är behov av en klockpuls men den klarar av en klockpuls på max 4 MHz. För att få en fungerande puls i denna enhet använde vi oss av en pinne på processorn som delar klockpulsen 10 ggr, alltså körde vi multichippet på 1 MHz.

4.8 Spänningsregulatorer LP 3855 Ultra Low Dropout Regulator 3.3V /5V För att få rätt matningsspänning till komponenterna används två regulatorer. En delar ner spänningen från batteriet som levererar 6 V till övriga komponenter som drivs med 5 V. Bluetoothmodulen drivs i sin tur med 3.3 V och där använde vi oss av en regulator som delar ner spänningen från 5 V. 4.9 Bluetoothmodulen ARF32 Bluetoothmodulen ARF32 klarar av standarden V1.1 Bluetooth standard och den kan hantera en data hastighet på upp till 723 kbps. Data överföringen mellan bluetoothmodulen och multichippet sker genom UART data porten, vilken använder sig av seriell kommunikation. Mellan mobilen och bluetoothmodulen använder vi trådlös UART under kommuniations tjänsten SPP (Serial Port Profile).

5. Konstruktion 5.1 Mjukvara 5.1.1 Mobiltelefon Mjukvaran i mobiltelefonen skrevs i JAVA. Vi skrev en midlet vilket påminner om en vanlig java applet. Vi kunde emulera våran applikation i PCn genom att använda ett program som heter KtoolBar. Programmet hade följande uppgifter: Leta efter Bluetooth enheter (våran bil) Leta efter tjänster på enheten (SPP) Ansluta till enheten Läsa av data från styrspaken på telefonen och skicka data över Bluetooth Vi använde oss av JSR82 vilket är en JAVA standard för att hantera Bluetooth i JAVA. Serial Port Protocol (SPP) är en Bluetooth tjänst som är tänkt att emulera en seriekabel trådlöst man behöver alltså inte bry sig om att informationen skickas i luften och inte i en sladd. När man väl har anslutit till enheten så kommunicerar man genom helt vanliga javaströmmar. Vi valde att lägga in bilder i mobilapplikationen så att den blev lite snyggare. Bilden visar emulatorn som vi körde på PCn. Vi sparade mycket tid på att använde denna då vi slapp att flytta överprogrammet till mobiltelefonen varje gång vi skulle testa.

5.1.2 Bilen Vi skrev all mjukvara i C. Mjukvaran i bilen hade följande uppgifter: Initiera multichippet för avbrott och UART Styra el motorerna med hjälp av ett timer interrupt Läsa in och tolka data från multichippet genom UART interrupt. Initierings processen går ut på att initiera interupterna samt möjliggöra UART kommunikation. Efter initiering går programmet in i en oändlig loop, programmet ligger och väntar på att ett interrupt skall inträffa. När ett timer interrupt inträffar så kan motorernas status ändras beroende på hur snabbt motorerna skall gå. När bilen svänger vänster så drivs vänster hjulet med 100% och höger hjulet med 40%, omvänt vid höger sväng. Processorn får ett avbrott för varje byte som Bluetooth modulen skickar. Kommunikationen till Bluetooth chippet sker via ett protokoll som tillverkaren har skapat. Detta protokoll måste tolkas så att rätt data kan läsas ut. Förutom information som användaren skickar från mobiltelefonen så skickas även annan information som t.ex Connect/Disconnect, Power Save osv. Bilden visar paketstrukturen mellan Bluetooth chippet och CPUn.

6. Resultat / Problem Vi hade flera instabilitets problem med vårat multichip. När vi skrev till register i multichippet så sparades dem inte. När vi läste från registrerna så stämmde inte det med det skrivna värdet. Detta problem stod för den mesta tiden under projektets gång. Den pinsamma lösningen med att vi glömt ett pull-up mostånd kändes besvärlig då vi hade lagt ner mycket tid på detta problem, tackar Bertil som upptäckte detta på 5 minuter. Även Bus Master pinnen på processorn hade vi glömt, detta märktes tydligt då vi inte använde IT68 utvecklingskittet. Även detta problemet löste vi i slut fasen. Slutresultatet blev en bra konstruktion förutom att drivningen på hjulen var för dålig för att få en bra svängradie. 7. Sammanfattning När vi väl började med projektet så var det svårt att få grepp om den totala arbetsmängden man behövde lägga ner. Detta är något som man kommer att kunna uppskatta bättre i framtiden när det vankas ännu större uppgifter som t.ex. examensarbete. Eftersom mycket var nytt för oss båda när det gäller hårdvaru konstruktion, gick det åt mycket tid för att inhämta rätt information från datablad. Detta är något som man har fått värdefull träning i under kursen gång och kommer att ha stor nytta av i framtiden. Under kursen har man även stött på en hel del problem och finna lösningen till dessa har gett värdefull erfarenhet i problemlösning. Att få utveckla en idé och sen verkligen få sätta sina kunskaper i praktiken och även lära sig mycket nytt under resans gång är nåt som har uppskattats stort. Denna kurs rekommenderas varmt till alla dom som vill få goda kunskaper i hur man går till väga för att bygga en egen digitalkonstruktion. Vi vill avluta med att tacka vår handledare Bertil Larsson för all hjälp vi har fått och pushning i rätt riktning under kursens gång.