Projekt 32c: Komplexer Sensor für Lego Mindstorms EV3: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 89: Zeile 89:


Zunächst haben wir damit begonnen zu recherchieren welche Adruino Softwareversion nötig ist, um einen Attiny 84 programmieren zu können. Es ist zu beachten, dass die Bibliotheken Tinywires.S und Wire.h Kompatibel sein müssen, da diese für die I2C Kommunikation unabdingbar sind.
Zunächst haben wir damit begonnen zu recherchieren welche Adruino Softwareversion nötig ist, um einen Attiny 84 programmieren zu können. Es ist zu beachten, dass die Bibliotheken Tinywires.S und Wire.h Kompatibel sein müssen, da diese für die I2C Kommunikation unabdingbar sind.
I2C Kommunikation.
----




Zeile 99: Zeile 103:
Das Bild auf der rechten Seite zeigt exemplarisch den Aufbau zum Programmen des Mikrocontrollers. Im ersten Schritt wird hier der Adruino als ISP (AVR ISP) programmiert. Im nächsten Schritt kann dann der Mikrocontroller, mithilfe des Adruino programmiert werden. Hierzu muss in der Adruino IDE hinterlegt werden, dass der Adruino nunmehr als ISP fungiert ( Adruino as ISP ).
Das Bild auf der rechten Seite zeigt exemplarisch den Aufbau zum Programmen des Mikrocontrollers. Im ersten Schritt wird hier der Adruino als ISP (AVR ISP) programmiert. Im nächsten Schritt kann dann der Mikrocontroller, mithilfe des Adruino programmiert werden. Hierzu muss in der Adruino IDE hinterlegt werden, dass der Adruino nunmehr als ISP fungiert ( Adruino as ISP ).
Um zu überprüfen, inwiefern das programmieren des Mikrocontrollers funktioniert hat, haben wir mithilfe des Mikrocontrollers eine LED blinken lassen.
Um zu überprüfen, inwiefern das programmieren des Mikrocontrollers funktioniert hat, haben wir mithilfe des Mikrocontrollers eine LED blinken lassen.


Nachdem dieser Test erfolgreich gewesen ist, ist der nächste Schritt diesen für die I2C Kommunikation zu programmieren.
Nachdem dieser Test erfolgreich gewesen ist, ist der nächste Schritt diesen für die I2C Kommunikation zu programmieren.
Zeile 143: Zeile 148:
   TinyWireS.write(data);
   TinyWireS.write(data);
}
}


Aufbau.
Aufbau.
Zeile 150: Zeile 157:


Sensor und Kennlinie.
Sensor und Kennlinie.
----
I2C Kommunikation.


----
----

Version vom 10. Januar 2019, 15:33 Uhr

Lego Advance Sensor
Lego Advance Sensor

Autoren: Lieshek, Groenhagen
Betreuer: Prof. Schneider


→ zurück zur Übersicht: WS 18/19: Fachpraktikum Elektrotechnik (MTR)


Aufgabe

Nutzen Sie einen Infrarotsensor GP2Y0D21YK0F von Sharp zur Entfernungsmessung für Lego Mindstorms EV3.

Erwartungen an die Projektlösung

  • Darstellung der Theorie
  • Beschaffung der Bauteile
  • Realisierung des Aufbaus
  • Kommunikation über I2C oder UART
  • Schaltungsentwurf und Simulation mit NI CD
  • Programmierung des Microcontrollers (z.B. ATTiny)
  • Programmieren Sie den Sensortreiber für Lobby, Matlab und Simulink
  • Fahren Sie mit diesem neuen Sensor parallel zu einer Wand (Praktikumsversuch 4)
  • Test und wiss. Dokumentation
  • Live Vorführung: Fahren Sie mit diesem neuen Sensor geregelt parallel zu einer Wand.


Hinweis: Grenzen Sie sich inhaltlich von den Projekten der Vorjahre ab.

Einleitung

Im Rahmen des Moduls GET-Fachpraktikums ist uns das Projekt „Komplexer Sensor für Lego Mindstorms EV3" zugeteilt worden.

Projekt

Mithilfe eines Infrarot Distanzsensor und eines Mikrocontrollers soll der zu regelnde Abstand berechnet werden und Via I2C an den Lego EV3 übermittelt werden.

Projektplan

Material

In der unten stehenden Tabelle sind alle Materialien aufgezählt, die wir verwendet haben.

Anzahl Bezeichnung Preis Quelle
1 Distanz-Sensoren digital, GP2K 12,50 € Recihelt
1 Atmel AVR-RISC-Controller, Attiny 84 3,50 € Reichelt
2 Widerstand 2,2 KΩ 0 € Privat Vorhanden
1 Kondensator 10 µF 0 € Privat Vorhanden
20 Steckverbinder 0 € Privat Vorhanden
1 Breadboard 0 € Privat Vorhanden

Projektdurchführung

Software und Bibliotheken.


Zunächst haben wir damit begonnen zu recherchieren welche Adruino Softwareversion nötig ist, um einen Attiny 84 programmieren zu können. Es ist zu beachten, dass die Bibliotheken Tinywires.S und Wire.h Kompatibel sein müssen, da diese für die I2C Kommunikation unabdingbar sind.

I2C Kommunikation.



Attiny 84 Programmieren.


Programmierung des Mikrocontrollers mit einem Adruino Uno

Das Bild auf der rechten Seite zeigt exemplarisch den Aufbau zum Programmen des Mikrocontrollers. Im ersten Schritt wird hier der Adruino als ISP (AVR ISP) programmiert. Im nächsten Schritt kann dann der Mikrocontroller, mithilfe des Adruino programmiert werden. Hierzu muss in der Adruino IDE hinterlegt werden, dass der Adruino nunmehr als ISP fungiert ( Adruino as ISP ). Um zu überprüfen, inwiefern das programmieren des Mikrocontrollers funktioniert hat, haben wir mithilfe des Mikrocontrollers eine LED blinken lassen.


Nachdem dieser Test erfolgreich gewesen ist, ist der nächste Schritt diesen für die I2C Kommunikation zu programmieren.

Im unten stehenden Code, wird aufgezeigt, wie die Kommunikation zwischen dem Adruino als Master und dem Attiny Als Slave funktioniert.

  1. define AVR_ATtiny84
  2. include <Arduino.h>
  3. if defined(AVR_ATtiny841)
  4. define F_CPU 8000000

// Einbeziehen der Wires.h Bibliothek.

  1. include "WireS.h"
  2. else

// Taktrate definieren

  1. define F_CPU 8000000

// Einbeziehen der Tinywires.s Bibliothek.

  1. include "TinyWireS.h"
  2. endif

int d; int val; //Initialisiere analogen Pin zum Einlesen der Daten. int readpin=1; // Adresse für die Kommunikation setzen. const byte SLAVE_ADDR = 100; // Bytes die eingelesen werden sollen. const byte NUM_BYTES = 1; //Unsigned 8-bit integer uint8_t data = 1; // Setup Schleife die nur einmal durchlaufen wird. void setup() {

   TinyWireS.begin(SLAVE_ADDR);
   TinyWireS.onRequest(requestISR);
   pinMode(readpin,INPUT);

}

void loop() {} // Sobald der Master eine Anfrage sendet wird diese Funktion ausgeführt. void requestISR() {

 d=analogRead(readpin);
 val=(6762/(d-9))-4;
 data = val;
 TinyWireS.write(data);

}


Aufbau.



Sensor und Kennlinie.


Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

YouTube Video

Weblinks

Literatur


→ zurück zur Übersicht: WS 18/19: Fachpraktikum Elektrotechnik (MTR)