PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] RP6 - Base Daten ans LCD Senden?



o.g.1985
15.06.2011, 10:42
Hallo,

Ich hab ein kleines Problem.
Ich will Daten von RP6(Base) Daten an LCD Senden.

Die Base ist Slave, M32 Soll Master werden.
1. Ist es möglich das der Slave die Daten direkt ans LCD Sendet?
2. Oder Muss ich mit der M32 die Daten auslesen und dan an LCD Senden.

Um die M32 zu entlasten werde mir lieber wenn 1. Funzen würde.

Mein Vorhaben:

Ich will ein Menü schreiben das ich mit der IR-Fernbedienung steuren kann und das soll auf den Slave laufen, Menüe ausgabe auf´s LCD.

Wenn ich das https://www.roboternetz.de/community/showthread.php?53591-RX3310A-UHF-ASK-Receiver hinbekommen wird die IR-Fernbedienung durch die Funk ersetzt. :p

MFG Oliver G

radbruch
15.06.2011, 11:46
Hallo

Mit einem I2C-LCD wäre das kein großes Problem. Aber blöderweise ist das LCD am m32 parallel angeschlossen (4Bit ohne Busy) und dazu werden die Daten fürs Display auch noch durch IC3 (Schieberegister 74HC4094D) geschoben. Es wäre deshalb sinnvoll, wenn sich das m32 auch weiterhin um die Ausgabe auf dem LCD kümmert. Auf der Base könntest du eine Variable (ein array[zeilen*spalten]) verwalten und diese Variable auf Anfrage durch das m32 (polling) oder noch besser bei Änderung über einen Interrupt (E_INT) per I2C an das m32 senden. Das m32 übergibt die Daten dann direkt ans LCD weiter.

Wenn das m32 und die Base neben den SDA- und SCL-Verbindungen auch eine gemeinsame Interruptleitung verwenden, könnte auf dem m32 auch ein I2C zu parallel-Wandler programmiert werden der die I2C-Daten vom Base empfängt und direkt zum LCD weiterleitet. Das wäre der elegantere Ansatz den ich umsetzen würde, wenn ich ein m32 hätte;) Das m32 würde dann einen PCF8574 simulieren.

Eine Alternative wäre das LCD direkt am Base zu betreiben. Das hatte ich schon mal umgesetzt, als parallele Schnittstelle dienen die LEDS:

https://www.roboternetz.de/community/showthread.php?37232-LCD-an-RP6-Base

http://i.ytimg.com/vi/Gz7zc7He9F8/2.jpg (http://www.youtube.com/watch?v=Gz7zc7He9F8)
http://www.youtube.com/watch?v=Gz7zc7He9F8

Gruß

mic

SlyD
15.06.2011, 13:58
Hallo,

die M32 hat doppelt soviel Rechenleistung wie die Base und mehr freie Rechenzeit sowie mehr freien Speicher (Motorregelung etc. entfällt).
Die Funktionen zur Steuerung des Roboters sind auf beiden in etwa identisch angelegt mit der zusätzlichen Lib aus den Beispielen.

Daher ist die M32 in den normalen Beispielen natürlich der Master der die Sensorwerte vom Slave über I2C abholt und dann auf dem Display darstellt. Was für Sensorwerte das nun sind spielt keine große Rolle - das geht auch mit RC5.


> Aber blöderweise ist das LCD am m32 parallel angeschlossen
> und dazu werden die Daten fürs Display auch noch durch IC3 (Schieberegister 74HC4094D) geschoben.

Das hat schon seine Gründe - die I2C Buslast würde unnötig erhöht wenn mans darüber laufen lässt, es dauert auch länger die Daten zu übertragen.
Ein I2C Display würde auch etwas mehr kosten.
Auf dem M32 wird der SPI Bus sowieso für das EEPROM verwendet also wars logisch den noch für andere Zwecke zu benutzten - es werden damit EEPROM, 4 LEDs und das Display angesteuert, spart also einiges an Pins.

MfG,
SlyD

radbruch
15.06.2011, 14:17
Das "blöderweise" bezieht sich hier auf den Wunsch, das LCD vom Base aus zu betreiben. Es sollte keine Kritik am Konzept des m32 sein ;)

RolfD
15.06.2011, 16:27
Man sollte die Verbindung M32-Base wirklich so sehen wie auch Lebewesen aufgebaut sind. Die Base stellt quasi das vegetative Nervensystem dar.. also Bewegungssteuerung, Hinderniserkennung usw... und die M32 ist quasi das Brain. Man kann die Aufgaben sicherlich anders verteilen aber die Auslegung der Hardware folgt nun mal diesem sinnvollen Konzept und die Aufgaben der Base sind zudem zeitkritisch. Was immer geht, sind Erweiterungen der Base wie Scheinwerfer, Liniensensor oder so. für "intelligente" oder komplexe Aufagben würd ich die M32 nutzen und die IR-Werte einfach abfragen, die Base ist schließlich schon mit deren Erkennung und als i2c slave beschäftigt. Sonst bietet sich wie oben schon gesagt noch ein i2c Display an, was von allen Prozessoren angesprochen werden kann.
LG

o.g.1985
15.06.2011, 19:10
@RolfD (https://www.roboternetz.de/community/member.php?48237-RolfD)
Mir geht es nicht um die Bewegungssteuerung, Hinderniserkennung usw.. wie du es sagst!
Die M32 wird das Hirnist ja logisch mehr Power.
Mir geht es darum ich will ein Menüe erstellen mit dem sie Sensoern und System des Roboters Ein / Aus schalten oder einstell kann.
Und das soll noch in die Base mit rein weil ich da noch Speicher hab. Und wenn ich ihn Fernsteuern will würde, ich alle System die ich nocht brauch ausschalten oder auf Slow-Mode setzten (M32) man braucht ja dann kein hirn.

z.b.
+---+---[System]
+
+--+[Sensoren]+--+[Diagnostik]+--+[Robot Remote Control]
+
+---[ACS] -> (OFF) -> (Low) -> (Med) -> (High)
+---[US] -> (OFF) -> (ON) -> (Save Distans)
+ usw..

Also werde ich alles in ein Arry rein Schreiben und mit der (M32) auslesen so wie es radbruch vorgeschalgen hat.

PS: Jetzt hab ich was gefunden was für meine zwecke optimal ist bei Pollin:

LCD-I2C Modul ( 94-810 145  )
LCD-I2C Adaptermodul mit PCF8574P, für den Anschluss von LC-Displays am I2C-Bus.
LC-Displays mit den Best.Nr. 120420, 120421, 120422 oder für vergleichbare Displays. Platinenmaße (LxB): 88x37 mm.

Technische Daten:
- Busadresse über Codierbrücken einstellbar
- Kontrast und Display-Hintergrundbeleuchtung über Trimm-Potentiometer einstellbar
- Betriebsspannung 5 V-
- Stromaufnahme 100 mA

MFG Oliver G