Markus Heller, M.A. (DL8RDS)Datum: 14.03.2010 Folie Nummer 1 File: Einsatz von Mikrocontrollern in Amateurfunkprojekten Microcontroller in Selbstbauprojekten.

Slides:



Advertisements
Ähnliche Präsentationen
Digital Output Board and Motherboard
Advertisements

Entwicklung des Attiny-Boards Version 1.0 – 2.1 Prototyp.
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Computersimulation steuert echtes Frontpanel an
IO - Hardwarestruktur, allgemein
Wozu Mikrocontroller?.
Atmel AVR JTAG Einführung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Embedded Applications
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
Der C-Präprozessor EDV1 - 04Präprozessor.
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Studienarbeit Mini-Web-Server auf einem Signalcontroller
Bios.
1. Was ist Hardware? Hardware nennt man alle Geräte und Bauteile, die zu einem Computer gehören – also alles was man am Computer anfassen kann. Bsp: Monitor,
Betriebssysteme allgemein
Saia® Systemkatalog Kapitel B2-Kommunikation & Interaktion
Basic Input/Output System
Elektronischer Würfel
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Embedded Systems Prof. Dr. H. Kristl
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Computerorientierte Physik VORLESUNG
Lindenmayer-Systeme: Fraktale rekursiv zeichnen
Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Aus-drücke, arithmetische Operatoren.
auf kleinen Linux-Devices
Wer macht was beim Einschalten des Rechners?
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Was mich ursprünglich von Perl überzeugt hat. Gegeben ist eine Textdatei, deren Größe unbekannt ist. Sie ist jedoch so klein, daß sie komplett in den Speicher.
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
Programmieren in Assembler
Verarbeitung und Computerinneres
EN/FAD Ericsson GmbH EDD/ Information im 21. Jahrundert muss Erwünscht Relevant Erreichbar Schnell Kostenlos!?
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Entwicklung des Attiny-Boards
Mikrocomputertechnik Jürgen Walter

Arduino Mikrocontrollerkurs
Ausgabe von analogen Werten
Entfernungsmessung mit Ultraschall
Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS , Folie 1 Beispiel Cache-Architektur.
Mainboard Kolbe, Klein, Hollermann.
Von Marcel Poppen & Oliver Lennartz
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Ein- und Ausgabe (I/O) E. Eube, G. Heinrichs, U. Ihlefeldt (V 1.0 C 2016) 1 µC Aktoren o. Ä. LED Pieper Relais Motor … D/A-Wandler Ext. Speicher … Aus-
DAS MAINBOARD „MOTHERBOARD“ Warum und wozu die Hauptplatine des Computers?
(c) dusjagr, gäss, stahl SID-Emulator v1.0: minimalistic By Christoph Haberer,
Programmieren in C / C++ Internet der Dinge Mikrocontroller ESP8266
Ausgabe von analogen Werten
Programmieren in C / C++ ESP8266-Boards und das Internet der Dinge
C / C++ für das Internet der Dinge und Hausautomatisierung Arduino Uno / Nano / … Input, Interrupts, Timer, Sleepmode Hochschule Fulda – FB AI Sommersemester.
Erste Schritte im Internet of Things
Marsroboter Fernsteuern - Ein Projekt am DLR Modulphase 2010
Programmieren in C / C++ Software Serial, Bluetooth
Inhaltsverzeichnis Was ist Arduino? Hardwarekomponenten
>> Analogwerte senden über serielle Schnittstelle
Unser Mikrocontroller – Der Arduino
Hello World! Javakurs 2013 Arne Kappen
Die I/O-Register des Attiny
Projektmodul DM Kurze Einführung Arduino und Arduino-Programmierung
X Verwendungshinweise:
INVERSES PENDEL
t t t.
Vom Prozessor zum System
Vom HW-Automaten zum Prozessor
Medizinische Statistik und Informationsverarbeitung
מבוא למערכות מחשב ואסמבלי
ESP32 Arduino Herzlich willkommen zum Edison Quickie. „ESP32-Blink“
 Präsentation transkript:

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 1 File: Einsatz von Mikrocontrollern in Amateurfunkprojekten Microcontroller in Selbstbauprojekten am Beispiel des Atmega 328 (Arduino) von Markus Heller, M.A. DL8RDS

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 2 File: Ein Taschenrechner und ein Kernel: Die Funktionsweise sehr einfacher Rechner InputOutput Stack-Speicher Programm Input

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 3 File: Ein Taschenrechner und ein Kernel: Der kleine Sprung zu DOS Output Programm-Speicher Während der Laufzeit wählbares Programm Input

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 4 File: Ein Taschenrechner und ein Kernel: Der Mißbrauch von DOS Viele Programme gleichzeitig Konkurrierende Hardwarezugriffe Egoismen der Programme bzgl. Arbeitsspeicher Programme reißen auch die CPU an sich TSR-Viren

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 5 File: Ein Taschenrechner und ein Kernel: Mikrocontroller gegenüber modernen Betriebssystemem Wichtig: Betriebssystem ist nur der Kernel! Grafik gehört nicht zum Betriebssystem! Kernel ist erst mal nur eine Loop, aber mit einigen Konsequenzen. Neue Aufgaben für den Kernel: Abschottung der Programme von der Hardware Prozeßmanagement Memory Management Hardwareunterstützung (Software-Protokolle)

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 6 File: Ein Taschenrechner und ein Kernel: Unterschied zwischen Mikrocontrollern und Kerneln Strikt: Eine einzige Aufgabe Bekannte Hardware Keine Kollision von Programmen Keine unbekannten, unkoordinierten Softwarehersteller

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 7 File: Mikroconroller an und für sich Grundbausteine jedes Rechners: CPU, RAM, Storage, IO Meist mit ADC Werden programmiert Haben sehr klar definierten, kleinen Betriebszweck Wir betrachten den ATMega 328P: 8 Bit CPU / BUS 23 IO Lines 32k Flash, 1k EEPROM, 2k RAM 6 PWM 10bit ADC Serial USART SPI und I2C Watchdog

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 8 File: Das Projekt Arduino Open Source Hardware Programmiersprache WIRING Integrierte Entwicklungsumgebung (siehe rechts) BootLoader für den uC Peripherie Beispiel-Code Zielgruppe: Nicht-Elektroniker Lernplattform für den schnellen Erfolg mit uCs

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 9 File: Das Projekt Arduino Boardvarianten

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 10 File: Das Projekt Arduino Shields und Breakouts ArduPilot - Arduino Compatible UAV Controller w/ ATMega328 Digital gesteuerter Antennenrotor! ArduIMU Sensor Board - Six Degrees of Freedom (Main) Rotorkontrolle!

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 11 File: Das Projekt Arduino Shields und Breakouts Xbee-Board 2,4 GHz! Bluetooth Mate

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 12 File: Das Projekt Arduino Shields und Breakouts WiFly (WIFI) Arduino Ethernet Shield

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 13 File: Das Projekt Arduino Shields und Breakouts GPS Shield APRS-Eigenbau! VoiceBox Shield CQ-Papagei... OnScreenDisplay

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 14 File: Das Projekt Arduino IDE, Compiler, Tools und Bootloader Entwicklung des Arduino-Programms in einer Entwicklungsumgebung Mikrocontroller werden meist direkt mit einem Programm beschrieben Arduino hat einen BootLoader GCC-AVR-Compiler kompiliert „avrdude“ gibt das Programm an den Bootloader und setzt das Board zurück

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 15 File: Eine LED blinken lassen int ledPin = 13; // LED connected to digital pin 13 void setup() { // initialize the digital pin as an output: pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(ledPin, LOW); // set the LED off delay(1000); // wait for a second }

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 16 File: Einlesen eines Wertes über einen ADC int potiPin = 0; int potiVal = 0; int ledPin = 2; void setup() { int potiPin = 0; pinMode(ledPin, OUTPUT); } void loop() { int potiVal = analogRead(potiPin); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(potiVal*2); }

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 17 File: Ein LCD-Display ansteuern #include // Wiring pattern: LiquidCrystal(rs,rw,enable,d0,d1,d2,d3,d4,d5,d6,d7) LiquidCrystal lcd(12,11,10,9,8,7,6,5,4,3,2); void setup() { lcd.print("arduino"); } void loop() {}

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 18 File: Lesen und Schreiben über die serielle Schnittstelle if (b == 66) { blink = 0; } if (blink == 1) { digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin,LOW); delay(potiVal*2); } else { digitalWrite(ledPin, LOW); } Serial.println(" "); delay(10); } int potiPin = 0; int potiVal = 0; int blink = 1; int ledPin = 2; void setup() { Serial.begin(9600); int potiPin = 0; pinMode(ledPin, OUTPUT); } void loop() { int potiVal = analogRead(potiPin); Serial.println("Poti-Wert:"); Serial.println(potiVal); if (Serial.available() > 0) { char b = Serial.read(); if (b == 65) { blink = 1; }

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 19 File: Temperatur auslesen über I2C #include #define address 0x48 void setup() { Wire.begin(); Serial.begin(9600); } void loop() { Wire.beginTransmission(address); Wire.send(0x00); Wire.requestFrom(address, 1); int temperature; if (Wire.available()) { temperature = Wire.receive(); } Wire.endTransmission(); Serial.println(" "); Serial.println(temperature); delay(1000); }

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 20 File: Kommunikation über Ethernet #include #define address 0x48 byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; byte ip[] = {192, 168, 178, 190}; byte gateway[] ={192,168,178,1}; byte subnet[] = {255,255,255,0}; Server server = Server(80); void setup() { Wire.begin(); Serial.begin(9600); Ethernet.begin(mac, ip, gateway, subnet); server.begin(); } void loop() { Client client = server.available(); if (client) { Wire.beginTransmission(address); Wire.send(0x00); Wire.requestFrom(address, 1); int temperature; if (Wire.available()) { temperature = Wire.receive(); } Wire.endTransmission(); server.print("HTTP/ OK\r\nServer: arduino\r\n"); server.print("Content Type: text/html\r\n\r\n"); server.print(" "); server.print("Zimmertemperatur \r\n"); server.print(" Zimmertemperatur: \r\n"); server.print(temperature-4); server.print(" Uptime:"); server.print(millis()); server.print("ms. "); delay(10); client.stop(); Serial.println(" "); Serial.println(temperature); }

Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 21 File: Einsatz von Mikrocontrollern in Amateurfunkprojekten Das war eine... Eine Einführung: Microcontroller in Selbstbauprojekten am Beispiel des Atmega 328 (Arduino) Für eure Aufmerksamkeit bedankt sich... Markus Heller, M.A. DL8RDS