Simatic S7 1200 PLC with KP300 Simatic PanelReST (Representational State Transfer) is an often used technique in distributed environments to simplify the data exchange between devices. It is used in web-services and is one possibility to achieve M2M (Machine-to-Machine) communication.

The Siemens Simatic S7-1200 PLC comes with an integrated web server which just needs to be activated for the specific project. Therefore, the access to variables and tags inside the PLC is not limited to the S7-1200 native web frontend, it is also possible to develop user-defined pages (or rather web apps) using JavaScript and HTML. With a bit of fortunes it can easily be achieved to "configure" the integrated web server to respond with a JSON or XML (or any other text based format) to a http/s request. The client which requests data from the S7 web-API can be a web app running on the S7 written in JavaScript but can also be any other client. In this case I will introduce a client written in Python using the requests library (and Tkinter to display a GUI).

FlightReportManager Application Icon

Introduction

While flying, the Parrot Bebop Quadcopter (and the Bebop 2 Quadcopter) stores all flight information in a log file. This is a so called pud file and has a json structure.

This pud file includes the detailed flight information which is also used by Parrot to store the flights in their cloud (formerly known as ARDrone Academy, Drone Academy) and to perfrom the flight analysis, such as generating battery plot, speed plot and altitude plot.

This application uses the DroneDataConversion library to do the flight data conversion. You can manage and store your Parrot Bebop flights and take care for visualising and organising the flight data.

Introduction

While flying, the Parrot Bebop Quadcopter (and the Bebop 2 Quadcopter) stores all flight information in a log file. This is a so called pud file and has a json structure.

This pud file includes the detailed flight information which is also used by Parrot to store the flights in their cloud (formerly known as ARDrone Academy, Drone Academy) and to perfrom the flight analysis, such as generating battery plot, speed plot and altitude plot.

The python library presented in this article allows to extract important flight information from the pud file. The data from the pud file (flight log) is processed and can be returned for further flight analysis.

 Parrot Bebop2

For the study module “Advanced Real Time Systems” in my current master’s degree programm named High Integrity Systems, the task was to work on a project which is closely related to real time systems.

A fellow student of mine, Christian von Harscher, and I decided to work on a current toppic of computer sciences: Face Recognition and wether it is usable in real time applications or not. We took the (at that time) current OpenCV distribution and did a benchmark wether OpenCV’s face detector and face recognizer is real time cappable. In detail we did a benchmark on the LBPH (local binary pattern histograms) face recognizer which is shipped with OpenCV 2.4.

For successfully performing the task it was necessary to develop an application which first detects a face from a stream, learns the face (the name of the person), and later recognizes it and writes the learned name to the face. The video stream was provided by a simple USB webcam so that the faces could be learned from that stream and could then be recognized in the same context. All this we have implemented using Python and the OpenCV 2.4 libraries.

The final outcome was that the LBPH face recognizer included with OpenCV 2.4 is indeed usable in real time applications. Finally the project was presented to the other students and to the Professor, it was graded with 1.3 (which is very close to very good).

7z

LearnAndRecognizeFromStream

md5: 5bba5913078913e898700d2b7a119d8c
Size: 112.90 KB
pdf

BenchmarkingPaper

md5: ee2575d0d94037e1ff113619e3526109
Size: 1.68 MB