LBotics.at

Das KeplerBRAIN Robotik-System basiert auf einem Controller mit dem in Verbindung mit ergänzender Hardware (Sensoren und Aktoren) Steuer- und Regelaufgaben autonom ausgeführt werden können.

Die Software für den KeplerBRAIN Controller wird mit der Arduino Programmieroberfläche erstellt und dann auf den Controller übertragen, der diese in der Folge autonom ohne Verbindung mit einem Computer ausführt.

Die Übertragung eines Programms auf den KeplerBRAIN Controller erfolgt über einen USB Programmieradapter.

Der KeplerBRAIN V4 Controller

Der KeplerBRAIN V4 Controller ist der zentrale Bauteil des KeplerBRAIN V4 Systems und besteht aus einem Mikrocontroller-Board mit einem STM32F411 Mikrocontroller und Erweiterungsplatinen.

KeplerBRAIN V4 Controller COMPACT

Dieser Controller besteht aus dem Mikrocontroller-Board und zwei Erweiterungsplatinen zwischen denen sich das Mikrocontroller-Board befindet. Die untere Platine ist für die Stromversorgung der gesamten Hardware mit 3,3V und 5V zuständig und beherbergt auch vier Motortreiber, an die Gleichstrommotoren angeschlossen werden können. Die obere Platine stellt das User-Interface dar - neben direkten Ein- und Ausgabemöglichkeiten (Taster, LEDs, Display) befinden sich darauf auch Buchsen zum Anschließen von Sensoren oder Erweiterungsschaltungen.

Anschlüsse und Bedienelemente des KeplerBRAIN V4 Controller COMPACT

KeplerBRAIN V4 Controller MODULAR

Dieser Controller besteht aus einer größeren Hauptplatine auf der sich die Komponenten für die Stromversorgung mit 3,3V und 5V, die Motortreiber, wie auch Buchsen zum Anschließen von Sensoren oder Erweiterungsschaltungen befinden. Über zwei Steckleisten ist das Mikrocontroller-Board mit dieser Hauptplatine verbunden. Als Userinterface stehen zwei Boards mit einem Display, Tastern und LEDs zur Verfügung, die über Kabel mit der Hauptplatine verbunden und somit an beliebiger Stelle auf einem Roboter platziert werden können.

Anschlüsse des KeplerBRAIN V4 Controller MODULAR

Anschlüsse und Bedienelemente der KeplerBRAIN V4 Controller MODULAR Display-Boards

Der Programmieradapter

Das NUCLEO-F411RE Mikrocontroller Board besteht aus zwei Teilen: dem eigentlichen Mikrocontroller Board mit den beiden Anschluss-Pin-Reihen und einer direkt verbundenen Programmierschnittstelle über die es möglich ist, den Mikrocontroller über USB zu programmieren, ohne, dass dazu ein zusätzlicher Programmieradapter benötigt wird.

Für das KeplerBRAIN V4 System wurden diese beiden Teilboards getrennt. Einerseits um die Größe des am Roboter verbauten Boards zu reduzieren, vor allem aber, um den starken Beanspruchungen im Unterricht mit laufendem An- und Abstecken beim Übertragen der Software zum Roboter über lange Zeit standzuhalten. Anstelle der doch recht filigranen Mini-USB-Buchse treten ein 6-poliger Stecker und eine Buchse, die so eine sehr robuste Lösung darstellen.

Technische Daten der KeplerBRAIN V4 Controller
  • Arm® Cortex® M4 32-bit RISC, 100 MHz, 512 Kbytes flash memory, 128 Kbytes of SRAM
  • 3 Taster
  • 1 Reset-Taster
  • 3 LEDs
  • 1 LCD Display
  • 1 Schraubklemme: Stromversorgung (9V – 15V)
  • 4 Schraubklemmen: Motorausgänge (je 5A)
  • 8 Anschlussbuchsen: analoge Eingänge
  • 4 Anschlussbuchsen: digitale Eingänge / digitale Ausgänge / PWM-Ausgänge
  • 3 Anschlussbuchsen: SPI
  • 1 Anschlussbuchse Pixycam
  • 5/8 Anschlussbuchsen: I2C
  • 1 Anschlussbuchse: UART
Die Displays

Die Displays bieten je nach Ausführung eine Anzeige von je 16 Zeichen in zwei Zeilen bzw. je 14 Zeichen in sechs Zeilen.

Die drei User-Taster

Die drei Taster unter dem Display können frei verwendet werden und zum Beispiel zur Steuerung des Programmablaufs dienen.

Die drei LEDs

Die drei LEDs können zum Beispiel ergänzend zu den Ausgaben am Display zum Einsatz kommen um optische Signale anzuzeigen.

Die acht IOS-Ports

Die 4 IO-Ports des KeplerOpenBOT Controllers können unterschiedlich genutzt werden.

IOS1, IOS2, IOS3, IOS4: digitaler Eingang, digitaler Ausgang, PWM oder Servo

Die acht analogen Eingänge

Auf dem KeplerBRAIN Controller befindet sich ein Analog-Digital-Wandler mit acht analogen Eingängen. An diesen können Spannungen zwischen 0V und 3.3V gemessen werden - den gemessenen Spannungen werden dabei Werte zwischen 0 und 1023 zuordnet. Liegt an einem analogen Eingang eine Spannung von 0V an, liefert der AD-Wandler den Wert 0, bei einer Spannung von 3.3V erhält man den Wert 1023. Die Werte dazwischen ergeben sich proportional zur anliegenden Spannung.

Die vier Motor-Ports

An die Motor-Ports können Gleichstrommotoren angeschlossen werden, die für dieselbe Spannung ausgelegt sind, mit der der Controller betrieben wird. Jeder der vier Ports kann einen Strom von 5A schalten. Ergänzend ist es möglich mit Hilfe des Verfahrens der Pulsweitenmodulation die Geschwindigkeit von Motoren zu regeln.

Die I2C-Ports

Zum Anschluss von Sensoren, die mit dem Controller über den I2C-Bus kommunizieren, stehen auf der Platine 5 bzw. 8 Buchsen zur Verfügung. Da alle Komponenten eines I2C-Systems auf demselben Bus hängen, sind alle Anschlüsse gleichwertig, die Adressierung der angeschlossenen Sensoren erfolgt über deren Adresse.

Die vier SPI-Ports

Auf dem KeplerOpenBOT Controller befinden sich 4 Buchsen zum Anschluss von Sensoren an die SPI-Schnittstelle des Mikrocontroller Boards. Die Pinbelegung der vierten Buchse wurde so festgelegt, dass eine Pixy Cam oder eine OpenMV Cam über ein 10-poliges Flachbandkabel direkt an den Controller angeschlossen werden kann.

KeplerBRAIN V4 Sensoren

Ergänzend zum KeplerBRAIN Controller werden die Schaltpläne, Platinen-Layouts, wie auch entsprechende Software-Implementierungen für Sensoren zur Verfügung gestellt.

Tastsensor BUTTON

Dieser Sensor kann verwendet werden, um einen Roboter auf das mechanische Berühren eines Hindernisses reagieren zu lassen. Dieser Sensor wird an einen digitalen Eingang angeschlossen.

Reflexionssensor LIGHT

Mit diesem Sensor kann ein Roboter die Oberfläche, über die er sich bewegt optisch abtasten. Das ausgesandte Licht einer hellen LED wird von unterschiedlichen Farben oder Grautönen unterschiedlich stark reflektiert und die Intensität des reflektierten Lichts gemessen.

Damit dieser Sensor optimal an Umgebungsbedingungen und die Beschaffenheit der Oberfläche angepasst werden kann, befindet sich auf diesem Sensor ein Drehwiderstand, mit dem die Empfindlichkeit des Sensors eingestellt werden kann.

Die Intensität des reflektierten Lichts wird in Form von unterschiedlichen elektrischen Spannungen zur Verfügung gestellt, weshalb dieser Sensor an einen analogen Eingang angeschlossen werden muss.

Bei der Verwendung dieses Sensors ist darauf zu achten, dass die LED so schräg nach unten gerichtet ist, dass der kleine senkrecht nach unten ausgerichtete Fototransistor genau in die Mitte des Lichtpunkts der LED "schaut".

IR Abstandssensor GP2Y0A02YK0F

Bei IR Abstandssensoren der Firma Sharp wird die Distanz zwischen dem Sensor und einem Objekt mit Hilfe von infrarotem Licht bestimmt. Von einem solchen Sensor wird infrarotes Licht ausgesandt und der Winkel zwischen dem ausgesandten und dem reflektierten Lichtstrahl gemessen.

Daraus wird die Entfernung ermittelt und in Form von unterschiedlichen elektrischen Spannungen bereitgestellt. Zum Messen dieser Spannungen muss ein solcher Sensor an einen analogen Eingang angeschlossen werden.

Der Sensor GP2Y0A02YK0F kann Entfernungen zwischen 20 und 150 cm messen.

IR Abstandssensor GP2Y0A21YK0F

Der Sensor GP2Y0A21YK0F kann Entfernungen zwischen 10 und 80 cm messen.

IR Abstandssensor GP2Y0A60SZLF

Der Sensor GP2Y0A21YK0F kann Entfernungen zwischen 10 und 150 cm messen.

Ultraschall Abstandssensor SRF10

Bei einem Ultraschall Abstandssensor erfolgt die Bestimmung von Entfernungen durch die Messung der Zeit zwischen dem Aussenden und Empfangen eines akustischen Signals. Aus dieser Zeit kann mit Hilfe der Schallgeschwindigkeit die Entfernung zu dem Objekt berechnet werden, an dem der Schall reflektiert wurde.

Der Ultraschallsensor SRF10 verfügt über einen integrierten Mikrocontroller der diese Messungen und Berechnungen durchführt. Mit diesem Sensor können Daten über den I2C-Bus ausgetauscht werden. Dazu zählen zum Beispiel das Übertragen von Einstellungen zum Sensor, das Starten einer Messung oder das Auslesen von Entfernungswerten.

Orientierungssensor BNO055

Für den Bosch BNO055 IMU Sensor gibt es Breakout Boards der Firma adafruit oder anderen Herstellern. Dieser kann unterschiedliche Beschleunigungen messen und damit jede Lageänderung im Raum ermitteln. In diesem Sensor befinden sich drei aufeinander rechtwinkelig stehende Beschleunigungssensoren und drei rechtwinkelig zu einander ausgerichtete Drehratensensoren.

Somit können lineare Beschleunigungen in allen drei Raumrichtungen, wie auch Drehbeschleunigungen um alle drei Raumachsen gemessen werden. Aus diesen gemessenen Beschleunigungen berechnet ein integrierter Mikrocontroller relative Lageänderungen im Raum.

Ergänzend dazu kann der BNO055 durch drei zusätzliche Sensoren Änderungen der Magnetfeldstärke in allen drei Raumrichtungen erfassen und somit seine absolute Ausrichtung im Magnetfeld der Erde bestimmen, sofern dieses nicht von anderen Magnetfeldern überlagert oder gestört wird.

Der Datenaustausch mit dem Sensor erfolgt über den I2C Bus. Über diesen kann der Sensor initialisiert und können Lageinformationen in Bezug auf die Hoch-, Längs- und Querachse des Sensors abgefragt werden.

Liniensensor LINE

Der Liniensensor ist ein Kombination von acht Reflexionssensoren und kann dafür eingesetzt werden um z. B. einer schwarzen Linie auf einem weißen Untergrund zu folgen.

Für jeden Sensor kann die Empfindlichkeit mit einem Potentiometer eingestellt werden. Im Unterschied zum Reflexionssensor erfolgt die Messung der Spannungswerte nicht durch den Mikrocontroller auf dem Mainboard, sondern durch einen Analog Digital Wandler vom Typ MCP3008. Die gemessenen Werte werden dann über einen SPI-Port zum Mainboard übertragen.

Ergänzend zur Hauptplatine auf dem sich der Analog Digital Wandler und die Potentiometer befinden, stehen zwei Arten von Sensorplatinen zur Verfügung. Auf der einen sind vier Sensoren nebeneinander angeordnet, auf der anderen vier Sensoren in der Form eine Quadrats.

Somit können je nach Anforderung und Aufgabenstellung zwei dieser Sensorplatinen an der Vorderseite eines Roboters links und rechts einer zu verfolgenden Linie montiert werden.

Experimentierplatine PIN BOARD

Zur einfachen Entwicklung und zum Aufbau eigener Sensoren, die an einen digitalen oder analogen Eingang des KeplerOpenBOT Controller angeschlossen werden, wurde dieses Board entworfen. Darauf können aber auch Schaltungen aufgebaut werden, die an einen digitalen Ausgang oder einen digitalen Ausgang mit PWM angeschlossen werden.

Experimentierplatine I2C BOARD

Dieses Board dient zum Aufbau eigener Schaltungen, die über den I2C Bus mit dem KeplerOpenBOT Controller kommunizieren sollen.

Experimentierplatine SPI BOARD

Auf dieser Platine können Schaltungen aufgebaut werden, die Daten mit dem KeplerOpenBOT Controller über SPI austauschen.

df