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

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




[[Datei:EV3-Arduino-Pinbelegung.png|300px]]
[[Datei:EV3-Arduino-Pinbelegung.png|rechts|min| EV3-Arduino_Pinbelegung]]


''Abbildung: ''[http://www.dexterindustries.com/howto/connecting-ev3-arduino/ Dexter Industries: Connecting the EV3 to Arduino]
''Abbildung: ''[http://www.dexterindustries.com/howto/connecting-ev3-arduino/ Dexter Industries: Connecting the EV3 to Arduino]
Zeile 104: Zeile 104:
   -> Fertig gelötet
   -> Fertig gelötet


[[Datei:Fertig-gelötet.jpeg|rechts|mini]]
[[Datei:Fertig-gelötet.jpeg|rechts|mini|ATtiny84 und Ev3-Anschluss]]





Version vom 15. Januar 2019, 18:15 Uhr

Lego Advance Sensor
Lego Advance Sensor

Autoren: Leger Paco Kamegne Kamdem, Ferry Rossini Nde

Betreuer: Prof. Schneider


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

Aufgabe

Entwickeln Sie einen komplexen Sensor für Lego Mindstorms EV3.

Erwartungen an Ihre Projektlösung

  • Darstellung der Theorie
  • Realisierung des Aufbaus
  • Platinenlayout und Gehäuse kompatibel zum Lego Stecksystem (montierbar)
  • Kommunikation über I2C
  • Schaltungsentwurf und Simulation mit NI CD
  • Programmierung des Microcontrollers (z.B. Attiny)
  • Treiber für EV3 Lobby
  • Test und Dokumentation
  • Live Vorführung während der Abschlusspräsentation
  • Kür: Treiber für Matlab und Simulink

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

Einleitung

In diesem Artikel wird der Aufbau und die Programmierung eines Lego EV3 und eines Arduino UNO erklärt. Das Ziel des Projekt ist ein komplexer Sensor für Lego Mindstorms zu entwickeln, in dem Fall ein IR-Abstandsensor (Sharp GP2Y0A41SK0F). Der Sensor soll den Abstand zwischen seinen Position und einen Hindernis messen, von Arduino ausgelesen werden, und durch I2C im EV3-Display ausgegeben werden.

Projekt

Die Daten des Infrarotsensors sollen vom einem Atmel ATtiny 84 (8-Bit Mikrocontroller) eingelesen und am EV3-Brick ausgegeben werden.

Projektziel

Projektdurchführung

Bevor wir die Verbindung mit ATtiny84 durchführen, werden wir erstmal mit Arduino Uno vorführen.

Erster Einsatz mit Arduino

Software
- Arduino Uno programmieren
  -> Arduino Uno konfigurieren, so dass er als Slave (I2C) betrachten wird und zwar mit einer 
     bestimmten Programm : - - - - - - .
- EV3 programmieren
  -> Ev3 konfigurieren, so dass er als Master betrachten wird und zwar mit I2C Treiber und 
     einem bestimmten Programm : - - - - .
Hardware
- Aufbau
  -> Verbindung zwischen Arduino Uno und EV3

Abbildung: 42 Bots (2013): Programming ATtiny84 with Arduino Uno


Abbildung: Atmel: ATtiny84 - Datasheet

  -> Prototyp 
  -> ....


Zweiter Einsatz mit Atmel ATtiny

Aufgrund der üppigen Bauform des Arduino Uno wird im zweiten Ansatz versucht die Bauform zu reduzieren. Hierzu wird das Arduino Board durch ein Atmel ATtiny 84 (8-Bit Mikrocontroller) auf einer selbstgefrästen Platine ersetzt. Die Programmierung von Atmel ATtiny erfolgt durch Arduino Uno. Dafür müssen wir Arduino Uno und Atmel ATtiny verbinden.

Software
- ATtiny84 programmieren
  -> ATtiny84 wird durch Arduino Uno programmiert.
  -> erstmal wird ATtiny84 gefläscht, mit einem bestimmten Konfiguration.
  -> als Probe haben wir ein LED blinken lassen ( das funktioniert tatsächlich ).
  -> ATtiny84 als Slave konfigurieren 
- EV3 programmieren
  -> Bei EV3 bleibt unverändert 
Hardware
- Aufbau
  -> Verbindung zwischen ATtiny84 und Arduino Uno

Der EV3-Brick und der Arduino UNO werden über die nachfolgende Pinbelegung verschaltet.


EV3-Arduino_Pinbelegung
EV3-Arduino_Pinbelegung

Abbildung: Dexter Industries: Connecting the EV3 to Arduino

  -> Prototyp
  -> Fertig gelötet
ATtiny84 und Ev3-Anschluss



Der Infrarotsensor lässt sich über die 3 Leitungen (VCC, GND und Datenleitung) mit dem Arduino UNO verschalten. Da im EV3-Programm der Eingangs-Pin des Slaves mit Pin=4 definiert wurde, muss die Datenleitung des Infrarotsensors am Eingang A1 anliegen. Die Versorgungsspannung des Infrarotsensors liegt an 5V an. Die Masse entspricht der Masse des Arduino UNO.

Ergebnis

Wie oben erwähnt, sollten wir zwei Einsätze durchführen. Beim Ersten Einsatz sind wir wie folgendes eingegangen:

- Den Arduino Uno als Slave konfiguriert, so dass er den Befehl ausführt. Und zwar Die Rohrwerte von dem Infrarot Sensor auslesen und durch I2C zu EV3 (Master) die Werte weiterleiten. 
- Den EV3 als Master sollte die Werte in cm übersetzen und ausgeben. Dafür muss den EV3 auch konfiguriert bzw. mit bestimmten I2C Treiber Programmiert werden. Denn die Kommunikation erfolgt durch I2C. 

Wenn diese Schritte richtig durchgeführt sind, kann man.

Zusammenfassung

Lessons Learned

Projektunterlagen

YouTube Video

Weblinks

Literatur


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