PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Portansteuerung - wie??



mattes
13.12.2004, 19:55
Hallo erstmal,
habe mir vor kurzem aus ner programmierlaune heraus einen ccrp5 gekauft.
Bin soweit auch recht zufrieden. Das Problem ist, ich besitze nur gerade mal Grundkentnisse der Elektronik und muss langsam ausbauen.
Um genauer zu werden will ich einen -möglichst 2- Servos ansteuern und die spannung der Solarzellen abfragen (später nochn Ultraschallsensor).

Bloß wo schliess ich die an?

Wo kann ich erkennen "was" ein Port ist, und welcher dem in Basic entspricht?

Die Erweiterungsplatine besitze ich (noch) nicht, aber da eine CControl2 nicht geplant war, denke ich ist sie überflüssig.

Vielen Dank schonmal...

Arexx-Henk
13.12.2004, 23:13
Hallo Mattes,

laut Zeignung Seite 2 von 3 (CDRom)
port1-8 sind eigendlich fur internen nutzen
port9-16 gehen zum connector Y9-Y16 (rechter seite der Robby)


mvg,

Henk

MasterMelo
14.12.2004, 07:15
Hallo,
ich hab dann auch mal ne Frage: Wenn ich dann den Servo (oder etwas anderes) an den Ports angeschlossen habe, kann ich aus den Schaltplänen ablesen welche Ports das denn sind. Aber wie sage ich im Programm das diese Ports jetzt Strom kriegen sollen oder wieder nicht?

Vielen dank.

pebisoft
14.12.2004, 11:20
ohne ein asm-programm laufen keine servo an der c-control des robby.
wenn ein asm-programm in die c-control geladen wird, kann der robby die sensoren nicht mehr auslesen, weil diese von einem asm-programm gesteuert werden (der coprozessor) was sich im 256byte-speicher befindet.
mfg pebisoft

pebisoft
14.12.2004, 11:23
ein ultraschallsensor am robby ist ohne programmier- und elektronikkenntnisse nicht realisierbar ohne das der robby schaden nimmt.
mfg pebisoft

pebisoft
14.12.2004, 11:30
wenn du roboterkenntnisse beim robby gesammelt hast, baue dir einen selber zusammen (siehe mein küchenbrettroboter). der conrad-robby ist in der grundversion nicht gross ausbaubar und die c-control-II ist zu teuer.
er hat ungenaue sensoren und die auswertung ist miserabel, ohne ein polster vorn und hinten kannst du den robby nicht auf reise schicken.
die batterieladung des robby ist mit höchster vorsicht durchzuführen.
die geräusche sind sehr laut und die batterieladung hält nicht lange an so lange das fahrwerk des robby nicht auf räder gebaut wird.
mfg pebisoft

Arexx-Henk
14.12.2004, 12:05
Hallo Mastermelo,

Lese zuerst mahl das Robby Basic manual (ha, ha, ha!) Ich hab schon manche Jahre Erfahrung mit programmieren und Programmiersprachen aber fur anfanger lasst sich dass Robby Basic manual nur ganz schwer verstehen. (Fur mich jedenfals)

Die Hauptprozessor der Robby (ein Motorola MC68HC05B6) hat 3 digital 8-bits Ports (A, B und C) und 1 analoge 8-bits port (D).
Im allgemeinen wird das Wort 'Port' often benutzt sowohl fur eine Gruppe von 8-bits (z.B. Port C) aber auch fur ein einzelnes mitglied eines Ports z.B. Port C bit 3 wird Port PC3 genannt.

Warum gibt es kein Ports mit z.B. 6 bits? Weil alles im Computer mit Bytes angesteuert wird und bytes sind nun mahl 8-bits breit. Und damit
sind Ports als ein Byte zu betrachten (Lesen und Schreiben).

Normahlerweise im Computerwelt wirden port-bits nummeriert von 0-7 aber Conrad-Basic nummeriert port-bits von 1-8 und 9-16 Und Conrad-Basic kenzeichnet ein einzelne port-bit als ein 'Port'.

Prozessor PortA (8-bits) davon werden nur 3 bit benutzt vom Robby und sind nur fur interne nutzen und sind NICHT vom Basic her manipulierbar.

Prozessor PortB (8-bits) dass sind die Basic ports Port[1] bis Port[8]. Sind auch fur internen nutzen aber einige sind mit Robby connectoren verbunden.

Prozessor PortC (8-bits) dass sind die Basic ports Port[9] bis Port[16]. Sind intern nirgendwo mit verbunden, nur mit anschliessung Y9-Y16 am rechter Robby connector und sind fur anwender nutzungen.

Ein Robby-program (klaren Tekst) wird vom Tastendruck F12 umgesetzt nach Basic-Code (Tokens genannt) und danach zum Robby gesended und von den Robby hauptprocessor im EEprom chip (8-beiniges chip) gespeichert. Im innern der Robby hauptprocessor ist ein Conrad-Basic-Umwandler program anwesend (Basic-Interpreter) der beim ausfuhren vom Program die Basic-Code (Tokens) aus die EEprom chip heraus holt und interpretiert und dazu gehorende (vom Conrad geschrieben und vom hersteller der chip einprogrammiert) in spezielles MC68HC05 mikro-controller code geschriebene functionen ausfuhrt........verstehs du's noch oder bist du schon pleite???

Intern im Prozessor kan mann im prinzip jeden Port-bit als eingang oder als ausgang schalten. Aber die Conrad-Basic Interpreter ubernimmt diese function durch einfachere Basic-commando's. Beim aufstarten der Robby sind alle ports als eingang geschaltet (wird vom Procezzor internen hardware ausgefuhrt).

Jetzt komt Robby Basic. (z.B. einen Led einschalten/ausschalten)
Led verbinden mit connector Y12 (ist port[12])
====================
define LedControl port[12]

port[12]=on 'ist illegale code

LedControl=on 'Led einschalten, strom an
LedControl=off 'Led ausschalten, strom aus
====================

Beim 'LedControl=on' wird 'unterwasser' im Hauptprocessor wenn port[12] (irgendwo) als eingang definiert war zuerst port[12] als ausgang geschaltet und 'hoch' (ungefahr 5 Volt) geschaltet.


SERVO's

Bin kein Expert mit Servo's aber so weit ich weiss werden servo's mit schnellen pulsen angesteurt. Die port[9] bis port[16] sind nicht dafur geeignet weil durch die zwischenlage vom Conrad-Basic die ports nicht schnell genug und correct zu programmieren/schalten sind. Dafur sollst du im 'prozessor-sprache' programmieren mussen und nicht in Basic.


So, jetzt hor ich mahl auf, sonst versteh ich's selbst nicht mehr...


mvg,

Henk

mattes
14.12.2004, 13:39
Vielen dank erstmal für die vielen und genauen Antworten.
Irgendwie hört sich das alles sehr negativ an....
Da sind allerindings ein paar Sachen denen ich nicht zustimmmen kann:

@pebisoft: Mein robby besitzt keine "stoßstangen", da er im "autopilotmodus" eigentlich keine "fehler mehr macht". Zum Laden: Verstehe eure sorgen nicht... (oder hatte ich bisher einfach Glück?) Man nehme ein Universalnetzteil
stecke es in die dafür vorgesehen buchse, lass den robby an (sonst lädt er nicht) fertig. Habs anfangs auch oft falsch gemacht, also robby aus oder NT auf entladen... Leben und laden tut er immernoch.

Zum Ultrschallsensor: Wenn ich das richtig verstanden habe schickt der zur auswetung verschiedene spannungen. Solange die spannungen nicht so hoch sind, dass mir der robby durchschiesst , müßte ich die doch auslesen können?? Oder seh ich das alles etwas zu einfach??

pebisoft
14.12.2004, 15:23
lies die beschreibung einmal genau durch, eine nicht kontrollierbare überladung kann beim robby schaden anrichten. die platine läuft ideal mit 7,2 volt ansonsten fangen die störungen an. es ist keienrlei schutz auf der paltine gegen überspannungen. schau hier im forum , da gibt es sehr viel bastelvorschläge.viel spass mit dem robby.

mfg pebisoft

mattes
14.12.2004, 15:49
OK OK ... habe eingesehen die Beschreibung doch nochmal genauer zu studieren. Hoffe mal, dass ich nochn bissl spass mit dem ccrp5 haben werde
auch wenn damit anscheinend nicht allzuviel "geht". Vielen vielen dank nochma für die vielen und produktiven antworten.

Dirk
14.12.2004, 18:15
Hallo mattes,


Da sind allerindings ein paar Sachen denen ich nicht zustimmmen kann:

@pebisoft: Mein robby besitzt keine "stoßstangen", da er im "autopilotmodus" eigentlich keine "fehler mehr macht". Zum Laden: Verstehe eure sorgen nicht... (oder hatte ich bisher einfach Glück?) Man nehme ein Universalnetzteil
stecke es in die dafür vorgesehen buchse, lass den robby an (sonst lädt er nicht) fertig. Habs anfangs auch oft falsch gemacht, also robby aus oder NT auf entladen... Leben und laden tut er immernoch.

Zum Ultrschallsensor: Wenn ich das richtig verstanden habe schickt der zur auswetung verschiedene spannungen. Solange die spannungen nicht so hoch sind, dass mir der robby durchschiesst , müßte ich die doch auslesen können?? Oder seh ich das alles etwas zu einfach??
Du siehst das genau richtig! Auch bei mir macht er kaum Fahrfehler (gute Programmierung O:) !?) und meine Akkus (2500 mAh) laden mit einem 1A/9V Netzteil ohne Probleme.
Also: Das war kein Glück.
Die Spannung von Solarzellen ermitteln (so gings ja hier los!) geht mit dem AD-Wandler prima, es braucht nur einen Spannungsteiler (2 Widerstände). Der Anschluß eines Ultraschallmoduls mit Analogausgang ist ebenfalls unproblematisch, evtl. hier auch mit einem Spannungsteiler, falls der Analogausgang über 2,5 Volt hergibt.
Wenn ich viele Beiträge hier lese, dann gehen manche Robbys nicht deshalb kaputt, weil sie schlecht oder zu empfindlich sind, sondern weil technisch wenig versierte Leute An- oder Umbauten machen, die ihn "hinrichten". (Damit wir uns richtig verstehen: Das ist kein Vorwurf an irgendjemanden, sondern nur eine Beobachtung in diesem Forum!)
Die dann folgenden Klagen über ihn sind nicht berechtigt. Letztlich ist er für seine Leistung "billig" und man kann mit Spaß am Programmieren eine Menge mit ihm machen.
Dazu braucht man übrigens auch keine Floating point Variablen oder Strings, da seine Möglichkeiten dafür keine Verwendung hergeben.

Viel Spaß mit dem Robby weiterhin!

Gruß Dirk

mattes
14.12.2004, 19:27
Na das hört sich doch mal gut an. Wenn ich das jetzt zusammenfassend richtig verstanden habe, muss ich die Solarzellen an einen AD-Port anschließen(z.B.: AD8 bzw. Y6 auf der Platine) und dafür Sorgen, dass nicht mehr als 2,5 V dort ankommt. Deklarieren in BASIC wäre dann:
define solarpanel ad[8]
Wenn ich jetzt solarpannel abfrage müsste der wert irgendwo zwischen 0 und 255 sein.
Das müßte doch dann auch für die Ultraschalls funktionieren? muß dann wohl nur noch zusätzlich drauf achten, dass die aktiv sind, damit das Signal nicht zu schwach ist...
Hoffe mal, dass ich das jetzt endlich gerafft habe.........DANKE

pebisoft
14.12.2004, 21:48
der robby ist keine herausforderung an experimenten. ein herumrasen und hindernissen ausweichen ist noch keine herausforderung. der ausbau hat seine grenzen. die c-controlI ist nichts für roboter, am besten ein avr darauf, habe ich auch gemacht und räder untergesetzt. die fahrgeräusche
sin übermässig laut und die akkus halten nicht sher lange aus, weil der kettenantrieb und das wenden übermässig viel strom verbraucht. zitat: für die ersten 4 wochen reicht er aus mit den experimenten.
mfg pebisoft

Worms89
04.02.2007, 12:21
Die Pors kann man sicherlich auch mit Optokoppler schüzen, wie mit den SFH6106!
Einfach Katode an Masse und Anode an Port oder braucht man da einen Wiederstan?