Digitala Projekt (EITF11) Hemlarm



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

Digitala Projekt(EITF40) - Larm

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

Växtviskaren EITF11 Digitala projekt VT15, I12

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

Digitala Projekt (EITF11)

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

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

Digitala Projekt(EITF40) - Larm

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

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

Digitala Projekt (EITF11) Larmanläggning

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

DIGITALA PROJEKT - EITF11

1 Bakgrund 4. 2 Kravspecifikation Definitioner Grundläggande krav Användarfall 5

The Phenomenal Doorbell Bilaga 2. Källkod

The Intelligent Timer

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

Rafiki Wa Kupanda. EITF11, Digitala projekt VT18. Linnea Håkansson, Anton Gunneberg, Ruben Schultz

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

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

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

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

Thunder s Truck projektrapport

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

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

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

EIT. Digitala projekt EITF11. Larmanläggning. Handledare Bertil Lindvall Anna Lindberg I-11 Caroline Vitasp I-11 Eric Eliason I-10

Digitala System Projekt - EITA15 VT *SUPER DUPER KLOCKAN*

Projektrapport - Roterande digital LED-klocka

Pulsmätare Digitala Projekt EITF11

Lunds Tekniska Högskola EITF11 Digitala projekt. Bandspelaren

Effektpedal för elgitarr

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

Källkod. #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define green_diode PD5. #define RS PD4

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

Projektrapport Målgång

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

Kla ggvisarskylt. -med en underton av rassel. av Jonathan So nnerup & Gabriel Jo nsson

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

TEMPERATURMÄTARE MED GRAFRITARE

Digitala projekt Linjeföljande bil

High Core Remote Car X8000 Cool

Rapportsammanfattning. Optima Sous Vide

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

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

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

Bilen som inte kan krocka

Jan Babor och Oscar Ågren Handledare: Bertil Lindvall 5/16/2011

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

DIGITALA PROJEKT (EITF40) Fartmätare

EITF11: Bandkanon Grp 05

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

DIGITALA PROJEKT Väderstation

Projektrapport i Digitala System

Pulsmätare med varningsindikatorer

Pulsmätare. EITF11 Digitala Projekt VT15. Grupp 9: Emma Albertz, Mathilde Hagander & Alexandra Mansner Handledare: Andreas Johansson & Bertil Lindvall

SIMON SAYS Projekt i EITF11 Digitala Projekt

Digitala Projekt VT13. PING-Pong

Digitala projekt, EITF11 - Rapport Handledare: Bertil Lindvall. Fredrik Nylund (ine12fny) Johan Ekman (ine11jek) Olof Wikman (ine11owi)

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

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

Rörelse- och temperaturkänsligt larmsystem

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

EITF11 - Digitala Projekt

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

Projektrapport - Feststation

Rapport Digitala Projekt EITF Grupp 12 Elin Blomstergren, Victor Sundgren Handledare: Bertil Lindvall. Fyra i rad

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

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

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

Väderstation. EITF11, Digitala projekt RAPPORT. Isabella Bergvik, Emma Sandén & Hanna Åberg

Användarmenyn. S k r i v d i n k o d...

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

Digitalt Projekt: Radiostyrd Bil

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

Datorteknik 1 (AVR 1)

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

Digitala projekt VT Myran

Datorprojekt, del 1. Digitala system 15 p

Kontrollskrivning Mikrodatorteknik CDT S2-704

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

JOFEN-Prototypes. Målsökande pansarvagn. Projektarbete i Kursen EITA15. Jonatan Claesson, Olle Jonasson, Felix Rödén, Edvin Rossi & Nils Olén

RAPPORT: DIGITALA PROJEKT

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

Projekt Digitala system. Rörelsekänsligt Larmsystem

LTH. EITF11- Digitalaprojekt. Projektrapport WEB

Digitala projekt - Radiostyrd bil

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

LTH Ingenjörhögskolan vid Campus Helsingborg. Mastermindspel

THE VISUAL EGGTIMER. Skola: Lunds Tekniska Högskola Institution: Elektro- och informationsteknik Kurs: Digitala projekt (EITF11)

Helena Harrysson och Linnéa Wickberg

Projektrapport - RoboWalter

Programmering av inbyggda system

Aml Abbas, Ali Darwish, Ehsanolah Hafezi, Fatima Zahra Doussi Grupp 15

/* * dancing3.c * * Created: :53:20 * Author: digpi10 */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.

Tentamen PC-teknik 5 p Lösningar och kommentarer

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

GPIO - General Purpose Input Output

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå.

Transkript:

Digitala Projekt (EITF11) Hemlarm Karl Nordenstorm, I-12, gem12kno 2014-05-16 Handledare: Bertil Lindvall

Sammanfattning Den här rapporten beskriver arbetet bakom hur en prototyp för ett hemlarm har utvecklats inom ramen för kursen Digitala Projekt. I stora drag innefattade arbetet val av komponenter, ritning av kopplingsschema, hopmontering av prototyp, framställning av mjukvara samt testning. Eleverna på kursen hade viss förkunskap inom programmering, men liten eller ingen erfarenhet av att med hjälp av programmering hantera elektrotekniska komponenter. Den största utmaningen under projektet var att tillgodogöra sig nog med information för att kunna hantera komponenterna. Vid denna rapports skrivande är prototypen ännu inte färdig, men utvecklingen närmar sig slutskedet. En viktig lärdom från projektet är att det är möjligt att med relativt små förkunskaper tillverka en fungerande elektroteknisk produkt.

Innehållsförteckning Sammanfattning... 2 Innehållsförteckning... Error! Bookmark not defined. Inledning... 4 Kravspecifikation... 4 Hårdvara... 4 Kopplingsschema... 5 Processor... 4 Display... 4 Knappsats... 4 Encoder... 4 IR-sensor... 5 Övriga komponenter... 5 Mjukvara... 7 Problem under arbetet... 7 Slutsats... 8 Bilaga A Preliminär kod... 8 Referenser... 14 Datablad... 14 Internetkällor... 15

Inledning Kursen Digitala Projekt har bland annat som mål att eleverna ska lära sig att realisera digitala system av låg och medelhög komplexitet. Just realisera är ett ord som beskriver vad den här kursen gått ut på. Man har haft som uppgift att konstruera en fungerande prototyp av en elektronisk produkt. I detta projekt ska den färdiga prototypen efterlikna ett hemlarm, med en kretssensor och en IRsensor. I ett verkligt larm skulle kretssensorn monteras mellan t.ex. ett fönster och fönsterkarmen, så att kretsen blev bruten om fönstret öppnades. Man kan kommunicera med larmet m.h.a. en knappsats. Med denna kan man sätta på larmet, och med hjälp av en säkerhetskod kan man stänga av det. Larmet har en grön och en röd LED. Den röda lyser för att visa när larmet har gått, den gröna lyser för att visa att larmet är påslaget. Kravspecifikation Det första som gjordes i projektet var att fastställe en kravspecifikation. Specifikationen är långt ifrån heltäckande. En grön ledlampa ska alltid lysa när larmanläggningen är aktiverad, och den ska inte lysa när larmet är avaktiverat. Via en display ska larmanläggningen kunna ge användaren några meddelanden, så som att den informerar om att den slagits på. När larmanläggningen avaktiveras så ska larmet stängas av Larmanläggningen ska kunna avaktiveras genom att man slår in en säkerhetskod. Larmanläggningen ska kunna aktiveras via knappsatsen. Larmet ska utlösas i fall en värmedetektor registrerar en hastig temperaturförändring. Larmet ska utlösas om en kretsdetektors krets blir bruten. När larmet går ska en röd LED-lampa slås på. Hårdvara Processor Valet av processor var en ATMEGA16. Valet fattades baserat på handledarens rekommendation. Via en JTAG överförs mjukvaran till processorn. Display Större delen av systemets kommunikation med användaren sker via en display. Det är via denna som användaren ges instruktioner. Displayen som används är en alfanumerisk Dot-Matrix LCD Units. Knappsats Användaren kommunicerar med systemet via en knappsats. Encoder Encodern känner av när användaren trycker på en av knappsatsens knappar, och meddelar CPUn vilken knapp som blev nedtryckt. Encodern som används i projektet är en MM54C922/MM74C922 16-Key Encoder.

IR-sensor En IR-sensor används för att övervaka om någon rör sig framför sensorn. Då sensorn känner en temperaturförändring sänder den en signal till CPUn. IR-sensorn som används är en PIR Sensor (#555-28027). Valet av IR-sensor baserades på en rekommendation från handledaren. Övriga komponenter Utöver de ovan nämnda komponenterna, så användes en rad mindre avancerade komponenter. Däribland två LED-lampor vilka används för att meddela användaren vilket tillstånd larmet befinner sig i. Den kretssensor som används är en krets, dvs. en kabel som bryts manuellt. Kondensatorer och motstånd används för att hantera de övriga komponenterna. Valet av dessa utgick från övriga komponenters behov. Kopplingsschema Kopplingsschemat i figur 1 fastställdes inför monteringen. I efterhand gjordes två förändringar kabeln från processorn till Data Available på knappsatsen respektive kabeln från processorn till pinnen för utsignalen från IR-sensorn, flyttades till PD2, respektive PD3 på processorn. Detta för att kunna använda interrupts. Figur 1 Kopplingsschema

Figur 2 Bild av prototyp

Figur 3 Bild av prototypens undersida Mjukvara I det här projektet gjordes en preliminär variant av mjukvaran mycket tidigt, som en del av processen att läsa in sig i hur komponenterna fungerar. Allt eftersom så har mjukvaran ändrats, men det har aldrig gjorts någon omskrivning från scratch. På grund av den här arbetsproessen så har den ingen genomtänkt design. Mjukvaran är i skrivande stund helt färdig. Den senaste varianten av källkoden finns i Bilaga A. Problem under arbetet Det största problemet har varit att förstå hur komponenterna fungerar. Man hade datablad över produkterna till sitt förfogande, men många av dem är för tunglästa och för långa för att man ska kunna ta till sig texten direkt. Jag handskades med det här problemet genom att hitta exempel på internet över hur andra har hanterat komponenterna i programmering. Efter att ha sett praktiska exempel blev det lättare att identifiera vilka delar av koden som var viktiga att läsa. Jag hade en något olämplig arbetsprocess, som började med att jag hemifrån skrev kod och läste på om komponenterna. Jag borde istället ha arbetat med en komponent i taget, och gå igenom alla stegen från påläsningen till testning. Med en sådan process hade det varit lättare att hålla koll på

En rad praktiska problem uppstod, däribland att en display inte fungerade och att jag under monteringen lät kablarna bli så långa att de ofta trasslar ihop sig (Se figur 3). Vid de ändringar som gjordes efter den huvudsakliga monteringen orsakade detta att det var svårt att komma åt med lödkolv på kretskortet. Ett ytterligare problem detta orsakade var att det var arbetsamt att kontrolera att kablarna var kopplade korrekt. Slutsats I det här projektet har jag hittills lyckats komma en bra bit mot en fungerande prototyp. Under arbetets gång så har det varit utmanande att hitta all relevant information för hur komponenterna ska hanteras, bland den uppsjö av information som finns tillgänglig. Jag har fått praktiska lärdommar som att kablar bör hållas så korta som möjligt, för att undvika att de trasslar ihop sig. Bilaga A Preliminär kod /* * LarmArbetsDok.c * * Created: 2014-05-13 10:17:48 * Author: digpi15 */ #include <avr/io.h> #include <avr/interrupt.h> // #include <util/delay.h> #include <avr/portpins.h> //?? Kommer inte ihåg vad den gör //Attributes int monitormode = 0; // 0 = not active, 1 = active int soundalarm = 0; // 0 = not active, 1 = active char input; // används som input char inputcode[4]; // char deactivationcode[4]; int cursor; // Den cursor som avgör var I inputcode man skriver char inputtochar(int); /// Metoder //void //TEMPwriteString(char inputstring[]); // Jag vet inte varför man måste deklarera allt på det här sättet void LCDSetup(); void CPUSetup(); void delay(int); void main(void) // Assigning values delay(200); cursor = 1; // Den cursor som avgör var I inputcode man skriver inputcode[1] = 'x'; inputcode[2] = 'x'; inputcode[3] = 'x';

inputcode[4] = 'x'; deactivationcode[1] = '0'; deactivationcode[2] = '4'; deactivationcode[3] = 'A'; deactivationcode[4] = 'B'; CPUSetup(); LCDSetup(); // Skriv "Click 0 to activate" writechar(0b01000011);//c writechar(0b01001100);//l writechar(0b01001001);//i writechar(0b01000011);//c writechar(0b01001011);//k writechar(0b00100000);//_ k writechar(0b00110000);//0 writechar(0b00100000);// writechar(0b01010100);//t _ writechar(0b01011111);//o 1 writechar(0b00100000);//_ 3 writechar(0b00110001);//a t writechar(0b00110011);//c i writechar(0b01010100);//t v writechar(0b01001001);//i writechar(0b01010110);//v writechar(0b00110001);//a writechar(0b01010100);//t writechar(0b00000101);//e while(1) /*while(1) ; if(input = '1') monitormode = 1; //TEMPwriteString("Monitor Mode activated"); // Loopen där övervakning sker, och i vilken larmet kan avaktiveras while (monitormode) while (soundalarm) // Den här loopen stängs via ett interrupt setpin("led_red", 1); //TEMPwriteString("Alert");

*/ //--- --- //CPUSetup Jag vill säga till portarna vad de är till för på något sätt //--- --- void CPUSetup() DDRA = 0xC5;//11000100; // OK DDRB = 0xFF; // 11111111 // OK DDRC = 0x00; // OK DDRD = 0xE0; //11100000; // OK MCUCR = 1<<ISC01 1<<ISC00 0<<ISC11 1<<ISC10; //http://www.avr-tutorials.com/interrupts/avr-external-interruptcprogramming GICR = 1<<INT0 1<<INT1; sei(); //--- // LCDSetup // Se sida 15 LCD KLAR //--- void LCDSetup() //e 1 PORTB = 0x38; //Function set //E 0 //E 1 delay(10); //Wait //E 0 //E 1 delay(10); //e 0 //e 1

delay(10); //e 0 //e 1 delay(10); PORTD = 0x08; //Display off //e 0 //e 1 delay(1); PORTB = 0x01; //Display clear //e 0 //e 1 delay(4); PORTB = 0x06; //Entry mode set //e 0 //e 1 delay(1); PORTB = 0x0D; //Display on, curser off, blink on //e 0 //e 1 delay(1); //--- //LCDCursor Denna hanterar cursorn. Flyttar den till 0 KLAR //--- void LCDCursor() screenmode(0x02);//0000000010); // Sida 17 Sista tecknet är dont care //--- //Whipe the screen // sida 16 LCD

KLAR //--- void whipescreen() screenmode (0x01);//0000000001); // Sida 17 void writechar(char input) // Måste jag inte deklarera vad för vektor det är? /// Write char see CG RAM/DD RAM Data Write page 19 PORTD = 0xA0;//setPin("LCD_RS", 1);setPin("LCD_R/W", 0); setpin("lcd_e", 1); PORTB = input; // Notera input ska vara i HEXA delay(10); //setpin("lcd_e", 0); Skulle kunna vara 0x80 //TEMP//TEMPdelay_ms(100); //--- // ScreenMode Ändrar LCDns läge KLAR //--- void screenmode(char mode) //setpin("lcd_r/w", 0); setpin("lcd_rs", 0); setpin("lcd_e", 1); PORTB = mode; // Skickar informationen om läget på port B //setpin("lcd_e", 0); delay(100); //setpin("lcd_e", 1); //--- // Lyssna efter input från IR SENSOR KLAR //--- ------------- ISR(INT1_vect) // Värme if (monitormode = 1) soundlarm = 1; //---

// Lyssna efter input från keypad Den här metoden hanterar kodinsättningar //--- ISR(INT0_vect) unsigned short int inputs = PINC; // char c = inputtochar(inputs); // if(c == '0') // Turn on monitormode if it was off if (! monitormode) monitormode = 1; else if (c!= '0') if (monitormode) inputcode[cursor] ='c'; writechar('c'); //LCDCursor('+'); cursor ++; if (cursor = 5) // Kolla om koden är rätt if (inputcode == deactivationcode) monitormode = 0; soundalarm = 0; // Här stängs soundalarm av. //TEMPwriteString("Correct Code"); else cursor = 1; //TEMPwriteString("Incorrect Code"); //TEMP//TEMPdelay_ms(1000); whipescreen(); //--- //Interpret input from keypad KLAR

//--- char inputtochar(int input) // Här så har jag redan fått maskinkoden som input. I Main Loop så ska jag koda //code. Input sker till PINC0,1, 2 och 3. // Ska jag skriva binärt eller decimalt? Se sida 4 MMC för tabellen switch(input) case 0xC0: //1100 0000 return '0'; break; case 0xC1: //1100 0001 return '4'; break; case 0xC3: //0010 return 'A'; break; // Notera hoppet case 0xC2: //0100 return 'B'; break; return 'n'; // N = No input. Denna har ingen riktig funktion //--------- // Delay KLAR //--------- void delay(int i) int k; for (k=0;k<i;k++) _delay_loop_2; Referenser Datablad Databladen är tillgängliga via kursens hemsida. 8-bit AVR Microcontroller with 16K Bytes In-System Programmable Flash 555-28027-PIR-Sensor-Prodcut-Doc-v2.2 MM54C922 16-Key Encoder MM54C923 20-Key Encoder Dot-Matrix LCD Units (with built-in controllers) User's Manual

Internetkällor AVR Tutorials. http://www.avr-tutorials.com Stack Overflow. http://stackoverflow.com/ Wikipedia. C (Programming language) http://en.wikipedia.org/wiki/c_%28programming_language%29