Baui
26.09.2005, 19:27
Hallo,
ich arbeite zur Zeit mal wieder an meinem Kettenroboter. Dieser besteht aus mehreren Hardwaremodulen, die über die RS485-Schnittstelle verbunden sind. Jedes Hardwaremodul besitzt einen ATMega8 als Steuereinhiet.
Als Protokoll verwende ich das SNAP Protokoll.
So jetzt meine Frage:
Was ist am sinnvollsten, wenn ich zum Beispiel dem ACTOR-Modul (Steuerung der Aktoren sowie lowLevel-Sensoren [IS471]) sagen möchte, dass erst einmal gerade aus fahren soll (dabei auf hindernisse achten, schritte zählen usw.) und erst anhalten soll wenn hinderniss bzw. SChrittzahl erreicht wurde.
ich habe mir das bis jetzt folgendermaßen überlegt. Ich lege auf jedem Modul ein Array aus 32 Bytes an. In diese werden dann alle wichtigen Informationen (schrittzahl usw. geschrieben). jetzt fragt der Master nur noch die Arrays ab bzw. schreibt ein komplettes Array neu. Das Modul muss dann lediglich die Daten aus dem eigenen RAM lesen und entsprechend umsetzen.
Das 32. Byte ist das sogenannte EventHandlerByte und gibt an, ob ein Ereigniss (Hinderniss erkannt, SChrittzahl erreicht u.ä.) anliegt. Ist dies der Fall, wird entsprechend verfahren. Ist das EHB=0 wird der normale Ablauf beibehalten.
Wie löst ihr das bei euren Robotern? Welche Befehle übergibt man allgemein an Module? Ich arbeite bisher immer mit bytes.
Bin über jede Anregung dankbar
Gruß
BAui
PS. Ich hoffe ich bin im richtigen Forum Abteil gelandet....;-)
ich arbeite zur Zeit mal wieder an meinem Kettenroboter. Dieser besteht aus mehreren Hardwaremodulen, die über die RS485-Schnittstelle verbunden sind. Jedes Hardwaremodul besitzt einen ATMega8 als Steuereinhiet.
Als Protokoll verwende ich das SNAP Protokoll.
So jetzt meine Frage:
Was ist am sinnvollsten, wenn ich zum Beispiel dem ACTOR-Modul (Steuerung der Aktoren sowie lowLevel-Sensoren [IS471]) sagen möchte, dass erst einmal gerade aus fahren soll (dabei auf hindernisse achten, schritte zählen usw.) und erst anhalten soll wenn hinderniss bzw. SChrittzahl erreicht wurde.
ich habe mir das bis jetzt folgendermaßen überlegt. Ich lege auf jedem Modul ein Array aus 32 Bytes an. In diese werden dann alle wichtigen Informationen (schrittzahl usw. geschrieben). jetzt fragt der Master nur noch die Arrays ab bzw. schreibt ein komplettes Array neu. Das Modul muss dann lediglich die Daten aus dem eigenen RAM lesen und entsprechend umsetzen.
Das 32. Byte ist das sogenannte EventHandlerByte und gibt an, ob ein Ereigniss (Hinderniss erkannt, SChrittzahl erreicht u.ä.) anliegt. Ist dies der Fall, wird entsprechend verfahren. Ist das EHB=0 wird der normale Ablauf beibehalten.
Wie löst ihr das bei euren Robotern? Welche Befehle übergibt man allgemein an Module? Ich arbeite bisher immer mit bytes.
Bin über jede Anregung dankbar
Gruß
BAui
PS. Ich hoffe ich bin im richtigen Forum Abteil gelandet....;-)