Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

K
K
Zeile 194: Zeile 194:
 
[[Kategorie:Elektronik]]
 
[[Kategorie:Elektronik]]
 
[[Kategorie:Projekte]]
 
[[Kategorie:Projekte]]
[[Kategorie:Software]]
 

Version vom 2. September 2014, 20:47 Uhr

RP6 ArduIO Erweiterungsplatine

Die RP6-ArduIO Erweiterungsplatine (siehe auch die RP6-MultiIO-Erweiterungsplatine) im üblichen RP6-Layout ist als reine I2C-Erweiterung sowohl für den RP6, als auch für Arduino-Boards und –Shields gedacht. Entwickelt wurde sie zusammen mit einigen Mitgliedern des Roboternetzes von fabqu (Hardwarearbeiten) und Dirk (Softwarearbeiten).

Umfangreiche Dokumentation, sämtliche Beispielprogramme und Bibliotheken, Daten, Teilelisten und eine Lötanleitung finden sich unten in den Weblinks.

Bestellung des Multi-IO-Moduls

Diese fünf Platinen können bei fabqu ( http://www.roboternetz.de/community/members/47148-fabqu oder fabqu@web.de ) bestellt werden. Sie sind mit Lötstopplack (schwarz) sowie beidseitig mit einem Bestückungsdruck (in weiß) versehen.

Sie sind nicht aufgebaut, aber fabqu bietet an, sie komplett aufzubauen, zu löten und zu testen.


Features des ArduIO-Moduls

On-Board-Sensoren

  • Externe Stromversorgung
    • Bis zu 10 Volt
    • Verpolungs- und kurzschlussicher
    • Netzgerät möglich
    • 5V- und 3,3V-Regler on Board
  • USRBUS, alle 14 Pins stehen zur freien Verfügung
  • XBUS
    • Nutzung des externen Akkus für RP6-Basiseinheit möglich
    • Nutzung des Akkus der RP6-Basiseinheit möglich
    • Pinherausführungen für I2C (5V- und 3,3V-Pegel, incl. bidirektionalen Pegelwandlern)
  • 48 IOs via I2C, 32 davon für 5V-Pegel, 16 für 3,3V-Pegel; freie Adresswahl der ICs
  • 12 ADCs via I2C; freie Adresswahl der ICs
  • 3 DACs via I2C; freie Adresswahl der ICs
  • 16 PWM-Outputs via I2C, daran:
    • 4 jumperbare LEDs
    • 8 Dual Leistungs-MOSFETs, je vier n- und vier p-Channels
    • MOSFET-Schaltzustände werden jeweils durch eine eigene LED angezeigt
    • Leistungs-MOSFETs sind über eine resttable Fuse zusätlich gesichert
    • 4 freie PWMs
  • Arduino-Aufnahme
    • Sowohl Boards als auch Shields möglich
    • I2C für Arduino mit 5V- oder 3,3V-Pegel möglich (jumperbar)
    • Arduino-Shields können jumperbar durch 16 IOs via I2C emuliert werden
    • Arduino-Boards können jumperbar durch 16 IOs und 4 ADCs ausgelesen/gesteuert werden


Software

Die Software wird von Dirk erstellt. Diese Bibliotheken sind natürlich nur ein Vorschlag und sollen nur zur Anregung eigener Projekte und eigener Bibliotheken dienen. Es ist geplant, eine Bibliothek mit allen fest installierten Sensoren und Aktoren aufzubauen. Darüber hinaus soll sich eine weitere Bibliothek mit Umwelt-Fragen beschäftigen (Luftdruck, Luftfeuchtigkeit, Temperatur) sowie eine mit den Sensoren für Lageerkennung (GPS, 2D-, 3D- oder 9D-Kompass). Diese Bibliotheken liegen – wie das gesamte Projekt – als Open Source vor und werden den Usern zugänglich gemacht.

Der Software-Artikel befindet sich HIER.

Wir haben die Artikel für Soft- und Hardware der Übersichtlichkeit wegen getrennt.

Kurzbeschreibung

Neben einer Anschlussmöglichkeit für eine externe Stromquelle (Akku, Netzgerät) kann der Hauptakku des RP6 zur Versorgung genutzt werden. Ebenso kann zwischen einem Boardeigenen 5V-Regler und der RP6-eigenen 5V-Versorgung gewählt werden.

Ein 3,3V-Regler mit MOSFET-Pegelwandlern für den I2C-Bus gehören ebenso zur Ausstattung.

Die Erweiterung RP6-ArduIO enthält drei 16fach IO-Expander (einmal 3,3V und zweimal 5V), 12 AD- sowie 3 DA-Wandler sowie einen 16fach 12bit-PWM-Treiber. Ein 5V-IO-Expander sowie vier der AD-Wandler können jumperbar verwendet werden, um einerseits Pegelstände eines eventuell angeschlossenen Arduino-Boards oder –Shields auszulesen, andererseits können die IO‘s ebenso genutzt werden, um ein nicht vorhandenes Arduino-Board zu emulieren, also nachzuahmen, wenn Arduino-Boards und –Erweiterungen ohne eigenes Shield angeschlossen sind. Des weiteren können Arduino-Boards und –Shields direkt mit dem RP6 kommunizieren und in einem Mehrkern-Verbund interagieren.

Der 16fach PWM-Treiber kann verwendet werden, um jumperbar 4 boardeigene LEDs sowie vier Dual-n-p-Channel Power-MOSFETs zu treiben. LEDs zeigen die Zustände der jeweiligen Channels an. Diese vier n- und vier p-Channel MOSFETs kommen auch beim RP6v2 als Motortreiber zum Einsatz, sind hier jedoch in erster Linie als Treiber für „normale“ ohmsche Verbraucher gedacht. Sollen sie als Motortreiber („H-Brücke“) genutzt werden, bitte den zugehörigen Artikel genau lesen und bei Bedarf weitere Literatur hinzuziehen.


Hardware

5V-IO-Expander #1:

Baustein: PCF8575

Name auf Board: IC8

Pegel: 5V

Adresse:

Dieser I2C-IO-Expander steht zur freien Verfügung. Alle 16 IOs sowie +5V und GND sind an den Wannensteckern herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden.


5V-IO-Expander #2:

Baustein: PCF8575

Name auf Board: IC13

Pegel: 5V

Adresse:

Dieser I2C-IO-Expander steht zur freien Verfügung. Alle 16 IOs können an den Jumperreihen abgegriffen oder über Jumper mit den jeweiligen Pins der Arduino-Aufnahme verbunden werden. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden.


3,3V-IO-Expander #3:

Baustein: PCF8575

Name auf Board: IC12

Pegel: 3,3V

Adresse:

Dieser I2C-IO-Expander steht zur freien Verfügung. Alle 16 IOs sowie +3,3V und GND sind an den Wannensteckern herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Die IOs GP16 sowie GP17 sind an zwei Einzelpins herausgeführt.


5V-AD-DA-Expander #1:

Baustein: PCF8591

Name auf Board: IC11

Pegel: 5V

Adresse:

Dieser I2C-AD-DA-Expander steht zur freien Verfügung. Alle 4 ADCs sowie +5V und GND sind an dem Wannenstecker herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Der DAC ist an einem Einzelpin herausgeführt („DAC1“).


5V-AD-DA-Expander #2:

Baustein: PCF8591

Name auf Board: IC10

Pegel: 5V

Adresse:

Dieser I2C-AD-DA-Expander steht zur freien Verfügung. Alle 4 ADCs sowie +5V und GND sind an dem Wannenstecker herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Der DAC ist an einem Einzelpin herausgeführt („DAC2“).


5V-AD-DA-Expander #3:

Baustein: PCF8591

Name auf Board: IC9

Pegel: 5V

Adresse:

Dieser I2C-AD-DA-Expander steht zur freien Verfügung. Alle 4 ADCs sind an dem Jumper herausgeführt und können an die Eingänge der Arduino-Aufnahme angejumpert werden. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden. Der DAC ist an einem Einzelpin herausgeführt („DAC3“).


5V-PWM-Expander, 16fach, 12bit:

Baustein: PCA9685

Name auf Board: IC3

Pegel: 5V

Adresse:

Dieser I2C-PWM-Expander steuert unter anderem vier LEDs und die Leistungs-MOSFETs (siehe unten) an. Die PWMs 12 bis 15 stehen zur freien Verfügung und sind an Einzelpins herausgeführt. Die Adresspins A0 sowie A2 können jumperbar auf 0 oder 1 gesetzt werden.


LEDs

Die vier Status-LEDs „LED1“ bis „LED4“ können mittels PWMs 8 bis 11 des IC3 angesteuert werden.


MOSFETs

Bausteine: 4x SP8M3, je dual ein n- und ein p-Channel

Namen auf Board: IC4 bis IC7

Jeder dieser MOSFET-ICs enthält einen p- sowie einen n-Channel. Ihre Ausgänge sind zusammen mit der Batteriespannung und GND an den Wannenstecker herausgeführt. Sie werden durch den I2C-PWM-Expander (Ausgänge 0 bis 7) angesteuert und erreichen daher eine maximale Schaltfrequenz von 1kHz. Sie sind grundsätzlich für ohmsche Lasten ausgelegt, nicht für induktive (Motoren). Ihre Schaltzustände (On und Off) werden für jeden Kanal durch die LEDs 6 bis 9 (p-Channels 1 bis 4) und 10 bis 13 (n-Channels 1 bis 4) angezeigt. Diese LEDs können durch zwei Jumper komplett deaktiviert werden.

Eine resettable Fuse („F2“) dient zum Schutz der MOSFETs vor zu starkem Stromfluss. Hier muss jedoch beachtet werden, dass diese vergleichsweise langsam schaltet und ein Auslösen unter Umständen unbemerkt bleiben kann. Sie funktioniert einfach dadurch, dass sie sich bei hohen Strömen ( >4,5A ) aufheizt und dann hochohmig, also nicht-leitend wird. Nach dem Abkühlen sinkt der Widerstand wieder und sie wird leitend.

Mit etwas Fachwissen können sie jedoch schnell zu zwei Motortreibern, also H-Brücken umgebaut werden. Dafür müssen die Dioden D6 bis D9 sowie D2 bis D5 (richtig herum!) eingelötet werden. Diese sind als Rücklaufdioden für die in den Spulen der Elektromotoren gespeicherten elektrischen Energie gedacht. Es handelt sich dabei um solche vom Typ BYM10-50. Darüber hinaus muss beachtet werden, dass die maximale PWM-Frequenz 1kHz beträgt. Diese Frequenz ist vom menschlichen Gehör spürbar, es kann also zur Geräuschentwicklung durch die angesteuerten Motoren kommen. Dies ist für die Motoren natürlich nicht von Nachteil, lediglich für den Zuhörer. Es muss jedoch unbedingt auf eine korrekte Beschaltung der MOSFETs geachtet werden, da sonst ein Kurzschluss droht. Wird ein p- und ein n-Channel-MOSFET an einem Motorkontakt angeschlossen und beide in den On-Status versetzt, wird ein Kurzschluss der Batteriespannung auf GND erzeugt. Die kann mehrere teils verehrende Folgen für dieses Board haben: Im besten Fall brennt die Hauptsicherung „F1“ durch oder die resettable Fuse „F2“ unterbricht den Kontakt. Im schlimmeren Fall könnten die MOSFET-IC-Bausteine Schaden nehmen oder sogar Zuleitungen platzen. Dann wird eine Reparatur sehr aufwändig. Also hier bitte nur mit dem nötigen Fachwissen rangehen! Es wird außerdem empfohlen, die MOSFETs bei Verwendung als H-Brücke mit einer eigenen Batterie zu versorgen, nicht mit de Hauptakku des RP6 über den XBUS.

Arduino-Aufnahme

An den mit „Arduino“ bezeichneten und blau eingerahmten Pinheadern können Arduino-Boards (von unten) und –Shields (von oben) aufgesteckt werden. Die Stromversorgung für das jeweilige Board kann über Jumper gewählt werden: Batteriespannung („UBat“), +5V oder +3,3V. Natürlich darf hier immer nur einer der drei Jumper gesteckt sein, sonst regeln zwei oder mehr Spannungsregler gegeneinander und können Schaden nehmen. Bei Verwendung von 3,3V muss natürlich auch der 3,3V-Regler durch den Jumper angeschaltet sein.

Aufnahme auf Headern von Boards (unten) und Shields (oben). Wahlweise +UB, +5V oder +3,3V als Versorgung. Wahlweise 5V-I2C oder 3,3V-I2C


Anschluss von externen Spannungsquellen

Buchse „B1“, Überbrückbar. Auch Hauptakku/XBUS nutzbar. Schalter „S1“


5V-Regler

„IC2“, Jumperbar eigener Regler oder Hauptregler RP6, also XBUS. „LED5“ zeigt Zustand an.


3,3V-Regler

„IC1“, Jumperbar on/off. „LED14“ zeigt Zustand an.


3,3V-I2C

Zwei MOSFETs als bidirektionale Pegelwandler


Int-Leitungen #1 bis #3 des XBUS

Pullups, Int1 an IO#2, Int2 an IO#1, Int3 and IO#3, alle jumperbar


Sicherung „F1“ und Verpolungsschutz

Diode „D1“, Sicherung bis 6A???


Weblinks

-> HIER findet ihr Umfangreiche Dokumentation, sämtliche Beispielprogramme und Bibliotheken, Daten, Teilelisten und eine Lötanleitung.


LiFePO4 Speicher Test