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

Ähnliche Dokumente
Steuern und Messen mit Raspberry Pi

Was so passieren wird:

Einführung Arduino - Aufbau

Jan Monsch. Donnerstag, 2. Mai 13

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Installation der Entwicklungsumgebung

Arduino für FunkAmateure

Linear Magnetic Hall Sensor KY-024

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

Einen elektronischen Würfel programmieren

Raspberry Pi 3B Advanced-Set

C++ mit dem Arduino (Uno und Mega2560)

Arduino, IR Fernbedienung dekodieren

C++ mit dem Arduino (Uno und Mega2560)

Willkommen! Verdrahten des Panels mit dem Raspberry Pi:

Raspberry Pi Rezepte Teil 6 Das ADC des guten Geschmacks

TCS3200 Farbsensor. Schritt 1 Anschließen des Sensors. Bild 1: TCS3200 Farbsensor

Hall Magnetfeld Sensor KY-003

LCD Modul 84x84 Nokia 5110

Fachprojekt for Embedded System: Design and Implement Your Own Embedded Systems (2) LS 12, TU Dortmund

Arduino für FunkAmateure

analoge Ein- und Ausgänge

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

Einführung in die Arduino Programmierung am Beispiel eines Roboters.

foexlab-materialien Arduino-Schaltungen First Steps Gottfried Wilhelm Leibniz Universität Hannover

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, Sebastian Wastl

LCD Modul 84x48. Verwendung mit einem Arduino

Grundlagen der Anwendung und Programmierung des ESP8266. Dennis Hoffmann Mittwoch, :30 Uhr Schulungsraum SW23/147

RFID RC522. Ausgabe Copyright by Joy-IT 1

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

Arbeitsblatt Nr.19: RFID Kit

Die Technik hinter IoT: Arduino, Raspberry Pi & Co.

DE

Digitalelektronik 1 Digitale Ausgabe. Stefan Rothe

I8O8-USB. Serial Input and Output Board with. 8 Inputs 8 Outputs 8 ADC-Inputs USB (FTDI) Rev rtec.rohrhofer.org

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

Entwicklungen zum Kühlerprotoypen für das PANDA-Kalorimeter

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Making the Internet of Things

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Praktikum Komponenten & Programmierung von Automatisierungssystemen

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

Arduino und Amateurfunk (1)

Railuino Hacking your Märklin. Jörg Pleumann OpenRheinRuhr

RFID RC522. Ausgabe Copyright by Joy-IT 1

Schaltungshinweise zum Linux Control System mit DIL/NetPC DNP/7520

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

ARDUINO Übung. Inhalt:

Joy-IT Ultraschall Abstandssensor

Erste Gehversuche mit ARDUINO (DL6OAA)

Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung

Struktur eines Sketches

Einführung. Schritt 1: Sammle deine Materialien

Microsoft.NET Gadgeteer: Ein raffinierter Weg zum Embedded-Produkt. ECC 2013 Marcel Berger

Der Arduino im Physikunterricht Cheat-Sheet. Christopher Kommetter

Linkerkit OLED Raspberry Pi und Arduino

Bihor Magnet Sensor KY-035

Mark VHS Augsburg Einführung in die Mikrocontroller-Programmierung.

ARDUINO KENNENLERNEN WAS IST EIN ARDUINO?

Programmieren des ESP8266 mit OLED

Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Microcontroller im Amateurfunk

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Ampelschaltung mit dem Raspberry Pi 3 Model B. Von Stefan Ossenbrink & Marcel Gebing

U5-2 Register beim AVR-µC

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

Verdrahten des GPS Empfängers mit dem Raspberry Pi:

Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

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

GPIOs am RasPi. Linux-Café im Bildungszentrum Nürnberg Montag 3. April Frederik Müller

Wichtig zu erwähnen ist, dass es sich hier um ein SMD Bauteil handelt und für Lötanfänger nicht geeignet ist!

Arduino für FunkAmateure

Arduino. Messen, Steuern, Basteln. Informatik zum Anfassen. Ivo Blöchliger

Arduino für FunkAmateure

EasyMeter. Embedded Software Vorlesung und Praktikum Thomas Brinkmann Ludwig Horsthemke

Es kann Stand-Alone oder als Erweiterung einer µc Schaltung verwendet werden.

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

I2C Serial 2.6 LCD Modul

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig)

DER MINI-PC, DER ALLES KANN. Raspberry Pi. für Einsteiger. Matt Richardson & Shawn Wallace. Übersetzung von Thomas Demmig

RFID Modul basierend auf NXP MFRC-522

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

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

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

Talking-Pi. Ausgabe Copyright by Joy-IT 1

Labor Automatisierungstechnik

JOY-iT TFT-Display 1.8

ERWEITERUNGSSHIELD MIT ANALOGEN EINGÄNGEN

Physical-Computing mit der Arduino Plattform

Raspberry Pi Robotersteuerung

Embedded Hardware Getting Started

Raspberry Pi Basis-Workshop

microsrcp Photo by Nicholas Zambetti, Modelleisenbahnsteuerung auf Basis von standarddisierten Microcontrollerboards

4. Ditzinger Makerspace. Arduino Teil 1. Ein Projekt von Repair-Café und Stadtbücherei Ditzingen Stadtbücherei Ditzingen UG

Transkript:

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

Ablauf heute ⅓ Vorlesung, ⅔ Hands-on, Feedback. Slides, Code & Hands-on: tmb.gr/syspr-10

Weitere Arten von I/O Die folgenden Arten von Input und Output gehören nicht strikt zu System-Programmierung, sind aber im Zusammenhang mit interaktiven "embedded" Linux Anwendungen von Bedeutung. Dieses Kapitel basiert auf der Raspberry Pi Hardware, die Konzepte sind aber allgemein gültig. Bibliotheken die Raspberry Pi spezifisch sind, werden nicht geprüft.

GPIO GPIO, General Purpose Input/Output sind unbesetzte CPU Pins, welche per Programm wahlweise als Signal Input oder Output verwendet werden können. Allgemein gibt es analoge und digitale GPIO Pins, der Raspberry Pi bietet aber nur digitale Inputs/Outputs. Das Pinout ist Hardware-abhängig, die Ansteuerung der Pins erfordert eine nicht-standard Bibliothek.

Digital Input/Output Ein GPIO Pin der als digitaler Input konfiguriert ist, hat entweder den Wert 1 oder 0 (HIGH oder LOW). Ein GPIO Pin der als digitaler Output konfiguriert ist, wird auf den Wert 1 oder 0 gesetzt (HIGH od. LOW). Die Spannung für HIGH/LOW hängt von der Hardware ab, Raspberry Pi verwendet 3.3V Logik.

WiringPi WiringPi ist eine einfache, Arduino-ähnliche GPIO Bibliothek in C für alle Raspberry Pi Versionen, d.h. für die SoC BCM2835, BCM2836 und BCM2837. Dokumentation gibt es unter http://wiringpi.com/, installiert wird die Library auf Raspberry Pi mit: $ git clone git://git.drogon.net/wiringpi $ cd wiringpi $./build

Beispiel: LED anschliessen Widerstand 1 kω. GND (6) Pin 0 (BCM 17, 11) Siehe Pinout Doku.

Digitaler Output blink.c Digitalen Output auf den GPIO Pin 0 schreiben: #include <wiringpi.h> int main(void) { wiringpisetup(); pinmode(0, OUTPUT); while(1) { digitalwrite(0, HIGH); delay(500); digitalwrite(0, LOW); delay(500); } }

Beispiel: Schalter anschliessen Widerstand 10 kω. 3.3V (1) Pin 2 (BCM 27, 13) GND (14) Siehe Pinout Doku.

Digitaler Input input.c Digitalen Input von GPIO Pin 2 lesen: #include <wiringpi.h> int main(void) { wiringpisetup(); pinmode(2, INPUT); while(1) { int value = digitalread(2); printf("%d\n", value); } }

Hands-on, 30': GPIO switch.!c Diese Hands-on Übung basiert auf dem GPIO Pinout des Raspberry Pi und kann gut zu zweit gelöst werden. Schreiben Sie ein Programm my_switch.c das mittels GPIO den Zustand eines Buttons liest, und damit eine LED ein- bzw. ausschaltet. Während dem Aufbau der Schaltung sollte das Gerät vom Strom getrennt sein, zum Schutz der Elektronik.

UART UART, Universal asynchronous receiver/transmitter, ist ein weit verbreitetes "Wire-Protokoll" für serielle Kommunikation. Eine UART Verbindung kann physisch entweder über USB oder direkt über GPIO Pins erstellt werden. Die Dokumentation zu Raspberry Pi UART ist hier, WiringPi enthält eine einfache Serial Library.

Bsp.: Analoger Lichtsensor anschliessen GND Pin A0 5V Widerstand 10 kω. Arduino via USB.

Beispiel: Analoger Input via Arduino Arduino ist ein Mikrocontroller mit Analog In-/Out. Arduino via USB mit Computer verbinden. In der Arduino IDE ist das Programm Examples > Basics > AnalogReadSerial Nach dem Upload läuft das Programm "stand-alone" auf dem Arduino und schreibt Output auf USB Serial. Raspberry Pi kann Output via USB Serial lesen.

Analoger Input via UART uart.c Analogen Input (z.b. von Arduino) via UART lesen: #include <wiringserial.h> int main(void) { int fd = serialopen("/dev/serial0", 9600); * int ch = serialgetchar(fd); while (ch!= -1) { putchar(ch); ch = serialgetchar(fd); } } // * ) oder "/dev/ttyama0", je nach Pi

Hands-on, 45': GPS via UART gps.!c Diese Hands-on Übung basiert auf dem UART Pinout des Raspberry Pi, und kann in Gruppen gelöst werden. Schreiben Sie ein Programm my_gps.c das via UART/ AT Commands ein GPS Modul anspricht und ausliest. Als Hardware dient das ublox PAM 7Q GPS Modul. Achtung: Verkabeln nur mit ausgestecktem Raspberry Pi, VCC des GPS Moduls nur mit 3V3 verbinden, nicht 5V.

Selbststudium, 3h: TTY Lesen Sie diese Einführung zum TTY Subsystem: http://linusakesson.net/programming/tty/index.php

Feedback? Gerne im Slack oder an thomas.amberg@fhnw.ch Programmierfragen am besten schriftlich. Sprechstunde auf Voranmeldung :) Slides, Code & Hands-on: tmb.gr/syspr-10