Bau einer Alarmanlage PSS



Ähnliche Dokumente
Mikrocontroller - Schnelleinstieg

Umwandelung einer Physikalischen Größe in eine Elektrische

Datensicherung. Beschreibung der Datensicherung

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

Mitarbeiter-Alarm. 1x Taster mit Kabel zum Anschluss an den seriellen Com-Port (optional) 1x Installationsprogramm auf CD 1x Lizenz

Stepperfocuser 2.0 mit Bootloader

EasyWk DAS Schwimmwettkampfprogramm

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Facharbeit Informatik. Thema:

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Fax einrichten auf Windows XP-PC

Local Control Network

Anleitung TempCW 2011

Allgemeine USB Kabel Installation und Troubleshooting

Dokumentation IBIS Monitor

Update EPOC. 1. Inhaltsverzeichnis

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk.

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Daten Sichern mit dem QNAP NetBak Replicator 4.0

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

Überprüfung der digital signierten E-Rechnung

icloud nicht neu, aber doch irgendwie anders

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Virtual Channel installieren

Wo Ist Mein Kind App

Urlaubsregel in David

Verbindung zwischen PC und Mikrokontroler Blue-Tooth-Modul Schaltung Parametrierung kein zusätzliches LF

FrontDoor/Monitor mehr sehen von FrontDoor

Anschluss einer Lichtsignalanlage an den PC oder Notebook zur Nutzung von Tess

! " # $ " % & Nicki Wruck worldwidewruck

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Handbuch B4000+ Preset Manager

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Konvertieren von Settingsdateien

Atmel AVR für Dummies

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers

Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers

Bilder zum Upload verkleinern

Speichern. Speichern unter

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Handbuch : CTFPND-1 V4

Aufbau und Bestückung der UHU-Servocontrollerplatine

Aufbau der Cutmaster Einheit

easyident Türöffner mit integriertem USB Interface

SharePoint Workspace 2010 Installieren & Konfigurieren

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

TeamSpeak3 Einrichten

Bauanleitung für eine Alarmweiterleitung per Handy von Nick Prescher

Technische Informatik Basispraktikum Sommersemester 2001

Autoradio On Off Schaltung

Simulation LIF5000. Abbildung 1

PicKit 3. Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB

Installationsanleitung

Installationshandbuch. Software Version 3.0

Tageslichtsimulator Easy Time Controll. Bedienungsanleitung

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

Anschluss des ISP-Programmieradapters. Erste Programmierung mit Bascom

Local Control Network Technische Dokumentation

A.u.S. Spielgeräte GmbH A-1210 Wien Scheydgasse 48 Tel.+43-(0) Fax. +43-(0)

ARCO Software - Anleitung zur Umstellung der MWSt

Benutzung der LS-Miniscanner

Kurzeinweisung. WinFoto Plus

SICHERN DER FAVORITEN

Bedienungsanleitung: Medienanlage Raum A104

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

INTERNETZUGANG WLAN-ROUTER ANLEITUNG FIRMWARE-UPDATE SIEMENS

Arbeiten mit UMLed und Delphi

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Tutorial -

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Kommunikations-Management

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.

Projekt 2HEA 2005/06 Formelzettel Elektrotechnik

Herzlich Willkommen bei der nfon GmbH

DOKUMENTATION VOGELZUCHT 2015 PLUS

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

plus Flickerfeld bewegt sich nicht

Bedienungsanleitung. 2-fach Dockingstation. Mit One-Touch-Backup (OTB) und Kopierfunktion

ATMega2560Controllerboard

Computeria Urdorf. Treff vom 16. Januar Was ist ein Computer?

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Steganos Secure Schritt für Schritt-Anleitung für den Gastzugang SCHRITT 1: AKTIVIERUNG IHRES GASTZUGANGS

DE/AT Bedienungsanleitung. devireg 550

Transkript:

1 Bau einer Alarmanlage PSS Professionell Security System

2 I. Einleitung... 3 II. Mikrocontroller... 3 Was ist das?... 3 Das Programm AVR-Studio... 4 III. Erste Versuche... 4 LEDs... 4 Transistoren... 5 Wechselblinker... 5 Lauflicht... 5 Messen... 5 Weitere Versuche... 5 IV. Die Alarmanlage... 6 Hardware... 6 Mikrocontroller... 6 Stromversorgung... 6 Schlüsselschalter und Display... 7 Akku... 7 Alarm (Sirene etc.)... 7 Reedkontakte und Foto-Diode... 7 Platine... 8 Platinenlayout... 8 Software... 8 Was gibt es für Funktionen bei Mikrocontrollern?... 8 Abläufe... 9 Computerschnittstelle... 10 V. Erweiterungen/Aussichten... 10 VI. Fazit/Resümee... 10 VII. Anhang... 11 Schaltplan... 11 Platine... 12 Codebeispiele... 13 Programmcode... 13

3 Einleitung Im letzten Jahr nahmen wir zum ersten mal bei Schüler experimentieren teil. Es hat uns damals sehr viel Spaß bpereitet, die Alarmanlage zu entwickeln. Daher haben wir uns entschlossen, dieses Jahr erneut teilzunehmen. Schon während des Wettbewerbs entschieden wir, dieses Projekt weiterzuentwickeln. Das Hauptaugenmerk bei der Entwicklung lag und liegt immer noch auf einer möglichst effizienten und zugleich günstigen Alarmanlage. Mikrocontroller Was ist das? Nach Recherchen im Internet 1 fanden wir heraus, dass wir für unsere Ansprüche bei diesem Projekt einen Mikrocontroller verwenden müssen. Günstige, für Einsteiger geeignete Mikrocontroller gibt es bei Atmel 2. Es ist die sog. AVR-Familie. Die Mikrocontroller dieser Familie haben die folgenden Eigenschaften: In-System Programming ADC Timer I/O Ports Flash und EEPROM USART In-System Programming bedeutet, dass der Mikrocontroller, wenn er schon in der fertigen Hardware verbaut ist, noch programmiert werden kann. Ein ADC ist ein Ananlog-Digital Converter. Damit können analoge Spannungen gemessen werden. Wenn es um zeitliche Bezüge geht, benutzt man den Timer. Es gibt einen 8-Bit und einen 16-Bit Timer. Sie unterscheiden sich nur in ihrer Zählweise. I/O Ports sind die Ein- und Ausgänge des Mikrocontrollers. Sie können als Eingang fungieren und können für einfache Messungen verwendet werden. Man kann damit feststellen, ob am entsprechenden Port keine Spannung anliegt (z. B. wenn ein Schalter geöffnet ist) oder ob die Referenzspannung (die Spannung innerhalb der Schaltung) anliegt (also wenn der Schalter geschlossen ist). Dann hat jeder Mikrocontroller dieser Familie Flash und EEPROM Speicher. Der Flashspeicher wird benutzt, um den Programmcode zu speichern bzw. auszuführen. Der EEPROM-Speicher ist flüchtig, das bedeutet: Wenn der Strom ausgestellt wird, sind diese Daten weg. Im Gegensatz zum Flash. Der Flash ist ein nichtflüchtiger Speicher. Die Daten bleiben auch nach dem Ausschalten im Speicher. Die wohl interessanteste und wichtigste Funktion des Mikrocontrollers ist der UART oder in neueren Mikrocontrollern der USART. Mit seiner Hilfe können Daten vom Mikrocontroller gesendet (z. B. an andere Mikrocontroller oder Computer) und empfangen werden. Dadurch können Daten (wie z. B. Temperatur, Konfiguration, etc.) ausgetauscht werden. 1 z. B. www.mikrocontroller.net, www.ulrich-radig.de 2 www.atmel.com

4 Schon heute werden Mikrocontroller in fast allen Geräten eingesetzt, ob nun in Waschmaschinen oder Kaffeautomaten, in DVD-Playern oder ipods. So entschieden wir uns, unsere Alarmanlage auf der Basis eines Mikrocontrollers zu entwickeln, das hieß natürlich diverse Bauteile zu kaufen und eine Programmiersprache zu lernen. Um einen Mikrocontroller zu programmieren, kann man z. B. C oder Assembler verwenden. Beide sind einfach zu erlernen, wenn man schon andere Sprachen kann (z. B. PHP oder Java). Weitere Details zur Software s. S. 8. Das Programm AVR-Studio Atmel selbst hat ein USB-Programmiergerät und eine passende Programmierumgebung herausgebracht. So kann man bequem die Programme für den Mikrocontroller entwickeln. Projektmanager Programmcode Der Projektmanager hilft einem, den Code nicht aus den Augen zu verlieren. Sehr praktisch ist der integrierte Simulator. Damit kann man seine Programme schon in der Entwicklungsumgebung testen und Fehler beseitigen. Mit dem Simulator können alle Ports, Variablen etc. überwacht werden. Erste Versuche Nachdem wir uns für einen Mikrocontroller entschieden hatten, begannen die Versuche. Zunächst musste die restliche Hardware besorgt werden (Transistoren, Widerstände, LEDs, Festspannungsregler etc.). Unsere ersten Schaltungen bauten wir auf einem Steckbrett, auch Steckplatine genannt, auf. LEDs Als erstes versuchten wir, eine LED zum Leuchten zu bringen. Nach Anlaufschwierigkeiten klappte es und die LED leuchtete einwandfrei. Den Code ist im Anhang unter Codebeispiele.

5 Transistoren Nach diesem Erfolgserlebnis gelang es uns auch, den nächsten Schritt zu tun und einen Transistor anzusteuern. Somit konnten wir dann auch größere Verbraucher ein- und ausschalten. Wechselblinker Um nun den Alarm darzustellen, reicht eine LED nicht aus. Es musste ein Wechselblinker her. Der Wechselblinker setzte aber den Umgang mit dem integrierten Timer vorraus. Eine knifflige Sache, die wir aber letztlich dann doch noch meisterten. Der Trick besteht darin, dass der Timer, je nach Takt, 1-8 Millionen mal pro Sekunde hochgezählt wird. Der Timer zählt jeweils von 0-255 und erzeugt dann einen sog. Overflow. Bei jedem Overflow wird die LED an- bzw. ausgeschaltet. Das wären bei einem Takt von 4MHz 4000000 / 256 = 15625 Overflows pro Sekunde. Darum benutzt man einen Vorteiler, um ein sichtbares Ergebnis zu bekommen. So ergibt sich die folgende Rechnung 3 : 1000000/256/1024 = 3,8 Hz 3,8 Hz können mit dem Auge wahrgenommen werden. Wenn man bei jedem Overflow zwischen zwei LED wechselt, ergibt das einen Wechselblinker. Lauflicht Die nächste Stufe ist dann ein Lauflicht. Dieses Lauflicht werden wir dann auch in der fertigen Version als Alarmindikator verwenden. Eine ähnliche Technik ermöglicht es ein Licht laufen zu lassen. Indem man jeweils um eine LED weiterschaltet. Messen Das Schwierigste am ganzen Projekt kam ganz als letztes: Elektrische Ströme messen. Das Problem hierin besteht darin, dass man keinen Indikator hat, an dem man erkennen kann, ob es funktioniert oder nicht. Genau aus diesem Grund entwarfen wir Schaltungen, die ohne Messungen auskamen, indem wir den Strom mittels Transistor verstärkten, sodass 5V (Wenn Licht darauf schien) und 0V (wenn keines darauf schien) beim Mikrocontroller ankamen. So hat es dann doch funktioniert und wir konnten die Temperatur, sowie die Kapazität eines Akkus bestimmen. Dafür benutzten wir den integrierten ADC (Analog-Digital Converter) des Mikrocontrollers. Mit seiner Hilfe kann man Spannungen sehr genau messen. Zur Entwicklung ließen wir uns die Messwerte zuerst auf einem 1x16 Display ausgeben. Als wir dann auch die Verbindung zum Computer hinbekamen, ließen wir uns die Messungen auf dem Bildschirm des PCs ausgeben. Weitere Versuche Weitere Versuchen waren das Modul zur Erhöhung der Spannung, eine Lüfterschaltung, Versuche mit Transistoren, sowie die Stromversorgung. 3 www.mikrocontroller.net/articles/avr-tutorial:_timer

PSS - Professionell Security System 6 Die Stromversorgung sollte unabhängig vom Mikrocontroller den Akku aktivieren, wenn die Alarmanlage vom Netz getrennt wird (aber nicht wenn das Gerät ausgeschaltet ist). Da es im Gehäuse einige Bauteile gibt, die Wärme produzieren, sollte auch eine unabhängige Lüfterschaltung her. Ab einer (einstellbaren) Temperatur springt der Lüfter an und kühlt. Wie man es von Computern und Notebooks kennt, geschieht dies erst langsam und erst wenn es immer wärmer wird, dreht sich der Lüfter schneller. Um den Akku laden zu können, reichte unsere 5V interne Spannung nicht aus. Daher bastelten wir uns ein Modul zur Erhöhung der Spannung (Bild). Nach einer Weile stiegen wir von den normalen Transistoren auf Feldeffekt-Transistoren um. Dies bedeutet einige Anpassungen, sowohl am Mikrocontroller als auch in den übrigen Schaltungen. Die Alarmanlage Hardware Unsere Hardware besteht aus unterschiedlichen Komponenten, die wir hier nun einzeln vorstellen: Mikrocontroller PC In der Mikrocontrollerfamilie von Atmel gibt es diverse USB Controller. Wir entschieden uns für den ATMega 8535. Er vereint alle Funktionen, die wir brauchten, genügend Pins, Timer, UART usw. ProgrammierUnseren Mikrocontroller setzten wir zusammen mit den adapter anderen Bauteilen bei unseren Versuchen in die Mitte der Steckplatine und nach und nach schlossen wir dann die weiteren Bauteile nach unserem Schaltplan Mikrocontroller an. Da der Mikrocontroller das Herzstück der Anlage ist, darf er in keinem Fall kaputt gehen. So bekam er von Anfang an einen Kühlkörper aufgeklebt. Schema Das nächste war die Programmierung. Sie sollte über den PC bzw. einen Programmieradapter von Atmel selbst funktionieren. Eine einfache USB-Verbindung zum Adapter und dann noch vom Adapter zum Mikrocontroller muss dafür hergestellt werden. Das Programmieren erfolgt dann bequem aus dem schon erwähnten AVR-Studio (s. S. 4) heraus. Dort können auch alle weiteren Einstellungen (wie Taktfrequenz, externe Taktversorgung, Programmiersprerre, damit er nicht einfach geklaut und umprogrammiert wird, etc.) erledigt werden. Stromversorgung Die Stromversorgung besteht aus einem Netzteil, und einer Netzteilschaltung.

7 Sie hält die Spannung konstant bei 5V, daher kann auch ein nicht stabilisiertes Netzteil verwendet werden (=geringere Kosten). In dieser Schaltung sind Festspannungsregler und Kondensatoren verbaut (Schaltplan auf der nächsten Seite). Dann gibt es noch eine Schaltung für die unterbrechungsfreie Stromversorgung (USV), aufbauend auf einem eingebauten Bleiakku. Dieser wird im normalen Betrieb geladen und automatisch aktiviert, sobald das Netzteil ausfällt (durchgeschnittenes Kabel, Stromausfall etc.). Schlüsselschalter und Display Der Schlüsselschalter ist zum einen der Hauptschalter des Gerätes und Taste für das Menü. Der Schlüssel kann auch bei eingeschaltetem Gerät abgezogen werden um zu gewährleisten, dass er nicht gestohlen wird oder nach dem Einbruch zum Ausschalten des Gerätes verwendet wird. Wenn der Schlüsselschalter einmal kurz in die Tasterstellung gedreht wird, wird der nächste Menüpunkt aufgerufen. Wenn er länger in diese Stellung (ca. 2-3 Sek.) gedreht wird, werden die entsprechenden Funktionen aufgerufen (s. S. 10). Akku Damit die unterbrechungsfreie Stromversorgung gewährleistet werden kann, verwenden wir einen Bleiakku mit 6 V und 4,5 Ah. Somit ist gewährleistet, dass der Einbruch bemerkt wird, auch wenn die Stromversorgung durchtrennt wird oder es einen Stromausfall gibt. Wenn diese Verbindung nicht unterbrochen ist, wird der Akku automatisch geladen. Alarm (Sirene etc.) Der Alarm besteht aus einem Lauflicht, der Sirene und den Scheinwerfern. Also aus zwei optischen Signalen und einem akustischem. Zur besseren Wahrnehmung setzten wir eine Sirene mit 110 db ein. Sie ist sehr laut und hat eine hohe Reichweite. Schon in der Vorgängerversion verbauten wir sog. Scheinwerfer. Sie wurden ein wenig verändert. Anstatt der normalen grünen LEDs benutzen wir jetzt ultrahelle weiße LEDs (1800 mcd) mit Reflektor, für eine bessere Beleuchtung und Abschreckung. Jeder Scheinwerfer besteht aus 3 solchen LEDs. Es können mehrere Scheinwerfer in Reihe angeschlossen werden. Reedkontakte und Foto-Diode Zur Raumüberwachung setzten wir eine Lichtschranke (z. B. im Fenster) und Reedkontakte für die Tür und weitere Fenster ein. Reedkontakte sind einfache Schalter, die mit Magneten geschaltet werden, also Magnetschalter. Vier davon sind im Gehäuse selbst, damit es nicht unbemerkt geöffnet werden kann. Vier weitere können im Raum installiert werden. Jeder Reedkontakt, der im Raum installiert werden kann, besitzt einen unterschiedlichen Widerstand. So können den Reedkontakten Namen zugeordnet werden und sie müssen nicht nach einem bestimmtem Muster an das Gehäuse angeschlossen werden.

8 Platine Alle Bauteile zusammen und mit Kabeln verbunden, würden nicht ins Gehäuse passen und außerdem sehr schwer zu überprüfen sein. Daher entschieden wir uns, eine Platine anfertigen zulassen. Auf der Platine befinden sich Steckerleisten. Die im Gehäuse integrierten Bauteile (Buchsen, LEDs, ) werden mit passenden Buchsenleisten mit der Platine verbunden. Platinenlayout Das eigentliche Problem bei allen Vorteilen einer eigenen Platine ist ihr Layout. Wie können alle Teile und Leiterbahnen möglichst platzsparend angeordnet werden? Mit einem Programm namens TARGET 3001 4 können aus Schaltplänen Platinen erzeugt werden (inkl. Leiterbahn, etc.). Es steht eine kostenlose Grundversion (keine Demo) als Download zur Verfügung. Software Was gibt es für Funktionen bei Mikrocontrollern? Der Mikrocontroller besitzt 4 sog. Ports (PORT A - PORT D), jeder Port hat 8 Pins. Zusätzlich gibt es noch Pins, die bestimmte Funktionen erfüllen (wie z. B. Stromversorgung oder externe Taktversorgung). An den Port A 0-7 (PA0 - PA7), PB 0-7, PC 0-7 und PD 0-7 können LEDs, Schalter, usw. angeschlossen werden, die wenig Strom benötigen. Wenn mehr Strom benötigt wird, kann man mit diesen Ports Transistoren schalten, die dann wiederum andere Geräte schalten. Zusätzlich können alle Pins vom Port A als ADC genutzt werden, um Analoge Spannungen in Digitale umzuwandeln. VCC und AVCC werden an Plus (5V) und an GND (Masse) angeschlossen. Mit XTAL 1 bzw. 2 kann eine externe Taktversorgung, wie z. B. ein Quarzosziallator (wir verwenden einen mit 60 MHz) verbunden werden. Das ist dann wichtig, wenn der USART verwendet wird, damit die Frequenz genau bleibt. Denn die interne Taktversorgung schwankt bei Temperaturänderungen stark. PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 RESET VCC GND XTAL2 XTAL1 PD0 ] PD1 PD2 PD3 PD4 PD4 PD6 So kann eine Schaltung, die im Winter noch funktionierte, im Sommer ihren Dienst versagen. PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 AREF GND AVCC PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PD7 Jeder Pin oder auch der gesamte Port kann als Ein- oder Ausgang fungieren. Als Eingang können sie die Werte High und Low zurückgeben. Low bedeutet, dass eine Spannung unter 3V anliegt. High bedeutet eine Spannung von mehr als 3 Volt. Als Ausgang kann der Pin auch High oder Low sein. Dabei gibt er dann aber 5 V bzw. 0V aus und kann somit LEDs, Transistoren, etc. ein- und ausschalten. Das waren die Hardware -Funktionen. Dann gibt es in jeder Mikrocontroller geeigneten Programmiersprache (C, Assembler,...) nur auf einem Mikrocontroller verfügbare Befehle. Dazu zählen die Befehle um die Ports, wie beschrieben, zu konfigurieren. Beispiele sind im Anhang unter Codebeispiele zu finden. ]Port B Port D ]Port A ]Port C 4 www.ibfriedrich.de/

9 Abläufe Die Software bzw. das Programm des Mikrocontrollers besteht im Wesentlichen aus zwei großen Schritten oder Funktionen. Schritt 1: Initialisierung Im ersten Schritt werden alle angeschlossenen Bauteile überprüft bzw. deren Konfiguration aus dem Flashspeicher geladen. Außerdem wird das Display gestartet und der Willkommenstext sowohl auf dem Display als auch dem Computer ausgegeben. Dieser Schritt wird nur einmal ausgeführt und zwar wenn das Gerät eingeschaltet wird. Schritt 2: Abfragen und Entscheiden Im zweiten Schritt werden die Reedkontakte und die Fotodiode überprüft. Anschließend wird entschieden, ob Alarm ausgelöst werden muss oder nicht. Außerdem werden evtl. Eingaben, die der PC an den Mikrocontroller sendet oder über den Schlüsselschalter, welcher zugleich ein Taster ist verarbeitet. Mit dem Schlüsselschalter kann man das Menü auf dem Display steuern. Dieser Schritt wird ständig wiederholt. Wenn Alarm ausgelöst wird, ruft der Mikrocontroller die Alarmfunktion auf. Sie ist eigenständig und wird erst wieder beendet, wenn das gesamte Gerät aus- und wieder ein geschaltet wurde. Dadurch kann der Alarm nur durch den Besitzer und nicht durch den Einbrecher ausgestellt werden. Dies geschieht entweder durch den Schlüsselschalter oder den PC. Die Alarmfunktion umfasst die folgenden Aktionen: (1) Alarm ans Display und den PC senden (2) Sirene einschalten (3) Lauflicht starten Für bestimmte Menüpunkte gibt es eine eigene Funktion. Wenn ein ƒ oder hinter dem Menüpunkt steht gibt es eine solche Funktion. Nähere Beschreibung sind im Anhang unter Programmcode zu finden. Menüstruktur: 1. PSS Menu 2. Temp.: [aktuelle Temperatur im Gehäuse in Grad] C 3. Reedk1-8.: on/off 4. Reedkontakte erkennen ƒ 5. Lichts.: on/off 6. Fotodiode kalibrieren ƒ 7. Modus: Ein/Standby 8. Daten: USB/Seriell/Off 9. LCD: Ausschalten Ist eine Funktion, die zwischen den verschiedenen Modi umschaltet, wie z. B. der Verbindungsart zum PC (Es kann zwischen USB- und serieller Verbindung gewechselt

10 werden bzw. diese Übertragung kann ganz ausgestellt werden.). Meistens kann jedoch nur zwischen on und off gewechselt werden. Dadurch müssen nicht immer alle Reedkontakte bzw. die Lichtschranke angeschlossen sein. ƒ Ist eine Funktion, die mehr als nur ein Umstellen des Modus bewirkt. Bei der ersten kann eingestellt werden, bei welchem Messwert bzw. bei welcher Lichteinstrahlung auf die Fotodiode Alarm ausgelöst werden soll und wann nicht. Die zweite erkennt, welcher Reedkontakt an welchem Pin angeschlossen ist (s. S. 7). Computerschnittstelle Die Verbindung zum Computer kann entweder durch ein serielles oder ein USB-Kabel erfolgen. Der Mikrocontroller sendet nur im Falle eines Alarms einen Befehl an den Computer und wenn Einstellungen im Menü geändert werden. Anders herum sendet der PC Befehle an den Mikrocontroller, wenn Einstellungen in der Software geändert werden. So ist gewährleistet, dass auf beiden die gleichen Einstellungen gespeichert sind. Alle Einstellungen werden beim Mikrocontroller im Flash-Speicher und in der Software verschlüsselt auf der Festplatte gesichert. Das Programm selbst ist in Java geschrieben und somit weitestgehend plattformunabhängig. Java hat den großen Vorteil, dass es Daten über den COM-Port senden und empfangen kann. Erweiterungen/Aussichten Da ein solches Projekt unendliche Möglichkeiten bietet, haben wir uns schon mal überlegt, welche in naher Zukunft realisiert werden können. - SMS-Versand bei Alarm (Durch Ansteuerung einer SIM-Karte) - Videoaufzeichnung ohne PC (z. B. auf einem USB-Stick oder eine SD/MMC-Karte, die in die Alarmanlage gesteckt werden können) - Bewegungsmelder, etc. für eine bessere Überwachung - Funkübertragung zwischen Mikrocontroller und PC 5. Fazit/Resümee Es hat uns beiden sehr viel Spaß gemacht dieses System zu entwickeln. Dabei haben wir viele verschiedene Gebiete der Elektronik kennen gelernt. Uns ist es gelungen, ein Alarmsystem mit möglichst geringem finanziellem Aufwand zu konzipieren. Die Gesamtanlage blieb dabei einfach in ihrer Struktur, simpel in ihrer Handhabung und effizient in der Erreichung des Ziels. Im Fortschreiten des Baus der Alarmanlage konnten wir immer mehr und weiterreichende Funktionen integrieren. Im bisher letzten Schritt schafften wir es, die Alarmanlage auch im Offlinemodus, also ohne PC, nur mittels des programmierten Displays, komplett zu bedienen. 5 Ansatz dazu: http://www.ulrichradig.de/home/index.php/avr/usb-funk

11 Anhang Schaltplan 1 3 8 9 13 2 14 4 10 15 11 5 6 7 12

12 Legende: Platine Vorläufige Version: 1. Stromversorgung 2. Akku und Fotodiode 3. Reedkontakte (Raum) 4. Temperatursensoren 5. Reedkontakte (Gehäuse) 6. Infrarot LED 7. Scheinwerfer 8. Lüfterschaltung 9. Lauflicht 10. Programmieradapteranschluss 11. LCD-Display 12. Sirene 13. Modul zur Erhöhung der Spannung 14. Schlüsselschalter 15. Computerschnittstelle (USB/Seriell)

13 Codebeispiele Syntax Highlighting: Rot: Zahlen Grün: Ports, includes und Definitionen Blau: Assemblerbefehle Einschalten von LEDs am PORT B, wenn ein Taster mit gleicher Pinnummer am PORT D gedrückt wird:.include "m8535def.inc" ; Mikrocontroller auswählen: ATMega 8535 ldi r16, 0xFF out DDRB, r16 ; Alle Pins am Port B durch Ausgabe von ; 0xFF als Ausgang konfigurieren ldi r16, 0x00 out DDRD, r16 ; Alle Pins am Port D durch Ausgabe von ; 0x00 als Eingang konfigurieren loop: in r16, PIND ; Taster an Port D nach r16 einlesen out PORTB, r16 ; r16 an Port B ausgeben rjmp loop ; Sprung zum Unterprogramm loop Programmcode Vereinfacht (ohne LCD-Routinen, USART-Routinen, Lauflicht und RAM-Zugriffe): Datei: main.asm:.include "m8535def.inc" ; Definitionsdatei für den Prozessortyp einbinden.def pins = r18 ; pins als Platzhalter für Register 18 definieren.def konfig = r19 ; konfig als Platzhalter für R. 19.def ausgang = r20 ; ausgang als Platzhalter für R. 20.def eingang = r21 ; eingang als Platzhalter für R. 21.def step = r22 ; step als Platzhalter für R. 22.def menupunkt = r23 ; menupunkt als Platzhalter für R. 23 ldi eingang, 0x00 ; eingang (Register 21) den Wert 0 zuordnen ldi ausgang, 0xFF ; ausgang (Register 20) den Wert 0 zuordnen out DDRB, eingang ; Port B als Eingang konfigurieren loopinit: in pins, PINB ; Anliegende Werte an Port B einlesen ; (Schlüsselschalter) cpi pins, 0b00001000 ; Schlüsselschalter geschlossen? breq init ; Dann zu Schritt 1: Initialisieren (init) rjmp loopinit ; sonst erneut Prüfen init: ; Initialisierung out DDRA, eingang ; Port A als Eingang konfigurieren ldi eingang, 0b00000111 ; Ein und Ausgänge für Port C setzten (0: Eingang; 1: ; Ausgang) rcall lcd_init ; LCD initialisieren rcall lcd_clear ; LCD löschen

14 rcall lcd_intro ; Willkommenstext ausgeben out DDRC, eingang ; Port C als Eingang und Ausgang konfigurieren ldi konfig, 0b000000100 ; Gerät einschalten: out PINC, konfig ldi step, 0 ; Schritt = 0 (1. Schritt) loop: ; Hauptroutine step1: ; Reedkontakte im Raum überprüfen cpi step, 0 ; step = 0 (1. Schritt)? brne step2 ; Wenn nicht (z. B. 2 oder 3) -> step2 in pins, PINA ; Pins am Port A einlesen (Reedkontakte im Raum) ldi konfig, 0b10001111 ; und den Sollzustand der Pins festlegen rcall vergleich ; Vergleich aufrufen step2: ; Reedkontakte im Gehäuse überprüfen cpi step, 1 ; step = 1 (2. Schritt)? brne step3 ; Wenn nicht (z. B. 3) -> step3 in pins, PINC ; Pins am Port C einlesen (Reedk. im Gehäuse) ldi konfig, 0b11110000 ; und den Sollzustand der Pins festlegen rcall vergleich ; Vergleich aufrufen step3: ; Fotodiode überprüfen cpi step, 2 brne step4 rcall read_settings ; Einstellungen aus dem RAM lesen. Unterprogramm ; read_settings aufrufen rcall compare ; Einstellungen und Istzustand vergleichen im ; Unterprogramm compare inc step step4: ; Schlüsselschalter überprüfen (Menü) ldi step, 0 in pins, PINB ; Anliegende Werte an Port B einlesen rcall menu ; Und Unterprogramm Menu aufrufen rjmp loop vergleich: cp pins, konfig ; Sollzustand mit dem Istzustand vergleichen brne alarm ; Wenn unterschiedlich -> Alarm inc step ; step um eins erhöhen, um zum nächsten Schritt zu ; gelangen rjmp loop ; loop aufrufen alarm: ldi konfig, 0b00000010 ; Alarmausgänge konfigurieren (Sirene und Scheinwerfer) out PORTB, konfig ; und ausgeben ldi ZL, LOW(alarmtext*2) ; String aus dem RAM-Speicher lesen ldi ZH, HIGH(alarmtext*2) rcall lcd_flash_string ; Unterprogramm gibt den Alarmtext aus dem RAM aus rjmp lauflicht ; Unterprogramm Lauflicht aufrufen alarmtext:.db Alarm,0 ; Alarmmeldung fürs Display in den RAM legen.include "lcd-routines.asm" ; LCD Funktionen einbinden.include "menu.asm" ; Menü Funkionen einbinden Datei: lcd-routinen:

15 Enthält Funktionen zum Ansteuern des Displays, wie einschalten, Befehle und Daten senden und ausschalten. Datei: menu.asm: Die Datei menu.asm wäre zu umfangreich, um sie hier zu erläutern und abzudrucken. Schritte: 1. aktuellen Menüpunkt abfragen 2. Schlüsselschalter abfragen und ggf. einen Menüpunkt weiterschalten 3. Wenn der Schalter gedrückt gehalten wird, die entspr. Funktion ausführen