-
        

Ergebnis 1 bis 8 von 8

Thema: C++ Programm zur Echtzeitsteuerung

  1. #1

    C++ Programm zur Echtzeitsteuerung

    Anzeige

    Hallo alle zusammen,
    für meine Technikerabschlußarbeit hatte ich die Idee in C++ ein Programm zu schreiben mit dem man seinen Roboter(z.B Robby CCRP5) per Widowsoberfläche steuern kann.
    So, nun habe ich in Mikrocontroller programmierung und vorallem in der Robotertechnik nicht die geringste Ahnung.

    Meine Frage lauten somit:
    Ist dieses Vorhaben überhaupt realisierbar? Und wenn ja könnt ihr mir ein paar Tips geben wo ich mich da am besten schlau machen kann und vorallem, auf was ich bei diesem Projekt überhaupt achten muß.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von engineer
    Registriert seit
    24.01.2005
    Ort
    Raum Frankfurt
    Beiträge
    268
    Du könntest eine GUi schreiben, welche eine CODE -Liste aus einer Tabelle von der PLatte holt und diese per COM an den uC sendet, der dies dann abarbeitet. GUI-Programmierung: www.wxwidgets.org

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    30
    Beiträge
    215
    Das ist auf jeden Fall realisierbar, ich denke sogar es ist garnicht so schwer. Man muss dem Roboter nur per serieller Schnittstelle (COM Port) Befehle senden wie z.B. geradeaus. links, rechts, drehung, rückwärts usw. Der Roboter steuert dan die Motoren entsprechend an und sendet vielleicht Sensordaten zum Computer zurück.
    Funkmodule für die serielle Schnittstelle (max. 200m) gibt es einige.
    Threads über ferngesteuerte Bots gibts hier auch einige im Forum.
    Hoffe es war dir ne gedanken Hilfe.
    Gruß Muraad

  4. #4
    So in der Art habe ich mir das auch vorgestellt. Was mir jedoch nicht richtig klar wird (wie gesagt habe ich im Bereich Mikrocontroller nicht so viel Ahnung um nicht zu sagen klar keine *g*) muss ich die Befehle direkt an die Motoren, Getriebe usw.… senden oder (wahrscheinlich eher) an den Microcontroller. Wenn dies der Fall sein sollte, stellt sich mir die Frage ob das mit C++ überhaupt möglich ist. Soweit ich das hier in dem Forum richtig verstanden habe schreibt man normalerweise mit BASIC eine Art Betriebsprogramm für den Roboter in dem z.B. gesagt wird fahre immer geradeaus bis deine Sensoren ein Hindernis erkennen und wechsele dann die Richtung.

    Das würde dann aber bedeuten das ich praktisch mehrere Betriebsprogramme schreiben müsste wie z.B. ändere die Richtung nach links, nach rechts, halte an, fahre weiter usw.…, und diese immer wieder während der Roboter praktisch unterwegs ist auf den Mikroprozessor draufladen müsste.
    Oder irre ich mich da?!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    30
    Beiträge
    215
    Ja da hast du recht. Du sendest die Befehle (Bytes) an den Roboter(Mikrocontroller) und er steuert dann Motoren an, du musst aber nicht für jeden Befehl ein eigenes Programm schreiben. Ganz einfach würde es auf dem Roboter so aussehen.

    unsigned int befehl;
    befehl=empfange_befehl(); // Empfängt ein Byte über COM Port
    if(befehl==1){ } // Führe Befehl 1 aus
    if(befehl==2){ }
    if(befehl==3){ }
    usw.
    else
    { }
    Wobei es reiner Verständnisscode ist.
    Der Robby CCRP5 wird schon in Basic programmiet, wobei hier im Forum viele auch AVR Mikrocontroller benutzen. Die kann man mit Assembler, C und Basic programmieren. Nur mit C++ wirds bisschen eng mit Ram und Flash auf dem Mikrocontroller, wobei das auch gehen würde.
    Gruß Muraad

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    61
    Beiträge
    531
    Hallo bruno83,

    So wie muraad geschrieben hat,

    eigentlich sollte sich im roboter eine art 'interpreter' program befinden dass einfache (oder kompliziertere) commando's uber die seriellen schnitstelle empfangen und ausfuhren kann.

    die serielle schnitstelle kannst du dan mit C++ in einem windowsoberflache sehr gut ansteurn, z.B. ein WindowsTaste fur linksfahren, usw, bis so weit die eigene fantasie reicht

    dass problem ist, da must du doch die microcontroller studieren um ein einfaches 'interpreter' program einmahlig da hinein zu programmieren

    gruss

    Henk

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    Robby führt Befehle aus

    Hallo bruno83,

    für den Robby gibt es schon ein Programm, mit dem ein anderer Prozessor (CC2) dem CC1 des Robby Befehle über die serielle Schnittstelle erteilt, also ihn "fernsteuert".
    Es ist das Programm "gateway.bas". Wenn Du Dir das ansiehst, kannst Du gut erkennen, wie der "Command interpreter" in einer Schleife Befehle entgegennimmt oder Meßwerte auch zurückgibt.
    Anstelle der CC2 müßtest Du den Transceiver o.ä. an die serielle Schnittstelle des Robby hängen oder ihn halt mit simplem Kabel mit Deinem PC verbinden.

    Gruß Dirk

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    07.02.2005
    Ort
    im Kreise Offenbach
    Alter
    47
    Beiträge
    71
    Hallo bruno83,

    zuerst mal etwas positives: realisierbar ist Dein Vorhaben.

    A B E R
    Ich würde Dir so etwas für Deine Technikerprojektarbeit jedoch nicht anraten. Wenn Du selber nicht über ein fundiertes Wissen in Programmiertechnik verfügst ist das sehr gefährlich.
    Ich selber habe vor Jahren mein Technikerstudium gemacht.
    Die Projektarbeit bestand thematisch aus drei Teilen: Dokumentation/Aufbau, Presentation und Diskussion/ Rückfragen. Spätestens bei den Rückfragen der Prüfungskommission fällst Du hinten runter, wenn Du Dich nicht 100 %ig auskennst !!!

    D E S H A L B
    Nimm lieber etwas worin Du Dich zumindest zu 85% auskennst. Bei der Prüfung hat man im allgemeinen soviel Stress, dass sich die 85% sehr schnell auf 65% reduzieren können.

    Gruß
    David

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •