Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Markus Heller, M.A. (DL8RDS)Datum: 14.03.2010 Folie Nummer 1 File: Einsatz von Mikrocontrollern in Amateurfunkprojekten Microcontroller in Selbstbauprojekten."—  Präsentation transkript:

1 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

2 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

3 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

4 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

5 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)

6 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

7 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

8 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

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

10 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!

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

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

13 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

14 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

15 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 }

16 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); }

17 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() {}

18 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; }

19 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); }

20 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); }

21 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


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

Ähnliche Präsentationen


Google-Anzeigen