PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Leute die mitmachen beim programmieren von Robby



JanPeter
14.02.2004, 22:02
Hallo Robby Programmierer!
Wer mach den mal mit beim programmieren?
Neue Seite für Projekt!
In den Raum gestellt: I2C
LCD über I2C, dann werden 7 digital-Ports bei Bobby frei !
AD über I2C , zusätzlich 4 AD-Ports , 1 DA-Port
EEPROM , abspeichern von Daten.
Hat sich schon jemand Gedanken gemacht, wie man das einbinden kann?
Also ich suche Leute die mit programmieren!

ACU
14.02.2004, 22:34
EEPROM , abspeichern von Daten.

Was meinst du damit?
Das dürfte eigentlich einfach sein. Einfach mithilfe einer Datei speichern oder was meinst du?

jörg
14.02.2004, 23:15
Zum I2C findest Du einiges im Thread "RP5, Erweiterungsboard und altes C-Control1".

LCD über I2C: bin grad dabei, das auch im Assembler zu machen; aber damit habe ich dann den freien Assembler-Bereich wohl ausgeschöpft...

recycle
14.02.2004, 23:24
Hallo JanPeter,

mit "Ja ich mache mit" würde ich mich leider völlig überheben, da ich bis jetzt weder hardwareseitig noch programmiertechnisch in der Lage bin irgendwas produktives beizutragen.

Ich habe mir Robby gekauft um überhaupt erst mal langsam in die Materie einzusteigen. Dahinter steckt natürlich die Hoffnung irgendwann mal das KnowHow für in Dinge wie du sie geplant hast zu bekommen, aber im Moment sind das für mich noch alles böhmische Dörfer.

Ich fände es daher klasse, wenn dein Projekt umgesetzt wird und ich würde es auf jeden Fall verfolgen und versuchen alles was dazu veröffentlicht wird nachzuvollziehen.

Projekte die man von Anfang an verfolgen und nachvollziehen kann sind meiner Meinung nach die beste Art zu lernen und wenn ich dann irgendwann mal dazu in der Lage bin, würde ich mich natürlich auch aktiv beteiligen.

jörg
14.02.2004, 23:40
Hallo recycle, mach's doch so wie ich und fang ganz harmlos an:

Ich hab mir zuerst zum Robby ein Steckbrett gekauft, mit paar Kabeln, LEDs, und Widerständen. Das ganze hab ich dann mit viel Mut (so blöd sich das anhört) in die Robby-Buchsen gestöpselt und siehe da: Meine eigenen LEDs gingen an und aus, grad wie ich's wollte.

Erst dann ging's bei mir weiter mit Lötkolben, und Platinen, Steckerleisten, ICs..., aber auch mit viel Suchen hier und anderswo, mit Fragen (und sogar einigen Antworten).

Und wenn ich's recht sehe, bin ich jetzt schon zum Roboter-Experten avanciert.

JanPeter
14.02.2004, 23:43
Hallo jörg!
LCD über I2C ,meine Vorstellung, braucht nicht über assembler sein , es geht dann BASIC über s19 -Treiber !

JanPeter
14.02.2004, 23:51
Hallo recycle!
Ich finde es gut , wenn schon mal eine reaktion kommt.
Sehr schön , ich versuche es auch langsam aufzubauen.
Aber dazu braucht man Leute, die mitmachen!
Nur in der gemeinschaft kommt man weiter!

jörg
14.02.2004, 23:57
Hallo JanPeter:
Über Assembler geht's halt schon wesentlich schneller (Faktor 5..10), und man kann dann auch PRINT sagen für die Fest-Texte (statt lauter Einzel-Bytes hinschreiben). Aber wenn ich wieder Platz brauche, kommt's zurück in's Basic.

recycle
15.02.2004, 05:20
Hallo Jörg,

Hallo recycle, mach's doch so wie ich und fang ganz harmlos an:
Ich hab mir zuerst zum Robby ein Steckbrett gekauft, mit paar Kabeln, LEDs, und Widerständen. Das ganze hab ich dann mit viel Mut (so blöd sich das anhört) in die Robby-Buchsen gestöpselt und siehe da:


Genau so war's geplant. Gestern ist ein grosses Paket vom Elektronikversand hier angekommen, Widerstände, Kondensatoren, LEDs, Taster und son Zeugs habe ich jetzt reichlich.
Für die ersten Experimente mit LEDs müsste ich jetzt eigentlich gerüstet sein. Optimistisch wie ich bin, hoffe ich aber, dass ich irgendwann in ferner Zukunft dann auch mal was grösseres als ein paar LEDs angehen kann, und da finde ich genau die Themen die JanPeter geplant hat äusserst interessant. Ein LCD (genaugenommen 2, damit ich eins kaputtmachen kann) waren nämlich "zufällig" auch mit im Päkchen ;-)

Einen ATmega16 mit ISP Adapter, Motoren und anderes Zeugs für einen kleinen eigenen Roboter habe ich inzwischen auch, der ist allerdings wirklich als Langzeitprojekt geplant.
Für den Einstieg sollen erst mal Robby CCRP5, CCBasic und die LEDs herhalten.

recycle
15.02.2004, 05:43
Hallo JanPeter,

Ich finde es gut , wenn schon mal eine reaktion kommt.

Genau deswegen meine Antwort, ich wollte dich wenigstens wissen lassen, dass Interesse da ist, wenn ich mich schon nicht zur aktiven Planung und Programmierung anbieten kann.


Aber dazu braucht man Leute, die mitmachen!
Nur in der gemeinschaft kommt man weiter!

Weiss ich und ich hoffe, dass sich noch ein paar Leute melden.
Selber Schaltungen entwerfen und programmieren kann ich leider noch nicht, deswegen bringts dir wenig, wenn ich zusage "mitzumachen".
Ich kann aber perfekt Programme die andere geschrieben haben testen und rummäkeln was sie besser machen könnten - vielleicht nutzt das ja was ;-)

REB
15.02.2004, 13:10
Mal ne simple Frage (da Euer Projekt so ziemlich in die gleiche Richtung mit meinen Ideen geht, wenn ich bislang mangels Kenntnissen mich nicht an I2C rangetraut habe): wollt Ihr das LCD über ein weiteres CC1 ansteuern oder ein schon I2C-fähiges LCD benutzen (ichglaube mal gehört/gelesen zuhaben dass so etwas existiert).
Wie soll das mit dem EEprom gehen?

REB

jörg
15.02.2004, 13:25
Hallo REB:

Nein, kein spezielles I2C-LCD, und ohne weitere CC1:
Ich hab das "normale" LCD (C-Nr. 190911); das stecke ich bisher immer auf die Robby-Buchsen (Ports 9..15), und dann läufts, ähnlich wie mit der Original BE-Platine.
Ich hab einen I2C-Bus Porterweiterungs-IC PCF8574; den stecke ich bisher ebenfalls auf die Robby-Buchsen (SDA und SCL), und damit habe ich (über den I2C-Bus, mit speziellem Treiber) weitere 8 Digital-Ports.
Und jetzt will ich das LCD an diese Port-Erweiterung hängen: dann sind die Ports 9..15 wieder frei.

JanPeter
15.02.2004, 14:20
Hallo jörg!
Genau so meine ich es LCD über I2C.
Ich habe in ELV Heft 3 1997 Seite 77 einen Beitrag gefunden.
Aber am Port 0 , die Beleuchtung einzuschalten finde ich nicht gut.
Port 1 -rs,Port 2 - e und Port 3- r/w
Da müsste man sich was neues ausdenken.

jörg
15.02.2004, 18:25
Hallo JanPeter:

Mein LCD läuft jetzt (seit 2 Stunden) wahlweise auch als "I2C-LCD". Näheres habe ich in den Thread "RP5, Erweiterungsboard und altes C-Control1" geschrieben (weil ich ja weiss, dass Du da nicht mehr reinschaust...)

Beleuchtung: hat mein LCD nicht, hab aber eines bestellt (hier hatte das jemand ja ganz günstig angeboten).
Ich denke, das programmierte Einschalten ist bisschen blöd:
Weil's kein LCD-Command "SetLight on/off" gibt, muss man vermutlich immer ein "LIGHT on/off"-bit von der CC1 zum LCD mitschicken (und deshalb muss man's auch immer irgendwo in Basic als Variable parat haben) -- ist nicht gut.
Oder man erfindet sich so was wie ein eigenes "command"; z.b. eigener Port, der unabhängig von den LCD Daten/commands gesetzt wird.

besa
17.02.2004, 19:58
Genau so war's geplant. Gestern ist ein grosses Paket vom Elektronikversand hier angekommen, Widerstände, Kondensatoren, LEDs, Taster und son Zeugs habe ich jetzt reichlich.

Hallo recycle,

ich will ja als Anfänger nicht blöde Fragen aber gibt es so etwas wie ein "Elektronik Anfängerset" online zu kaufen?
Etwas in der Art wie : "So hier noch ein paar Gatter ICs und ein paar LEDs, dazu noch ein kleines bischen RAM, ein Paar Stecker und eine Lochrasterplatine"?

Gruß

Sascha

JanPeter
18.02.2004, 21:57
Hallo !
Schade , das Thema war eigentlich : Wer macht mit beim programmieren von Robby!
Ich hatte unter diesem Thema eigentlich gedacht:
Das hier Programme erstellt werden.

jörg
19.02.2004, 09:47
Hallo JanPeter:

Na ja, gut Ding will Weile haben!

Musste erst mal die I2C und die I2C_LCD Hardware bauen, den Assembler Treiber machen und testen, den CC-BASIC Treiber machen und testen...

Wenn Du Dein LCD am I2C betreiben kannst, kann ich Dir Assembler Treiber und BASIC Treiber + Demo schicken.

Ach so: LCD-Anschluss am PCF ist genau wie bisher direkt am byteport[2]:
PCF P0..P3 = LCD DB4..7,
PCF P4 = LCD R/W,
PCF P5 = LCD RS
PCF P6 = LCD E
PCF P7 = not used
PCD INT = not used

bewild
19.02.2004, 10:59
Hallo Jörg,
mich würden deine Treiber interessieren, stell sie doch in den Downloadbereich.

Bernd

recycle
19.02.2004, 16:07
Musste erst mal die I2C und die I2C_LCD Hardware bauen, den Assembler Treiber machen und testen, den CC-BASIC Treiber machen und testen...


und mich würde der Schaltplan interessieren. LCD Display habe ich, aber ohne I2C und ne Erweiterungsplatine für Robby habe ich auch nicht.

Ohne LCD mit I2C ist die Programmierung dafür aber ziemlich trocken ;-)

JanPeter
19.02.2004, 18:08
Hallo jörg!
Ich bin sehr interessiert am Treiber für I2C.
Kannst ihn mir ja mal schicken.
Ich bin momentan auch mit dem bestücken der Erweiterungsplatine beschäftigt.
Habe jetzt den Stabilisierungs-IC 5 Volt /3A bekommen.
Muss ihn aber erst auflöten und testen.
Das dauert alles seine Zeit.

jörg
19.02.2004, 19:10
1. Assembler-Treiber: "P5-all.S19" bzw. "P5-all.lst"
I2C_READ hab ich noch nicht getestet.

2. CCBASIC-Treiber: "I2C_LCD_2.BAS"
Da ist noch nicht alles drin, was rein soll, und ich hab noch nicht alles getestet.
Mein Ziel ist: Ich will EIN CCBASIC-Muster haben, das ich für jedes neue Programm kopieren kann. Da sollen deshalb alle "Basis- und Hilfs-Routinen" drin sein, die ich so brauchen kann, und bei Platz-Bedarf lösche ich raus, was für's jeweilige Programm nicht benötigt wird.
Momentan stehen "als eigentliches Programm" ziemlich viele Test-Routinen drin, vor allem für PLM_SLOW (Hardware Register anschauen) und für das I2C_LCD. Die laufen auch alle. Ihr müsst aber die I2C-Adressen anpassen, bzw. die I2C-LCD-Ausgaben auskommentieren, wenn das LCD direkt am Port hängt (statt am I2C Bus).

3. Schaltplan: "LCD an Robby.txt"
Ich hab den bei mir auf nen Zettel gemalt, habs aber versucht, in der Anlage zu beschreiben.

jörg
19.02.2004, 19:12
Die Schaltung hatte nicht mehr reingepasst:

jörg
19.02.2004, 19:28
Hallo recycle,

Du kannst das LCD auch ohne die Robby Erweiterungsplatine betreiben; ist ganz easy; ich habs versucht in der Schaltung zu beschreiben.

Für LCD über I2C kannst Du das LCD weiter benutzen; musst Dir nur einen PCF8574 IC kaufen (ca. 3 €, z.B. bei cctools.hs-control.de); geht auch einfach -- hab sogar ich geschafft!!

JanPeter
19.02.2004, 20:16
Hallo jörg!
Wirklich Gute Arbeit!
Ich baue meine Hardware um , und werde die Software sofort testen!

Ich kann nur sagen , was ich in Deinen Programmen , so flüchtig gesehen habe , eine sehr Gute Arbeit.
Super!
Mir fehlen die Worte.

recycle
20.02.2004, 19:13
Hallo Jörg,


Du kannst das LCD auch ohne die Robby Erweiterungsplatine betreiben; ist ganz easy; ich habs versucht in der Schaltung zu beschreiben.


Drei Euro für einen PCF8574 ist kein Problem, aber die knapp 10€ Porto, Versand- und Nachnahme Gebühr die da noch drauf kommen sind mir dann für eine Einzelbestellung doch etwas unverhältnissmässig ;-)

Ich muss demnächst sowieso mal wieder ein paar mehr Sachen bestellen, da werde ich dann 2 oder 3 PCF8574 mitbestellen.

Um erst mal überhaupt reinzufinden, wie man ein LCD ansteuert, müsste ja eigentlich auch der direkte Anschluss an den Robby reichen.
LCD, 10k Poti und Kabel habe ich, mehr brauche ich nach deinem Schaltplan ja nicht. Spätestens Samstag werde ich schon ein paar Minuten finden um das zusammenzulöten.

Die Frage ist noch der 7 Volt Anschluss. Soweit ich verstanden habe, hast du das LCD das eigentlich auch für Robby vorgesehen ist.

Ich habe ein ganz normales Standard-LCD aber kein Datenblatt. Weisst du ob das die 7 Volt auch aushält, oder soll ich da lieber einen Widerstand vorsetzen?
Ich könnte mir auch einen 5Volt Spannungsregler davorsetzen, aber wenn es nicht nötig ist, spare ich mir das natürlich auch gerne.

JanPeter
20.02.2004, 19:33
Hallo jörg!
Ich habe die Hardware zusammengestrickt,
PCF8574 Adresse A0...A2 an Masse.
das BASIC-Programm I2C-LCD-2.bas geladen
und den Treiber unten im Programm p5-all.s19 geladen

Ich bekomme nur ein Beep und die LED3 auf der Hauptplatine geht an und aus.

Was mache ich falsch?

Ich habe den Treiber p5I2C.s19 nicht in deinem UPLOAD gefunden?
Brauche ich ihn oder reicht p5-all.s19?

Ich hoffe ich nerve nicht , mit meinen vielen Fragen!

jörg
20.02.2004, 21:12
Tja, diese blöden 7 V.
Was ich meine, verstanden zu haben:

1. Widerstand nützt wohl nix, höchstens Spannungsregler; ist aber auch komisch, weil zu wenig Spannungsunterschied zum Regeln da ist (sollten 9 V sein, nicht 7 V)
2. Wenn Du das LCD (oder irgend was anderes) mit 5 V versorgst, bleiben ja die Verbindungen trotzdem noch auf 7 V; und das ist erst recht schlecht.
3. Man könnte die Ports mit Dioden vielleicht auch auf 5 V kriegen, aber das ist problematisch bei schnellen Übertragungen; und geht womöglich gar nicht, bei bidirektionalen Verbindungen.

Eine andere Überlegung stammt, glaub ich, von DIE HARD u.a.:

1. Wenn was auf 5 V spezifiziert ist, hat es schon laut Spec 10% Toleranz; sind also 5.5 V. Und damit ist nur die EMPFOHLENE Spannung gemeint, nicht die MAXIMALE.
2. Die Maximale Spannung liegt sicher höher, also mindesten 6.. V.
3. Zur angegebenen maximalen Spannung kommt natürlich auf noch eine Sicherheits-Marge.
4. Deshalb kann man 5 V Geräte eben auch an 7 V betreiben.

Ich ergänze mal für mich: WENN SIE NICHT ZU TEUER SIND (falls es eben doch nicht geht).

Ich würd's mit dem LCD probieren. Das PCF ist auf max. 7 V spezifiziert.
Du darfst natürlich den Robby nicht gleichzeitig auch noch aufladen.
Vielleicht sind ja auch die Akkus gerade nicht mehr ganz voll...

jörg
20.02.2004, 21:21
Hallo JanPeter,

Habs eben erst gesehen.
Nein, P5I2C.S19 war ein Vorläufer, der hatte nur den I2C.
Der P5-All.S19 ist OK, der hat "alles".

Sorry, das hatte ich vergessen:
Ist die I2C-Adresse des LCD für Dich richtig eingetragen?
Ich hatte bei mir zufällig einen PCF...A dran, und deshalb eingetragen:
"define I2C_LCD_ADDR &H70 ' the I2C address of the I2C-LCD device"
Das muss &H40 sein für ein normalen PCF.

Am RS232-Terminal müsste aber trotzdem vorher noch der Dump der Hardware-Register rauskommen. Und dann würde alles stehen, weil das PCF nicht antwortet.

Noch was: Ich hab bisher nur mit 4 MHz getestet, noch nicht mit 12 MHz.

JanPeter
20.02.2004, 21:46
Hallo jörg!
Das war es , die falsche Adresse für PCF.
Ich kann nur sagen das ist ja ein Super Programm , und die Geschwindigkeit, wahnsinn!
Ich wunder mich , wie schnell Du das Programm auf die Beine gebracht hast?
Arbeitest Du alleine?
Alle Achtung!

jörg
20.02.2004, 22:09
Na ja, na ja, da werd ich ganz rot,
und ausserdem hat's ja schon gedauert.

Das Basic-Programm ist auch noch nicht ganz fertig, da bastle ich noch rum -- ich hoffe, ich schaff's noch bis Sonntag, weil wir dann eine Woche weg fahren.

JanPeter
20.02.2004, 22:17
Hallo jörg!
Nö da brauchst Du nicht rot werden,es ist eine Super Leistung von Dir.
Ich brauch für die Programmierung , so wie Du sie gemacht hast bestimmt
2 Jahre.
Ich werde mal sehen , ob ich einen Stromlaufplan erstellen kann ,so das
alle Forumbesucher, es nachvollziehen können.

JanPeter
20.02.2004, 22:40
Hallo!
Hier mal ein Paar Fotos

JanPeter
20.02.2004, 22:41
Noch eins

JanPeter
20.02.2004, 22:43
Und noch eins

jörg
20.02.2004, 22:54
Da geht's ja bei mir noch harmlos zu!

JanPeter
20.02.2004, 23:09
Hallo jörg!
Ich hab mich schon gebessert, früher waren alle Drähte mit einer Farbe.
Meine Frau sagte , da sieht man ja nicht durch.
Jetzt nehme ich schon verschiedene Drahtfarben, aber meine Frau sieht da auch nicht durch!
Ich hätte auch bei einer Drahtfarbe bleiben können!

jörg
20.02.2004, 23:21
Da solls doch auch so schicken Lackdraht geben, ganz ohne Farbe,
und seit neuestem sogar praktisch unsichtbare WLAN - Kabel, die werde ich mal probieren!

Aber was ist das für ein weisses Ding, im mittleren Bild, links oben?

JanPeter
20.02.2004, 23:38
Hallo jörg!
Das ist ein Bewegungsmelder, 12 Meter Reichweite, mit analog und digital-Ausgang.
Ich hab in am AD8 angeschaltet, der noch frei ist!
C Bestell-Nr.:172500-33

JanPeter
21.02.2004, 13:23
Hallo jörg!
Der zweite PCF8574 hängt auch schon dran am I2C.
Die Ausgabe geht ja prima mit Deinem Programm.

Ich hab da mal ne Frage zur Eingabe(Read)
Im Programm steht:
define I2C_READ_ &H0101 ' read from I2C device: "DataByte = SYS I2C_READ I2C_AddressRead"
define I2C_WRITE_ &H0111 ' write to I2C device: "SYS I2C_WRITE DataByte, I2C_AddressWrite"

Aber welche Variable ist DataByte? Und muss hinter I2C_READ ein Komma?

jörg
21.02.2004, 13:39
Hallo JanPeter,
Beim READ, das ist ein falscher Fehler ("copy, paste, forget").
Ich schau's mir gleich an.

PS: Ich habe den READ nicht getestet, u.A. weil ich nicht wusste, wie man INPUTs am PCF anschliesst.
OK: IN braucht vermutlich 10K PullUp.
Aber: was macht man, wenn paar Ports desselben PCF IN sind, und paar sind OUT? Denn: technisch gesehen, werden beim READ immer alle 8 PCF-Ports gelesen, und ich weiss nicht, was "quasi tristate" beim PCF heissen soll.

Wie hast Du die IN's am PCF angeschlossen (sind vermutlich Schalter / Taster, oder)?

jörg
21.02.2004, 14:15
Also, zum I2C READ:

Leider kann man nicht schreiben "DataByte = SYS ..."; das geht anscheinend nur bei Unterprogrammen, nicht bei SYS.
Deshalb musst Du jetzt irgendwo ein Unterprogramm definieren:

#I2C_READ
sys I2C_READ_ I2C_ADDR
return

und kann dann aufrufen:

value = i2c_read

Bin mir nicht 100 pro sicher, ob das Ergebnis dann wirklich im low byte von VALUE steht und ob das high byte wirklich 0 ist;
zum Testen am besten ein WORD deklarieren (PARAM kannst Du hernehmen), und dann explizit LBYTE und im HBYTE ausgeben.

(Kann grad nix testen: Robby Akkus werden geladen, und muss erst wieder PCF als READ zusammenstecken)

Ich werde die Schnittstelle zum I2C ändern, z.B.
IN: Adresse in LBYTE, Daten in HBYTE (nur WRITE)
OUT: Daten in HBYTE (nur READ)
Muss dazu aber auch den Assembler-Teil ändern.

jörg
21.02.2004, 17:54
Die Kinder haben mir die Kamera geliehen, und damit ist es mir gelungen, Bilder von meinem Erweiterungs-Board und vom LCD Mini-Board zu machen: https://www.roboternetz.de/phpBB2/viewtopic.php?p=5400#5400.

JanPeter
21.02.2004, 19:05
Hallo jörg!
Du schreibst:
Aber: was macht man, wenn paar Ports desselben PCF IN sind, und paar sind OUT? Denn: technisch gesehen, werden beim READ immer alle 8 PCF-Ports gelesen, und ich weiss nicht, was "quasi tristate" beim PCF heissen soll.

Die ports sind quasi bidirektional.
Das quasi deshalb , weil man ja z.B. nur schreiben kann und danach lesen und nicht beides gleichzeitig.
Die Ports für in zum testen würde ich mit einem Draht kurz an + oder - legen, noch nichs mit Tastern.
Man kann das auch trennen , um eine Vereinfachung zu erreichen
1.PCF8574 für Ausgabe , 2. PCF für eingabe.
Also 1. LCD-Ausgabe und 2. für Eingabe

JanPeter
21.02.2004, 21:45
Hallo jörg!
Das geht nicht so , wie du beschrieben hast :

#I2C_READ
sys I2C_READ_ADDR
return

Ich muss ja irgendwo die Adresse mit Übertragen , dass das Programm weiss, wo es lesen soll (bei welchem PCD8574) !

jörg
21.02.2004, 21:53
Das ist hier schlecht zu lesen, und die Namen sind vielleicht bisschen blöd mit all den I2C und _;
das muss heissen:

sys I2C_READ_ I2C_ADDR

Der Parameter I2C_ADDR ist definiert auf den WRITE (!!) Port, z.B. auf &H40. Es ist auch beim READ der WRITE Port, damit man nicht 2 defines braucht für jeden PCF, sondrn nur einen.

Ich hoffe, es geht!

Hoffe, es geht!

jörg
21.02.2004, 21:55
Oha, da gehen alle SPACES verloren, die ich so mühsam eintippe; also


sys I2C_READ_ I2C_ADDR

jörg
21.02.2004, 22:01
Da wird sich Robby aber freuen:
Ich hab seine Akkus aufgeladen, und könnte jetzt eigentlich wieder testen.

Aber ob sich meine Bauteile auch freuen, weiss ich nicht;
immerhin messe ich jetzt 8.2 V an der BATT, und 7.4 an Vcc.

Oh je!

JanPeter
22.02.2004, 00:18
Hallo jörg!
Ich werde es Heute ausprobieren .
Mit der Spannung gefällt mir auch nicht .
Ich habe Robby jetzt NiMH-Akkus mit 2100mAh gegönnt.
Bei erster inbetriebnahme hatte ich nach dem laden der Akkus 7,8 Volt!
Und Robby wollte erst nach dem 5. Versuch sein Programm ausführen.
Ich glaube wir brauchen wirklich 5 Volt Versorgungsspannung.
Ich trau mich nicht ran mit dem Regler 5V/3A, weil ich nicht weiss , ob die Mosfets zur Motorregelung mit der Ansteuerung der Versorgungsspannung von 5 Volt richtig angesteuert werden.

jörg
22.02.2004, 00:43
Hallo JanPeter:

Ich hab auch NiMH, mit 2000 mAh.
Ich könnte wetten, dass das Programm beim ersten Einschalten nicht angelaufen ist, erst nach Ausschalten, Einschalten und nochmal START; aber ich bin mir nicht sicher, weil meine START manchmal nicht geht. Seitdem hatte ich keine Probleme mehr.
Die zusätzlichen Bauteile (74HCT00, PCF8574, LCD, PCF8574A) laufen auch unauffällig vor sich hin.

Trotzdem!
Aber das mit dem Regler ist mir auch nicht ganz geheuer. DIE HARD hatte da mal geschrieben, welche Teile UNBEDINGT auch mit 7 V laufen müssen (Mosfets? ).

Der I2C_READ läuft. Ich hab folgendes gemacht:

Auf Steckbrett:
1. PCF8674 mit Adressen auf Gnd, = &H40 (am LCD habe ich ja PCF8574A...)
2. Alle 8 Daten-Ports über 10 k nach "Vcc"
3. Steckbrett samt PCF mit 4 Käbelchen an Gnd, Vcc, SDA, SCL in meine parallele zweite I2C-Buchse am LCD MiniBoard gesteckt
4. Zum Testen mit Käbelchen die Daten-Ports des PCF auf Gnd gelegt.

Im CCBASIC Testprogramm irgendwo Endlosschleife eingefügt:


#show_i2c_read
gosub lcd_cls
gosub lcd_print : print "I2C read";

#read_loop
gosub lcd_line2
gosub lcd_print : print "val=";
subcmd = i2C_read
gosub lcd_write_hex
goto read_loop


und am Ende irgendwo die Basistreiber


'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
'IIIIIIIIII CCRP5 I2C DRIVERS
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII

#I2C_READ ' reads and RETURNs one byte from the I2C device with WRITE (!) address I2C_ADDR
' IN: ---
' OUT: RETURN = byte read from device
' EX: value = i2c_read
sys I2C_READ_ I2C_ADDR
return

#I2C_WRITE ' writes HBYTE to the I2C device with (WRITE) address I2C_ADDR
' IN: HBYTE: byte to be written to I2C device
' OUT: ---
' EX: hbyte = 123 : gosub I2C_WRITE
sys I2C_WRITE_ hbyte, I2C_ADDR
return



Viel Erfolg damit!

jörg
22.02.2004, 00:58
Jetzt gehts ja mit sogar Bild!
Brauch ich nie wieder Schaltplan zeichnen!

Geht doch nicht: Ich hab meine Upload Quota Grenze erreicht...

JanPeter
22.02.2004, 13:14
Hallo jörg!

Freude , es läuft. Ich sehe 255 auf dem LCD.( Eingänge offen ,ohne Widerstände nach +)
Wenn ich die Ports auf Masse runterziehe, habe ich eine entsprechende Anzeige.

Mit dem zweiten 8574.
Ich hatte das Leerzeichen hinter sysI2C_READ_ , nicht eingegeben.

'------------------------------------------
#show_i2c_read
gosub lcd_cls
gosub lcd_print:print "I2C Read";
#read_loop
gosub lcd_line2
gosub lcd_print:print "val=";
subcmd = I2C_read2
gosub lcd_write_byte 'lcd_write_hex ist im Programm I2C-LCD-2.bas nicht enthalten
goto read_loop

'------------------------------------------
#I2C_READ2
sys I2C_READ_ I2C_ADDR2 'wichtig hinter I2C_READ_ ,muss ein Leerzeichen
return
'------------------------------------------

Danke nochmal für Deine Hilfe :D

jörg
22.02.2004, 13:37
Pull-Ups:
Ich meine, bei den IN ports des PCF gehören die eigentlich schon hin, sonst floaten die.
Du hattest in Deinem ersten Schaltplan "LEDs über I2C steuern" eigene Pull-Ups an den SDA und SCL Leitungen; die lass ich immer weg, weil die laut Schaltplan ja schon auf dem Mainboard sind, wie ja auch auf der CC1 Unit (weiss nicht, ob auch auf der M-Unit).

LCD_WRITE_HEX und BIN sind anscheinend neu:


#LCD_WRITE_HEX ' writes SUBCMD as 2 hex digits ("0".."9","A".."F") to LCD
' IN: SUBCMD (0..255)
' OUT: PARAM and SUBCMD modified; LCD 2 next chars modified
gosub get_hex ' HBYTE and LBYTE contain the printable nibbles
subcmd = hbyte : gosub lcd_writechar
subcmd = lbyte : goto lcd_writechar

#LCD_WRITE_BITS ' writes SUBCMD as 8 bin digits ("0","1") to LCD
' IN: SUBCMD (0..255)
' OUT: PARAM and SUBCMD modified; LCD 8 next chars modified
lbyte = subcmd
for hbyte = 0 to 7
subcmd = &H30 : if lbyte > 127 then subcmd = &H31
gosub lcd_writechar
lbyte = lbyte shl 1
next hbyte
return


Bevor ich nach London fahre, schicke ich noch mal die aktuellen Programme, falls mein upload space das zuässt.

jörg
22.02.2004, 15:48
Vorsicht, böse Software-Falle:

Vor meinen Tests war ich mir unsicher, ob beim Lesen vom I2C Bus das Ergebnis in HBYTE oder in LBYTE ankommt ( siehe (https://www.roboternetz.de/phpBB2/viewtopic.php?p=5382#5382)). Irgend wie hatte das nicht mit meinen anderen Tests zusammen gepasst. Jetzt weiss ich, warum:

In den CCRP5 Basic-Programmen steht immer:
define LBYTE byte[1]
define HBYTE byte[2]

Damit lag für mich nahe:
1. CCBASIC (und doch wohl auch der MC selbst) verwendet die "first-low-then-high" Speicherung von 16-bit Werten
2. Wenn ich ergänze
define PARAM word[1]
dann kriege ich in LBYTE das low byte von PARAM, und in HBYTE eben das high byte.

Dem ist aber NICHT so:
Sowohl CCBASIC als auch der MC selbst speichern zuerst das HIGH byte, und dann das LOW byte von 16-bit Werten.

Die Namen LBYTE / HBYTE sind wirklich GROBER Unfug, wenn nicht noch Schlimmeres
Ich befürchte aber, das war noch nicht mal "just to confuse the Russians"!!!

JanPeter
22.02.2004, 17:07
Hallo jörg !
Stimmt die Pull UPs sind schon drauf (werde ich wieder auslöten)
Ich habe jetzt auf meiner Erweiterungsplatine saubere 5 Volt !

Ich habe einen Low Drop Spannungsregler LT 1085CT-5 / 3A aufgelötet.
Sehr beruhigendes Gefühl.
Die Hauptplatine von Robby läuft noch mit 7 Volt.

jörg
22.02.2004, 17:19
Hallo JanPeter:

Gibts da nicht Probleme, weil ja SDA und SCL mit +7 V am PCF ankommen, und das ist weit mehr als die +5 V Versorgungs-Spannung am PCF?

Oder:

Vielleicht sind ja die Ausgangs-Ports von der CPU bei HI sowieso gar nicht auf +7 V, sondern eher auf ca. 5 V --- das wäre super, denn dann könnten wir alle den Robby genau so stabilisieren wie Du das gemacht hast. Das könnte ALLE Spannungs-Probleme endgültig beheben!!!

---> Kannst Du das bitte ausmessen? Auch der Rückweg "HI vom PCF (5V) an die CPU (7V)" muss ja gehen.

JanPeter
22.02.2004, 19:55
Hallo jörg!
Also Probleme gibt es nicht, alles läuft!
Du hast recht ich habe nachgemessen, Robby gibt am SDA 7 Volt aus
wird aber erkannt am PCF, und PCF gibt 5 Volt aus und wird auch erkannt.
Bis jetzt läuft alles über 5 Stunden.
Normalerweise darf das Eingangssignal vom PCF nur + 0,5 Volt gegenüber der Betriebsspannung sein!
Aber das ist warscheinlich auch so eine Sache , wie DIE HARD sie beschrieben hat , mit der erhöhten Betriebsspannung.
Ich habe schon versucht Widerstände in den SDA und SCL einzubauen, aber bisher ohne Erfolg.
Ich bleibe dran!

jörg
22.02.2004, 21:29
Es wär so schön gewesen!

JanPeter
22.02.2004, 23:17
Hallo jörg!
Das ist so schön!
Ich habe eine Lösung, hab alles mit dem Oszi nachgemessen.
Und momentan läuft es .
Also pro SDA und SCL jeweils gesehen von Robby , pro Signalleitung
,
drei Dioden in Reihe zur Erweiterungsplatine (in Durchlassrichtung)
und parallel eine Diode von PCF->Robby.
und ein Widerstand 10 K Ohm jeweils an SDA und SCL an Masse.(auf der Erweiterungsplatine)

Komme jetzt nicht mehr über 5 Volt an SDA und SCL am PCF.

JanPeter
22.02.2004, 23:19
Hallo jörg!
Ich wünsch Dir einen schönen Urlaub!

jörg
22.02.2004, 23:22
Danke,
ich bin grad dabei, das aktualisierten CCBASIC Teil für Dich vorzubereiten.

jörg
22.02.2004, 23:30
Software Update zum 19.02.2004:

1. Aktualisierte Version von I2C-LCD-2.bas;
im Wesentlichen:
-- Treiber zum Lesen vom I2C LCD (!)
-- Treiber für I2C Lesen und Schreiben (statt SYS-Aufruf)
-- Ergänzungen Doku, Hilfsroutinen...
Das eigentliche Programm besteht nach wie vor nur aus unterschiedlichsten Test-Routinen zur Hardware, insbesondere für den I2C Bus und für das I2C LCD.

2. Der S19-Treiber "P5-ALL.S19" hat sich nicht geändert.

Viel Spass damit,
und bis dann!

jörg
22.02.2004, 23:33
Ups, wo ist das Attachment geblieben?
Nochmal:
---
geht nicht: maximale quota grenze erreicht.
GRRRRR
---
Ich schick's direkt an JanPeter.

JanPeter
24.02.2004, 17:10
Hallo !
Das mit den Dioden geht nicht bei schneller I2C Übertragung !

JanPeter
24.02.2004, 17:16
Hallo !
Hier das Programm V1.2 von jörg

JanPeter
29.02.2004, 17:32
Hallo jörg!
Wieder aus dem Urlaub zurück ?
Ich habe jetzt auf Robbys Erweiterungsplatine
3 PCF8574 drauf
der
1. für LCD
2. für Eingang
3. für Ausgabe

Ich hab die ganze Woche mich mit Deinem Programm beschäftigt (Anpassung an meine Hardware) und bin da so auf ein Problem gestossen.
Und zwar mit LCD_READ.
Du hast ein Beispiel drin , wo Testu ausgegeben wird und bei Hi =25 zur anzeige kommt .
Meine Frage woher kommt 25?

jörg
29.02.2004, 19:28
Hallo JanPeter!
Ja, wieder zurück: war sehr schön (aber auch sehr teuer...)

Die hex 25: meinst Du dieses Teil: ' read back LCD PCF (test only) ?

An dieser Stelle wollte ich einfach den momentanen Inhalt der PCF Ports lesen (das ist noch NICHT der Inhalt des LCD, das am PCF hängt -- das kommt erst später im Test).

Woher kommt die HEX 25:
Ich hatte vorher als letztes Zeichen ein kleines "u" ans LCD ausgegeben; kleines u ist HEX 75. Um dies als Daten ans LCD auszugeben (im 4-bit mode), musste ich die Nibbles 7 und 5 einzeln ans LCD schicken, jeweils mit RS=1=DATA, und um E zu "pulsen" je einmal mit E=1 und E=0. Insgesamt werden damit für das eine Data-Byte $75 vier Bytes an den PCF und das LCD geschickt, und zwar $67 - $27 (für das high nibble "7"), und dann $65 - $25 (für das low nibble "5" von $75="u").
Genau dieses letzte Byte $25 muss jetzt wieder reinkommen, wenn ich einfach vom PCF lese (und tuts auch). -- Kleines u habe ich nur genommen, weil dann das zurückkehrende Nibble "5" schön abwechselnd die Kombination 0101 ist...

Den eigentlichen Inhalt des LCD zu lesen, ist erheblich aufwendiger; wird in Routine "LCD_READ" gemacht:
Wegen 4-bit mode werden auch hier zwei Nibbles gelesen, und weil E gepulst werden muss, muss man zum LESEN vom LCD insgesamt 4 Bytes SCHREIBEN und 2 Bytes LESEN. Dabei hatte ich zwei Probleme:
1. LCD READ data (1 Nibble) sind nur gültig während E=HI
2. Von den 8 Bits des PCF sind zwar die LCD Steuerleitungen OUT, aber die 4 Datenleitungen sind mal OUT, mal IN. Damit ich die IN Daten vom LCD lesen kann, muss ich vorher "1111" auf diese PCF-Ports schreiben; das wird vom LCD ignoriert, weil ich dem LCD in der Steuerleitung ja gleichzeitig R/W = 1 = READ sage, und für den PCF bewirken die "1", dass auf INPUT umgeschaltet wird ("quasi-bidirectional I/O without the use of a control signal for data direction").

Uff!

JanPeter
29.02.2004, 20:24
Hallo jörg!
Na da brauch ich mich ja nicht wundern, das ich da noch nicht durchsehen!
Nach einer Woche.
Ich muss mir das ganze erst mal anscheuen! :oops:

JanPeter
01.03.2004, 19:39
Hallo jörg!
Ich habs kapiert.
Ich habe jetzt ein Programm was mit der IR-Fernbedienung ,Menuemäßig
bedient wird. Ich kann dort die Systemuhr einstellen und von LCD
wird die Uhrzeit gelesen und eingetragen.

JanPeter
02.03.2004, 17:18
Hier mal das Programm .
Es baut auf jörg sein Programm V1.2 auf

JanPeter
02.03.2004, 19:10
Hallo jörg!
Punkt 1. von Deiner E-Mail ist berücksichtigt.

jörg
03.03.2004, 21:31
Hallo JanPeter:
Es funktioniert!

Ich musste nur die PCF-Adressen einstellen, und das
gosub subsys_pwr_on
ganz an den Anfang stellen.

Und jetzt hab ich ein Menü-System auf meinem Robby!

JanPeter
03.03.2004, 22:08
Hallo jörg!
Das ist ja Super , das es bei Dir auch funktioniert.
Ich würde ja gerne das Menü-System weiter ausbauen, aber da kommt man langsam an die Grenze des Speichers!
Und es sind noch nicht mal Fahrfunktionen drin.
Ich habe irgendwo gelesen ,das man das EEPROM von 8K auf 32 K erweitern kann , das wäre interessant!
Aber dann muss man an Robby den SMD-EEPROM auslöten!
Ich bleibe dran.

jörg
03.03.2004, 22:29
EEPROM Erweiterung wäre nicht schlecht, wenn man bedenkt, was man so alles programmieren könnte...

Statt Auslöten hab ich mir folgendes gedacht:
Nur eins der Adressbeinchen auslöten / abzwicken und auf HI legen - dann wird das originale EEPROM nicht mehr benutzt.
Das grössere EEPROM könnte man dann ganz normal an den I2C Bus anschliessen (ohne SMD usw.) !!

Anstelle EEPROM gibts sogar Chip-Karten mit genau so einem Speicher; hab ich bei cctools gesehen. Dann könnte man die Programme per Hardware austauschen (ohne jedesmal Download zu machen...)

JanPeter
04.03.2004, 18:06
Hallo jörg!
Das wär nicht schlecht , und die Karten beschreibt man mit einem Kartenleser.
Das war Super, ich hab noch Smart Media Karten 8MB unvorstellbar , was da an Programm raufpassen würde.
Wie ist den die WEB Adresse von cctools?

Würde das denn gehen, über I2C-EEPROM ?
Da muß doch was im orginal CControl verbogen werden (ich meine die EEPROM Adresse)?

jörg
04.03.2004, 18:25
Hallo JanPeter,

URL ist http://cctools.hs-control.de.

Die Chip-Karte enthält im Prinzip ein 24Cxx EEPROM. Man müsste dem Originalen 24C65 die Adresse x-000 kaputt machen (einen Adress-Pin hochziehen reicht: gibt dann x-001, und er kriegt nix mehr mit), und den neuen auf Adresse x-000 IRGENDWO an den I2C Bus hängen, allerdings über die Verdrahtung des Chip-Karten-Lesers.

Könnte ich eigentlich mal ausprobieren!!
(aber nicht mehr heute).

JanPeter
04.03.2004, 20:04
Hallo jörg!
Ich hab mir mal die Seite von cctools angeschaut, es gibt da 32k Chipkarten und eine Fassung.
Man braucht also nur Pin 1 vom EEPROM auf H legen.

Ich hab mir mal die Leiterplatte angeschaut, das müßte gehen!
Leider sind die Leiterbahen nach GND unter den IC gelegt, aber mit einem SMD-Lötkolben und einem Uhrmacherschraubenzieher, müßte das kein Problem sein den Pin hochzubiegen. (Und eine Lupe )
Packen wirs an!

JanPeter
05.03.2004, 17:03
Hallo jörg!
Ich glaube ein Pin auf H reicht nicht , dann wird doch ein anderer Adressbereich für den 8 kB EEPROM eingelegt, der den 32 kB EEPROM doch beeinflussen kann.
Ich hab mir Heute 2 * 24 LC256 gekauft und der SMD-Lötkolben ist schon warm.
Ich werde am 8 kB EEPROM Pin 5 und 6 lahmlegen!

jörg
05.03.2004, 17:26
Hallo JanPeter,
ich bin mir nicht ganz sicher, aber ich hatte das EEPROM so verstanden:

1. Das EEPROM wird als I2C device adressiert, über die vom Hersteller fest vorgegebene Basis-Adresse PLUS die drei I2C Adress-Pins, die man selbst festlegt. Immer wenn man was von DIESEM EEPROM will, muss man die so resultierende I2C Adresse verwenden.
2. Wenn man das EEPROM so adressiert und jetzt was lesen / schreiben will, muss man dem EEPROM immer zuerst die Adresse schicken. Das heisst: Man muss einen WRITE auf den I2C Bus machen, mit 2 Bytes, die die gewünschte Adresse darstellen.
3. Dann macht man einen Ein-Byte WRITE (oder normalerweise: READ), und schreibt / liest damit das Byte.
4. Weil dies pro Byte sehr umständlich wäre, gibts einen "read sequential" modus, der automatisch die Adresse inkrementiert. 'hnlich wie beim LCD auch, muss man deshalb die Ziel-Adresse nur dann mit 2 WRITES zum EEPROM übertragen, wenn man nicht-sequentiell liest.

Wenn das stimmt, dann wird die I2C_Adresse nur zum Selektieren des Chips am I2C-Bus verwendet. Die Speicheradresse innerhalb des selektierten EEPROMs gibt man dann nicht über die I2C-Adresse an, sondern unabhängig davon mit zwei Bytes, die man "vorneweg" zum EEPROM übertragen muss (als I2C Data WRITE, sozusagen).

Dann müsste es reichen, nur EIN Beinchen kaputt zu machen -- was für mich immer noch schwierig genug sein wird...

JanPeter
05.03.2004, 17:47
Hallo jörg!
Mach keine Beinchen kaputt !
Ich habe eine Methode erprobt , aber momentan ist der Lötkolben warm,
und ich habe keine Zeit , es zu beschreiben.
Das ist eine lange Geschichte ich werde in 2 Stunden berichten.

JanPeter
05.03.2004, 20:11
Zusammenfassung :
Robby RP5
Robby will immer mehr. Er stellt langsam Anforderungen , wenn er eingeschaltet ist, ich brauche mehr Sensoren !
Also hat jörg und ich, Ihm den I2C-Bus mit PCF8574 spendiert.
Jörg hat einen sehr Guten Treiber in maschinensprache geschrieben. Den P5-all.S19.
Nun kann man das LCD über I2C betreiben ( über PCF8574 der erste).
Ich hab dann ein kleines Menü-System geschrieben und meine Frau testen lassen, wegen Benutzerfreundlichkeit, meine Frau ist mit dem Menü klar gekommen !!!
Und Robby ist der Meinung jetzt reicht mein Speicher nicht mehr.
Also hab ich Heute einen 24LC256 gekauft (32 kB EEPROM) .
Nun wie trenne ich die Pins 5 und 6 ( SDA und SCL) vom EEPROM auf der Hauptplatine von Robby ? Es sind ja SMD-Pins!
Grübel Grübel!
Conrad und Segor hat keine SMD-Entlötklinge ( gabs aber schon mal) !
Ein Besuch im Baumarkt ist angesagt, da bekommt man immer Gute Ideen.
Ich kaufte mir bei Hornbach in der Werkzeugabteilung , eine Fühlerlehre 13 SB , das Teil hat so 13 Zungen .
Die kleinste Zunge ist 0,05 mm !!!!!!!
Robby schlief gerade ( Er war ausgeschaltet ! )
Diese Zunge konnte ich unter I8 schieben und mit einer Lötnadel von ERSA minor 6V /5W
Habe ich den Pin 5 erwärmt und danach die Zunge runtergeschoben.
Erster Erfolg. Danach Pin 6 genauso.




So nun wollte ich die Pins , damit sie keinen Kontakt zur Platine haben mit einem Stück Papier isolieren. Fehlschlag , das Papier war zu dick!(0,05 mm)
Ich suchte eine weile nach sehr dünnem Papier, und hatte auch Erfolg.
I8 ist nun Tod.
Danach baute ich auf meiner Erweiterungsplatine eine 8 pol. Fassung ein , mit einem 24LC256.
So nun hab ich Robby RP5 wieder eingeschaltet, Ihm das Menü Programm geladen ,
und er hat bis jetzt noch nicht gemerkt, (zum Glück ) das er mehr Speicher hat!

JanPeter
05.03.2004, 20:15
Nun das Foto , es wurde nicht von der Word-Datei eingefügt

jörg
05.03.2004, 20:50
Klasse!
Aber ich glaube, Du brauchst auch noch die spezielle DLL für die CCBASIC Übersetzungen.

JanPeter
05.03.2004, 20:58
Hallo jörg!
Die hab ich doch schon. ansonsten hat ich das nicht gebaut!

bewild
05.03.2004, 21:23
Hallo JanPeter,

was sind das auf dem Bild für Adern am Controller?

Bernd

JanPeter
05.03.2004, 21:29
Hallo bewild!
Das sind die Adern , von meinem Beitrag ; Pin 27,28 und 29 lebt!

JanPeter
07.03.2004, 00:21
Hallo jörg!
der Treiber steht unter http://www.idel-online.de/

jörg
07.03.2004, 00:25
Hallo JanPeter,
Danke, werd ich mir runterladen!

JanPeter
07.03.2004, 00:27
Hallo jörg!
Ich konnte Gestern überhaupt nichts machen , war zum Geburtstag und bin ebend erst zurück!

jörg
07.03.2004, 00:36
Hallo JanPeter,
Ich war (und bin noch) schwer am Werken:
Hab seit Neuestem einen Java MC ("JStamp"), und versuche, mit dem Teil klar zu kommen. Also: Die Unterlagen von C sind Gold dagegen!

JanPeter
07.03.2004, 00:39
Hallo jörg!
Ist JStamp ein Ableger von Basic Stamp?

jörg
07.03.2004, 00:50
Hallo JanPeter,

Nein, der Name ist wohl nur Marketing, allerdings hat das Controller-Board tatsächlich die Grösse einer (etwas grossen) Briefmarke: 1 x 2 Inch; inkl. Spannungsregelung und Speicher (512 KB SRAM + 2 MB Flash (da ist ne LED drauf, die ich erst entdecken konnte, nachdem sie eingeschaltet war...)

Als Assembler wird Java benutzt, und das hat mich dran gereizt.
Ist damit auch ganz schön schnell (intern 70 MHz, entspricht etwa 3 Mio Java ByteCodes pro Sekunde).

Wäre doch nicht schlecht auf dem Robby, oder?

JanPeter
07.03.2004, 10:56
Hallo jörg!
Von den Daten hört es sich ja nicht schlecht an.
Aber von Java hab ich Null Ahnung.
Was hat das Board den so an Schnittstellen?
Hast Du einen Link?

jörg
07.03.2004, 15:04
Hallo JanPeter,
ich habs mal hier (https://www.roboternetz.de/phpBB2/viewtopic.php?p=6808#6808) zusammengefasst.

JanPeter
07.03.2004, 17:10
Hallo jörg!
Ich habe ein Problem mit dem Programm I2CLCDV1_3.bas.
Es läuft bei mir nicht mehr.
z.B. im Abschnitt:
#show_time
gosub lcd_cls
#show_time1
gosub lcd_line1
param = hour : gosub lcd_write_2digit
subcmd = asc_colon : gosub lcd_writechar
param = minute : gosub lcd_write_2digit
subcmd = asc_colon : gosub lcd_writechar
param = second : gosub lcd_write_2digit
gosub lcd_line2
gosub LCD_PRINT : print "0-Taste Menue";
'gosub IR_REVC
'if HBYTE=&H00 then goto loop100 'Null Taste
pause 5:gosub COMNAV_STATUS
if IR_F = on then goto show_timeend
goto show_time1

#show_timeend
gosub IR_REVC
if HBYTE=&H00 then goto loop100 'Null Taste
goto show_time
-------------------------------------------
Es hängt sich in unregelmäßigen abständen auf.
Muß irgend was mit der IR-Abfrage zu tun haben, ich bin noch nicht hintergekommen!
Ich habs mal so wie oben probiert oder mit den Ausgklammerten Befehlszeile , ohne Erfolg.
Weißt Du Rat?

jörg
07.03.2004, 17:46
Hallo JanPeter:
"Unregelmässig" ist nicht so gut; kann grad nicht viel machen (Besuch); was mir dazu einfällt:

1. Geht nicht mehr: Seit EEPROM Aufrüstung?
2. "Aufhängen" hört sich nach I2C Problem an: Device antwortet nicht (mehr), deshalb wird's in Schleife immer angesprochen...
3. Geht nicht bei wieviel MHz: bei 4 oder bei 12 oder bei beiden?
4. Wenn das "gosub IR_REVC" auskommentiert ist, geht's dann? oder auch nicht?
5. COMNAV hat im Assembler auch eine Endlos-Schleife drin, wenn keine Antwort kommt (mein ich mich zumindest zu erinnern). Hast Du wirklich "power_on" ganz am Anfang des Programms (war in Deinem Download-Source NICHT am Anfang drin)

JanPeter
08.03.2004, 18:49
Hallo jörg!
Ich glaube ich habe das Problem gefunden.
Es war keine Regelmäßigkeit festzustellen.
Ich hatte der 32 KB EEPROM auf meiner Erweiterungsplatine an +5V geregelt angeschlossen.
Jetzt hab ich ihn an VCC (7V).
Immer wieder das Problem mit den unterschiedlichen Spannungen.
Seit der Änderung lauft das Programm seit 3 Std.

jörg
08.03.2004, 19:02
Hallo JanPeter,
OK, das ist blöd, aber leuchtet irgendwie ein.

JanPeter
13.03.2004, 20:17
Hallo!
Mal wieder ein Foto vom aktuellen stand

14.03.2004, 12:31
Hallo Leute.
Ich habe mir den Robby gekauft und habe mir auch alle Beispiele angeschaut. Jedoch verstehe ich immer noch nicht die Programmiersprache. Ich weiß nicht welcher Befehl für was steht, wie welcher Sensor angesprochen wird und die Einstellungssachen. Kann mir das jemand erklären oder mir eine Seite sagen, wo das wirklich gut erklärt ist? Ich würde gerne das Programmieren lernen. Ich habe schon mal einiges ausprobiert. Das Programm sagt dann, dass irgendwas fehlt oder falsch formuliert ist usw. Außerdem sagt es manchmal, dass alles richtig ist und trotzdem führt er die Programmierung nicht aus. Bitte um Hilfe.

Vielen Dank im Vorraus!
Snake2004

19.03.2004, 10:34
Hi recycle!
Bin auch vor kurzem erst in die welt der roboter eingetreten...
Habe aber ein wenig ahnung, was elektronik angeht.

Also 7V für ein display ist absolutes maximum! Aber durch die motoren können spannungsspitzen entstehen, die das display nach ein paar wendungen von robby grillen.
Für einen spannungsstabi wie dem LM7805 ist 7V zu niedrig, da diese regler mindestens 3V spannungsdifferenz benötigen!
Entweder du suchst dir einen regler, der nur ein bis zwei volt benötigt (könnte unter umständen nicht ganz billig werden)
oder du stabilisierst mit einer Z-Diode und vorwiderstand
oder du schaltest eine silizium diode in Reihe, an der dann 0,6V abfallen.

Und jetzt mal zu den Ports...
Es sind zwar sehr wenig möglichkeiten gegeben, um sensoren an robby anzuschließen, bin aber im moment damit beschäftigt die eingänge zu multiplexen!
Ob das auch so einfach mit den ausgängen geht, werde ich irgendwann rausfinden.
Muss aber ab 1.4. in grundausbildung und habe dann erstmal keine zeit mehr :cry:
Bis dahin werde ich aber noch öfters vorbei schauen
Gruß

Deep

Deep
19.03.2004, 10:45
Peinlich...
Erst antworte ich auf einen post auf der 1. seite und dann bin ich nichtmal eingeloggt :oops:
Hoffe, dass ich trotzden helfen konnte...

Sorry, bin noch neu hier

Manf
19.03.2004, 11:28
Entweder du suchst dir einen regler, der nur ein bis zwei volt benötigt (könnte unter umständen nicht ganz billig werden)
oder du stabilisierst mit einer Z-Diode und vorwiderstand


Der 2950 benötigt weniger als ein Volt, und kostet beipielsweise 2,53Eu.
Ich bevorzuge die Lösung.

olaf38
19.03.2004, 12:30
Hallo Jungs und Mädels,
ich bin noch neu hier und habe mir jetzt den Robby bei Conrads bestellt (Lieferbar ab 29.03).Meine Frage an euch was kann mann sinnvolles mit dem Teil anfangen.Ich habe mehrere Roboterseiten besucht bei Wettkämpfen fahren die Teile auf einer schwarzen linie,ist das alles was heute möglich sein soll?Nebenbei bemerkt hat mein Physiklehrer in der Lehre 1984! in der DDR! einen selbsgebastelten Roboter vorgestellt der dem Licht einer Kerze folgen konnte.

AREXX
19.03.2004, 15:06
Ich habe mehrere Roboterseiten besucht bei Wettkämpfen fahren die Teile auf einer schwarzen linie,ist das alles was heute möglich sein soll?

Hallo,

Nein Robby kann viel mehr, An diesem Moment prüfen wir Robby als Fußballspieler für ROBOCUP SOCCER JUNIOR !

2006 WELTMEISTER ROBOCUP IN DEUTSCHLAND !

Sehe
- http://satchmo.cs.columbia.edu/rcj/
- www.rocci.net
- http://www.ais.fraunhofer.de/BE/robocup
- http://www.ki.informatik.hu-berlin.de/AKRoboCup/index.shtml
- http://satchmo.cs.columbia.edu/rcj/00.php
- www.robotsoccer.at[/quote]

JanPeter
19.03.2004, 17:15
Hallo deep!
Ich weis nicht ob Dein Thema hier her past!
Ich meine zum Thema " Suche Leute die mitmachen beim programmieren von Robby!

Ihr könnt auch Eigene Themen erstellen im Forum! :evil:

JanPeter
01.04.2004, 23:41
Hallo jörg!
Habe lange nichts von Dir gehört!
Steht Robby schon in der Ecke?
Bei mir noch nicht ,ich habe jetzt auf der eigenen Erweiterungsplatine eine zweite Erweiterung raufgebaut , mit einem ISD1416 (Sprachausgabe)
manchmal klappt es schon das ich von Robby meine Stimme höre.
Aber ich muß noch ein bischen basteln , bis es richtig klappt, mit der Sprachausgabe.
Ist jedenfalls sehr interessant!
Was machst Du so mit Robby ?

pentiumforever
02.04.2004, 10:36
Hi,
Nach dem Umzug Kaufe ich mir ebenfalls einnen Robby. Ich hab vorher aber noch ein paar fragen zu ihm:
1. Gibt es möglichkeiten (z.b. Compiler) um Robby mit anderen Sprachen als assembler und Basic zu Programmieren? (Ich will kein Drag & Drop!)
2. Ich habdas mit der Speicher Limitrung noch nicht ganz gescheckt, istder Speicher für Basic und assembler getrennt?
3. Wenn man die CC2 "Draufsetzt" hat man dann mehr Speicher und/oder mehr Rechnleistung zur verfügung, wird dann auch die Grenze mit dem EEPROM Höhergesetzt?
4. Ist es (Mechanich) möglich ihn mit möglichkeiten auszustatten das er einfache dinge hochhebt oder Fussballspielt?
5. Ist es möglich ein Ähnliches "Betribssystem" für Multi Thearding für die C-Control 1 oder 2 zu schreiben, oder ist schon eine art Firmware/Betribssystem inatlliert in den C-Control Sysemen?
6. Ich finde auf der Conrad Seite irgendwie die Addons für Robby nicht! Hat irgendjemand nene Link?

So dass wars fürs erste mal! Sorry, für die Menge aber ich fange (Nach versuchen mit RealRobots" grade erst an mich mit Robotern zu Beschäftigen!

Schon mal Danke im vorraus!

mfg pentiumforever

nestler
02.04.2004, 11:59
hi!

zu 1. glaub, das geht nicht so ohne weiteres

(...)

zu 4. möglich wäre das mit sicherheit - würde aber schon noch ein
wenig aufwand machen - das problem ist, wie man einen arm o.ä.
montiert. (vielleicht am besten eine aluplatte oben drauf, an der
man dann den arm befestigt?)

(...)

zu 6. die erweiterungen gibt es nicht auf der seite. du kannst sie aber
dennoch bestellen, wenn du die bestellnummern von www.c-robotics.de
auf www.conrad.de eingibst!

ciao,
simon

JanPeter
03.04.2004, 00:11
Hallo nestler!
Ist ja schön , das Du auch beim programmieren mitmachen willst!
Aber irgendwie verstehe ich nicht Deine Programmiersprache!!! :oops:
Ich glaub ihr Ihr seid hier am Thema vorbei !!!!

JanPeter
03.04.2004, 00:18
Ich glaube ich gebe es auf , es wird mir zu Kindisch!
Aber das passt ja zur Gesellschaft.
Viel reden um nichts, was keinem weiterbringt!
Also ich bin jetzt raus aus dem Forum!
Macht mal weiter so!
Bis irgendwann !

jörg
03.04.2004, 12:50
Hallo JanPeter,
bin schon noch da, hatte nur furchtbar viel zu tun die letzte Zeit...
Wie gehts der Sprachausgabe: Würde mich interessieren!

JanPeter
03.04.2004, 18:35
Hallo jörg!
Das mit der Sprachausgabe über I2C klappt.
Siehe auch "Roboter-Forum/Elektronik/Sprachausgabe Artikel

JanPeter
31.05.2004, 23:18
HAllo Jörg!
Machst Du noch was mit Robby?
Ich bin gerade dabei , die mechanik aufzuwerten.
Statt Gleitlager werde ich eine andere Übertragungsform wählen!

01.06.2004, 13:56
Hallo JanPeter,
Hab die letzten Monate nix mehr mit Robby gemacht:
Wollte endlich mal die Hardware verstehen, und hab drum viel gelesen (wills mal in die "Buchempfehlungen" stellen).
Will aber schon wieder was machen!

PS:
Hat jemand das Problem "Hochspannung" gelöst?
(die Robby-Elektronik läuft ja mit 7 V statt mit 5 V, und das stört, wenn man "teure" Teile dranhängen will...).

JanPeter
01.06.2004, 19:51
Hallo Jörg!
ACS funktioniert nicht, mit dem neuen Treiber.
DCF geht auch nicht !
Ich habe aber auch nicht mehr so viel Zeit , weil jetzt mein anderes Hobby seinen vorrang hat !
Denn ich beschäftige mich jetzt in der Hauptsache mit Elektrosegelflug.
Ich beschäftige mich aber immer noch nebenbei mit Robby.
Aber nicht mehr intensiv.
Es geht dann im Herbst weiter bei mir.
MfG JanPeter
PS:lass mal was von Dir hören , was Du so machst!

JanPeter
04.06.2004, 13:01
Hallo !
DCF funktioniert jetzt, mußte die Antenne 15 cm von der Erweiterungsplatine entfernt anbringen.

PRIC
11.10.2004, 12:26
Hallo Robby Fans,

ich habe meinen [glow=red:bf354db75e]Robby [/glow:bf354db75e]erst zwei Tage O:) , aber das erste, was ich dranlöte, ist ein altes Projekt von mir, ein ATMEL 1200 mit einem I2C Decoder in Assembler, der dann dieses sündhaft teure 4-Charakter Leuchtmodul von Conrad ansteuert. Ich brauch dann blos 5V, das wird schwieriger.
Der I2C Decoder ist von ATMEL, da musste ich nur ein paar Änderungen vornehmen (Adresse, Port schalten, enable pulse).
Ich fotografier es, wenns fertig ist.

Peter Richter

pebisoft
19.10.2004, 15:55
hallo, ich habe mein robby auf rädern mit einer atmega16-platine versehen und einem zusätzlichen c-control, daraus hole ich auch meine 5 volt für andere sachen wie sharpsensoren, display, ir-dioden usw.
mit der zusätzlichen c-control (mit eeprom 24c256) speichere ich vom robby aufgenommene daten , die er auf dem weg findet ca. 30kbyte.
diese wertet ich dann am pc aus und kann dann je nach vorgabe mit den sensoren die strukturierten räume/gänge am pc nachzeichnen oder anderes auswerten. er arbeitet wie ein marsmobil selbstständig, erst wenn ich die daten habe, weis ich wo er ungefähr gewesen ist. die sharpsensoren können z.b. bis 80cm entfernung messen.
je nach aufgezeichneten wert (0-1024) kann ich die wände oder hindernisse im speicher als zahlenwerte festhalten. es ist so, als wenn der marsexplorer nacn langer zeit mit den daten zurückkommt die dann zerlegt werden müssen. so befasse ich mich z.b. mit dem robby.
ich hatte vor, eine kamera draufzubauen und die daten dann
am pc sofort zu empfangen und auszuwerten, das war mir aber dann doch zu einfach für einen roboter, das kann man einfacher mit einem fernlenkauto was nicht so teuer ist. das erfassen der daten mit einfachen sensoren (ir, schall, helligkeit, taster)macht erst den reiz am robby aus.
mfg pebisoft