EasyMeter - Praktikumsaufgaben 14. Dezember 2015

Ähnliche Dokumente
Raspberry Pi und easyident

Verdrahten des GPS Empfängers mit dem Raspberry Pi:

EasyMeter. Embedded Software Vorlesung und Praktikum Thomas Brinkmann Ludwig Horsthemke

JOY-iT TFT-Display 1.8

SmartMeter. Praktikum Embedded Software. 09/01/2017 Mauricio Gómez 1

Die Temperaturmessung mit dem Sensor LM75. Andreas Heller & Eduard Auer

I2C Serial 2.6 LCD Modul

Rückgabewerte von Methoden

Versuch 5: Linux embedded

Startup, Shutdown und Reboot eines Raspberry Pi über die HomeMatic CCU

Raspberry Pi Einführung Prof. Dipl.-Ing. Klaus Knopper

I2C Serial 2.6 LCD Modul. Verwendung mit einem Arduino

DC 5V Stepper Motor 28BYJ-48. Verwendung mit einem Arduino

3,2 Touch-Display-V2 / 3,5 Touch-Display Bedienungsanleitung [Version ]

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel

Mit PuTTY und WinSCP an der Pi

System-Programmierung 10: Weitere Arten von I/O. CC BY-SA, Thomas Amberg, FHNW (soweit nicht anders vermerkt)

mit Winzip oder anderem Programm auf PC entpacken => xxx.img-datei mit Win32Diskimager die xxx.img-datei auf Micro-SD-Card >= 4GB schreiben

3.2 / 3.5 Touch-Display

3,2 Touch-Display-V2 Bedienungsanleitung [Version (Raspberry Pi 3)]

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung

Willkommen! Verdrahten des Panels mit dem Raspberry Pi:

3.2 / 3.5 Touch-Display

3,2 Touch-Display-V2 Bedienungsanleitung

3.2 / 3.5 Touch-Display

Benötigte Teile für die Statusanzeige, Kosten und Beschaffungslinks:

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

Handout Raspberry Pi Workshop Touch-Display

Vorgehensweise bei der Erstellung eines Bootlogs

3,2 Touch-Display-V2 Bedienungsanleitung [Version (Raspberry Pi Linux-Kernel 4.4)]

Installation. Schulfilter Plus Installationsanleitung Debian 8 (Jessie) und Debian 9 (Stretch)

3.2 / 3.5 Touch-Display

Installations-Kurzanleitung

Raspberry Pi. Karsten Müller 1. Mai Vorwort 2. 2 SSH-Server einrichten dynamische DNS... 2

Inhaltsverzeichnis ERWEITERUNG. 26. Januar 2014 RECORDTIME ENTERPRISE (LINUX) BENUTZERANLEITUNG-

INHALTSVERZEICHNIS. 1.8 TFT Display. 1. Einführung

Grundlagen - Konsole/Terminal :

Raspberry Pi Rezepte Teil 5

PODODAT 6. Installation

Schulfilter Plus Installationsanleitung CentOS 7

Installation. Schulfilter Plus Installationsanleitung Ubuntu und Ubuntu 16.04

3.2 / 3.5 Touch-Display

Embedded So)ware. Einrichten der Arbeitsumgebung

LK-Baseboard für Raspberry Pi B+ / Pi 2

In diesem Beispiel verwende ich einen Raspberry Pi 3 (wg. Ethernetanschluss) mit einem MMDVM Hat Klon.

Linker-Kit RGB LED Anleitung für den Arduino und Raspberry Pi

Praktikum Analog- und Digitaltechnik. Versuch D3 Bluetooth-steuerung mit Arduino

Arduino für FunkAmateure

Internet-Technologien CS262. Corinna Schmitt Claudio Marxer Dima Mansour

Einrichtung der Raspberry Pi

Serielle Kommunikation - Kodierung

RFID RC522. Ausgabe Copyright by Joy-IT 1

edition Make: Arduino Ein schneller Einstieg in die Microcontroller-Entwicklung von Maik Schmidt 2., akt. u. erw. Aufl. dpunkt.

RFID RC522. Ausgabe Copyright by Joy-IT 1

Talking-Pi. Ausgabe Copyright by Joy-IT 1

Anleitung: DV4Mini auf einem Raspberry Pi

Schulfilter Plus Installationsanleitung Ubuntu 12.04

RFID Modul basierend auf NXP MFRC-522

PiXtend Application-Note: RS232/RS485 Schnittstelle

1,8 Display Bedienungsanleitung Raspberry Pi

VPN-Verbindung mit Openconnect über Terminal

Motorsteuerung. Embedded Software Praktikum 4. Tim Hölzemann Embedded Engineering

Hinweis: Sie finden die IP-Adresse des Druckers im Abschnitt "TCP/IP" des Menüs "Netzwerk/Berichte".

Softwareentwicklung 2 (ILV) Übung 1

Raspberry Pi Appliances. Das richtige Betriebssystem für die eigene SW Lösung finden Pi and More 7 Nico Maas

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

USB-Stick für die Wiederherstellung von Windows 10 für die One Xcellent Box

TeamDrive Outlook-Plugin für Windows

Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux

SBC ButtonMatrix Bedienungsanleitung. Verwendung mit einem Arduino Schritt 1 Anschließen der Matrix

Schulfilter Plus Installationsanleitung Debian 8

Quick Start Guide. mobilrc-pro. Copyright ID Servicepoint GmbH 2016 QSG Version 1.1 Stand:

PPL 10 Installationsanleitung

Raspberry Pi: Betriebssystem installieren und WLAN einrichten

USB / LAN Interface ACS - Power Source HBS Electronic GmbH

KY-001 Temperatur Sensor Modul

DCF77 Uhr PL0045 Atomuhr-Empfänger für PC

Local Control Network - Gebäudeleittechnik in Perfektion

Smart Smoke Detector. Von Govinda Hahl Internet der Dinge WS 16/

Handbuch Xlive FILE ROUTER Intrexx Konfiguration

Anleitung: Verbindung mit der Datenbank

Raspberry als Cloud Server (Next Cloud / Owncloud)

PowerPoint Kapitel 1 Lektion 2 Benutzeroberfläche

XY-Plotter. Hardware. Software µp. Software PC. von Thomas Wagner

Raspi mit Image Jessy_Pixel einrichten

1 Gestatten: Raspberry Pi! Schnellstart: Die erste Inbetriebnahme Den Desktop kennenlernen Wichtige Konsolenbefehle im Griff 69

EX x RS-232 zu Ethernet / IP. Bedienungsanleitung. 7. Anschlüsse. 8. Technische Daten. Seriell 9 Pin D-SUB Stecker

Javakurs für Anfänger

D O K U M E N T A T I O N. AdvoCenter VERSION 1.1

Die Temperaturmessung

Ein erstes "Hello world!" Programm

Transkript:

Embedded Software WS 2015/16 FH Münster FB2 Thomas Brinkmann, Ludwig Horsthemke EasyMeter - Praktikumsaufgaben 14. Dezember 2015 Aufgabe 1: Einrichtung i) Aufbauen der Schaltungen Bauen Sie zunächst die Empfängerschaltung entsprechend der Abbildung 1a mit Hilfe des Fototransistors auf. Denken Sie daran das Signal zu invertieren, bevor Sie es auf den RX-Pin des Raspberry Pi geben. (a) Empfänger (b) Sender Abbildung 1: Schemata Bauen Sie anschließend die Schaltung zur Emulation des EasyMeter entsprechend der Abbildung 1b mit Hilfe eines Arduinos auf. Denken Sie auch hier daran, das Signal zunächst zu invertieren, bevor Sie mit diesem die Infrarot-LED treiben. Zur Spannungsversorgung liegt der Pin D2 des Arduino auf HIGH. Sie können hier 1

alternativ die 3,3V Versorgung nehmen. Tipp: Eine übliche (Handy-)Kamera ist in der Lage Infrarotlicht darzustellen. So lässt sich die generelle Funktion überprüfen. Abbildung 2: Pinout des Raspberry ii) Einrichten des Raspberry Pi Standardmäßig öffnet Linux eine Konsole auf der UART-Schnittstelle, wodurch, wie von ssh bekannt, Befehle abgesetzt und Ausgaben erfolgen können. Da nur Ihr Programm Zugriff auf die UART-Schnittstelle haben soll, müssen Sie die folgenden Änderungen vornehmen. Editieren Sie die Datei /boot/cmdline.txt und entfernen Sie den Teil console=ttyama0,115200 kgdboc=ttyama0,115200. Editieren Sie die Datei /etc/inittab und kommentieren Sie die Zeile T0:23:respawn:/sbin/getty -L ttyama0 115200 vt100 mit dem #-Zeichen aus. Starten Sie den Raspberry Pi nun neu, um die Änderungen zu übernehmen. Jetzt installieren Sie mit sudo apt-get install minicom das Programm minicom zur seriellen Kommunikation. Dies erlaubt Ihnen den Empfang der Datentelegramme zu überprüfen. Starten Sie minicom mit dem Befehl sudo minicom -s und stellen Sie unter Serial port setup als Serial Device /dev/ttyama0 und als Bps/Par/Bits 9600 7E1 ein. Deaktivieren Sie Hardware Flow Control. Speichern Sie die Konfiguration mit Save setup as dfl und starten Sie den Empfang der Daten mit Exit. Sie sollten nun alle 2 Sek. ein Telegramm empfangen. iii) Oszilloskopie der relevanten Signale (optional) Schauen Sie sich die relevanten Signale auf Sender- und Empfängerseite mit Hilfe eines Oszilloskopes an. An welcher Stelle sind die Daten (logisch) invertiert? Warum könnte dies der Fall sein? Identifizieren Sie ein Byte und prüfen Sie dessen Paritätsbit. 2

Aufgabe 2: IRSensor Klasse Im Folgenden erstellen Sie eine Klasse, die Telegramme des EasyMeter entgegennimmt und zur Weiterverarbeitung zwischenspeichert. Es wird sich hierzu sukzessive der Klasse IRSensor angenähert. i) Funktion zum Empfang des Telegramms Schreiben Sie eine Funktion, die Eingaben in die UART-Schnittstelle einliest, zwischenspeichert und den vollständigen Erhalt eines Telegramms feststellt. Hierzu nutzen Sie die Funktionen von wiringpi, um mit dem Gerät /dev/ttyama0 zu kommunizieren. Achten Sie darauf die Kommunikation auf 7E1 einzustellen. Geben Sie die Telegramme nach vollständigem Erhalt aus. Gleicht die Ausgabe derer, die Sie in minicom gesehen haben? Wenn nein, warum nicht? ii) Auslagerung in Thread Nun lagern Sie die erstellte Funktionalität in eine Methode aus, welche sich als pthread starten lässt. Übergeben Sie ihr beim Start die Referenz auf Ihr IRSensor-Objekt und führen Sie einen geeigneten Cast durch, sodass Sie mit dem Objekt wie gewöhnlich arbeiten können. Legen Sie spätestens jetzt die Klasse IRSensor an und starten Sie den Thread an geeigneter Stelle. iii) Implementierung der gesamten Klasse Implementieren Sie nun die restliche Funktionalität der Klasse, wie etwa get-methoden, geeignete Übergabeparameter an den Konstruktor, usw. Sie dürfen sich dabei an der in Abbildung 3 dargestellten Klasse orientieren. 3

Abbildung 3: Klasse IRSensor Aufgabe 3: Zaehlerstand Klasse Da Sie nun Telegramme empfangen und weiterreichen können, gilt es eine Klasse zu implementieren, die aus dem String die relevanten Daten extrahiert und in entsprechenden Attributen speichert. i) Implementierung Legen Sie die Klasse Zaehlerstand (o.ä.) an und geben Sie ihr geeignete Attribute. Sie dürfen sich auch hier an der Klasse aus Abbildung 4 orientieren. ii) Textanalyse Fügen Sie nun eine Methode hinzu, welche ein Telegramm als string entgegen nimmt und eine Zaehlerstand-Instanz befüllt. Nutzen Sie hierzu zum Beispiel den tokenizer. Prüfen Sie nun in Ihrer main-funktion nur noch auf den Erhalt gesamter Telegramme. Lassen Sie sich die Zaehlerstand-Instanz bei Erhalt neu befüllen und geben Sie deren Attribute aus. Als Schutz vor der Kollision der Textanalyse mit dem neuen Befüllen des Telegramms durch den Empfangsthread bietet sich eine Mutex-Variable an. Auch ein FIFO-Puffer für Telegramme wäre hier denkbar. 4

Abbildung 4: Klasse Zaehlerstand iii) Verbrauchsanzeige (optional) Lassen Sie den LED-Bargraph auf Ihrer Platine die aufgenommene Leistung an der Phase L1 anzeigen. 5