PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Conrad Robby CCRP5 - Programmierung



LisaMarie
10.08.2005, 09:16
Hallo liebes Forum :-),

für ein Studien-Projekt überlege ich, mir einen Robby RP5 von Conrad zu kaufen.
Jetzt meine Frage: In der einfachen Standardversion, wie und mit welchen Programmiersprachen kann der programmiert werden?

Und wenn man gleich noch die Erweiterungsplatine und den besseren Controller C-Control-II dazu kauft? Ändert sich in der Programmierung was und welche Sprachen kann man dann verwenden?

Liebe Grüße von Lisamarie!

Antiich
10.08.2005, 09:59
hi...

also der rp5 wird normalerweise in basecom programmiert, einem einfachen basic dialekt. bei der cII kA...

überleg aber mal ob der asuro nicht was für dich ist. ich hab mich nach intensiven lesen des forums für den asuro (auch fürs studium -> kognitive informatik) und gegen den rp5 entschieden da er unteranderem mit C zu programmieren ist und z.b. schon auf rädern läuft, viel günstiger da bekommt man für die differenz zur rp5 basisversion schon ein paar brauchbare sensoren. ließ bischen im forum da steht viel zum thema...

in diesem Sinne

LisaMarie
10.08.2005, 12:30
Hallo,

es wird aber wohl der Robby RP5 werden, wegen Kettenantrieb.

Dieser Basic-Dialekt scheint ja nicht sehr mächtig zu sein, außerdem scheint er ja mit GOTO zu arbeiten, was ja verpönt ist.
Gibt es da wirklich keine anderen Möglichkeiten?

Auch nicht mit C-Control-II?

Programmieren hier denn alle ihren Robby mit dem Basic? Wenn ja, seid ihr da schon auf Probleme bzw. programmiertechnische Grenzen gestoßen?

Liebe Grüße von Lisamarie!

Antiich
10.08.2005, 12:45
ist halt basic... problem ist das die meisten "profi" geräte mit c(++) programmiert werden. einige hier schwören jedoch auf bascom weils vermutlich einfacher ist nur meiner meinung als informatikstudent nach ist c eindeutig besser, da man das auch super auf anderen bereiche übertragen kann.

naja assembler sollte in jedem fall mit dem rp5 funktionieren (macht aber kaum spaß mussten im letzten semester assembler programmieren zwar auf intel 32bit aber ist ja ähnlich). es gibt auch noch ein c-control II forum im netz... da kannste im notfall mal fragen wie die zu programmieren ist.


in diesem Sinne

clnet
13.08.2005, 19:42
Die Einschränkungen liegen meiner Meinung nach weniger in der Programmiersprache begründet als in der Leistung des Prozessors. Da die Systemroutinen einen großen Teil des sowieso schon knappen Speichers belegen. Außerdem werden keine Fließkommaoperationen unterstützt. Erschwerend kommt hinzu, dass als Datentypen nur unsigned 8bit Integer oder signed 16bit Integer angeboten werden.
An der Sprache stört mich vor allem, dass keine Funktionen unterstützt werden, sondern nur primitive Sprungbefehle. Allerdings lassen sich mit ein bisschen Nachdenken auch viele bekannte Konstrukte aus höheren Sprachen ersetzen oder nachbilden (z.B. indem alle Funktionen ihre Rückgabewerte in einer Variablen ablegen). Es leidet vor allen Dingen die Lesbarkeit des Quelltextes. Auch die Gliederung des Programms in Module(Bibliotheken) und eingeschränkte Geltungsberiche für Variablen werden nicht unterstützt.

Für die CControl gab es auch mal einen C-Compiler, der allerdings eingestellt wurde. Inwieweit er trotzdem noch erhältlich, oder mit den Anforderungen des CCRP5 kompatibel ist, kann ich nicht sagen. (ggf mal nach CCC MArc (Mark?) van Endert googlen)

Die CC2 wird in einem C-Dialekt dprogrammiert, der allerdings um einige "gefährliche und schwer zu verstehende" (sinngemäßes Zitat aus der Conrad-Doku) Konstrukte bereinigt wurde. Ich vermute, dass das heißt, das keine Pointer unterstützt werden. Näheres steht in der zitierten Doku, die im Internet erhältlich sein sollte.

ACHTUNG: Alle Erklärungen beziehen sich auf die von Conrad mitgelieferte Entwicklungsumgebung samt Compiler. Sollte es noch andere Möglichkeiten (außer Assembler ;-) ) geben, die Kiste zu programmieren, dann sagt mir bitte Bescheid

pebisoft
14.08.2005, 18:56
hallo, die c-control-1 auf dem rp5 hat nur 255 byte frei für assembler.
also kannste auch vergessen in asm zu proggen.
mfg pebisoft

viracocha
15.08.2005, 00:27
Hi,
der kleine Bereich für Assembler ist nur für kleine unterstützende Routinen gedacht. Für allgemeine Aufgaben wie Fernsteuerung, Abfrage der Sensoren Ausweichen etc. reicht das Basic aus jeden Fall. Braucht man mehr Platz bzw. mehr Rechenleistung muß man allerdings das Erweiterungboard mit C-Control II kaufen. Die ist schnell auf den Roboter aufgesteckt und arbeitet dann als Hauptprozessor. Der CI-Controller führt weiterhin grundlegende Aufgaben aus und wird von der CII mittels Datenaustausch gesteuert.

Achtung der RP5 hat auch einige Bugs. So kann man weglassen einer Programmzeile angeblich die Motorsteuerung zerstören (REV_L=on:REV_R=on:SYS PLM_SLOW) und weitere Ostereier ;-) die einem am Anfang ganz schön nerven können.

Der Vorteil vom RP5 ist, das man den in wenigen Minuten zusammengesteckt und programmiert (dank der mitgelieferten Beispiele) hat. Was man dann daraus macht, ist ne andere Sache.

Dirk
16.08.2005, 21:08
Hallo Lisamarie,

wenn man den RP5 mit CC1 programmieren will, dann ist das halt der BASIC Dialekt. GOTO-Konstruktionen sind da ja üblich.

Die CC2 hat einen C-Dialekt mit Funktionsaufrufen, der wesenltich geschmeidiger zu programmieren ist.
Interessant ist das Zusammenspiel der beiden uCs über die serielle Schnittstelle, so dass man beide uCs programmieren muss.

Gruß Dirk

clnet
17.08.2005, 20:24
Hallo,
Inzwischen hab ich noch eine weitere Möglichkeit entdeckt, nämlich den Basic++ Compiler von http://www.fdos.de . Damit verbessert sich die Performance der CC1 natürlich nicht, aber der Basic++ Code ist trotz der starken Ähnlichkeit mit dem normalen CCBASIC sehr viel besser lesbar. U.a. werden Funktionen, lokale Variablen, select case Anweisungen und die Gliederung des Codes in verschiedene Dateien unterstützt, so dass man häufig benutzte Routinen bequemer verwalten kann.
Die CCRP5 spezifischen Routinen habe ich lediglich ein wenig an die Basic++ Syntax angepasst. Das scheint gut zu funktionieren, allerdings hab ich es noch nicht extensiv getestet.

an die CC2 Besitzer eine Frage:
wie stark leidet die Batterielaufzeit unter der CC2 und wie hoch sind die Kosten für die Nachrüstung? Welche Schnittstellen kann die CC2 ansprechen?

Dirk
19.08.2005, 15:39
Hallo clnet,

die CC2 kostet knapp 100 € und die Erweiterungsplatine 40 €.
Der Stromverbrauch ist sehr hoch (60-100 mA), so dass auch mit meinen 2500 mAh-Akkus höchstens 2-3 h drin sind (wenig Motoreinsatz, d.h. überwiegend stehender Betrieb).
Über die serielle Schnittstelle kann die CC2 auf alle Funktionen des RP5 zurückgreifen. Dazu gibt es für die CC1 ein "Gateway"-Programm, für die CC2 ein angepasstes Modul CCRP5.C2, über das der Zugriff erfolgt. Das Modul bietet zusätzliche "Sleep"-Funktionen, mit denen man die CC2 abschalten kann (zum Stromsparen) und nach einer Bedingung wieder aufwecken kann.
Bei mir steuert die CC2 z.B. den RP5. Der kann dann (CC2 gesteuert) sein Solarpanel in die Sonne drehen und anfangen, die Akkus zu laden. Währenddessen wird die CC2 abgeschaltet. Wenn es zu dunkel wird oder die Ladung beendet ist, kann die CC2 wieder geweckt werden und die Kontrolle übernehmen.
Die CC2 eigenen Schnittstellen sind zusätzlich nutzbar (A/D-Wandler, Ports, I2C ...). Sie sind auf der Experimentierplatine zugänglich.

Gruß Dirk

hup
20.08.2005, 02:31
Gibt es da wirklich keine anderen Möglichkeiten?

Ich bevorzuge die Programmierung der CC1 in C mit C3C:

(siehe
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=3678
und
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=6769
)

... ist ganz einfach und übersichtlich ... schau's dir mal an ...