PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : virtueller asuro



Weiti
26.09.2008, 10:26
Nachdem meine zahlreichen asuro "programmierkünste" immer wieder zu fehler führen, die hardware mehr als mangelhaft ist und die quälend lange wartezeit beim flashen einen zu tode langweilt, hab ich mich gefragt ob man nicht einen virtuellen asuro erschaffen kann.

Das ganze sollte als programm geschrieben sein, in dem man den asuro von oben sieht und mit mausklicks schwarze oder weiße untergrundfarben wählen kann, sowie linien in schwarz oder weiß malen kann.
Dazu muss man hindernisse einfügen können.
Dann wird in diesem programm ein normal geschriebenes hex-file geöffnet und auf einen start-button gedrückt, sodass der virtuelle asuro im programm durch die gegend fährt wie es das programm festlegt.
zusätzlich sollten dann noch einige anzeigen zu den leds und der geschwindigkeit vorhanden sein.

Leider habe ich nicht solche programmierfähigkeiten ein solches programm umzusetzen, aber möglicherweise hatte ja schonmal jemand eine ähnliche idee.

Sternthaler
26.09.2008, 19:13
Hallo Weiti,

so eine Idee hatte bestimmt schon jemand.
Und nun?

Gruß Sternthaler

linux_80
26.09.2008, 20:47
Hallo,

evtl. kann man das was die beim c´t-Bot (http://www.heise.de/ct/projekte/ct-bot/) haben (c´t Sim), so umbauen das es für den ASURO passt.
Hab das aber noch nicht genauer angeschaut, ob man da näher ran kann um es anzupassen.

Weiti
26.09.2008, 23:55
so eine Idee hatte bestimmt schon jemand.
Und nun?

ich weiß ich habe keine konkrete frage gestellt. aber evtl gibt es ja sowas und jemand hat davon gehört, oder ich rege einige gute programmierer damit an sowas umzusetzen.

Sternthaler
29.09.2008, 02:47
Hallo Weiti,

stimmt, konkret war da keine Frage gestellt ;-)

Ich führe mal ein paar Punkte auf, die mir bei deiner Beschreibung für diese Idee so in den Sinn gekommen sind:

- Du kannst den Asuro noch nicht programmieren.
Dann kannst du auch kein Programm in einen Simulator schieben. Warum also Simmulator?

- Simulator soll Asuro-HEX-Code verarbeiten:
-- Du benötigst einen AVR-Simulator-Teil.
--- Hier müssen die Befehle vom AVR nachgebildet werden.
--- Interrupts sind häufig sehr schwer zu simulieren. Vor allem wenn Input von außerhalb kommt (Tasten). Somit benötigst du eine 'Umwelt' im Simulator, wo der Asuro dann mal vor eine Wand fahren kann.

-- Du benötigst einen Asuro-Simulator-Teil
--- Alle Ein-/Ausgabepins vom AVR hängen an irgendeiner Hardware. Du müsstest alle Komponenten per Software nachbilden. Alleine die Anbindung der Sensoren ist schon eine Herrausforderung, da du dann ja bei den Rädern z.B. das Getriebe mit dem Motor und die ODO-Scheiben möglichst auch noch Umgebungslichtabhängig realisieren müsstest. Auch hier muss wie bei den Tastern noch mehr 'Umwelt' erzeugt werden.
--- Probleme, die in der realen Umgebung auftreten, könntest du in einer einfachen Version erst einmal gar nicht realisieren. Somit würden die simulierten Programme wahrscheinlich nicht wirlich auf einer echten Hardware laufen.

- Ja und dann eben noch den Umgebungs-Simulator-Teil
-- Hier gibt es einige Programme, mit denen man eigene Spiele erstellen kann. Eventuell sollte man hier schauen, ob man eins findet, in das man einen 'Sims-Asuro' einbinden kann.

Diese hier aufgeführten Gedanken, sollen natürlich nicht heißen, dass es nicht möglich ist.
Aber ich denke, dass es grundsätzlich netter ist, den Asuro zu programmieren, als einen Simulator dafür zu schreiben. Ist aber nur meine Meinung dazu.

Und nun? ;-)

Gruß Sternthaler

rossir
01.10.2008, 01:36
Hallo Weiti,

finde ich spannend!

Beim c't Sim haben die das mit dem "Umgebungs-Simulator-Teil" auch irgendwie(!) hingekriegt.

Ein BotProgramm in C, welches eigentlich für den realen Bot geschrieben (und gedacht) ist, wird einfach unverändert unter VC compiliert und "kommuniziert" dann mit dem c't Sim (statt mit der realen c't Bot Hardware).

Möglich machen dies ein paar geschickt eingestreute #if s im BotProgramm und getrennte Libs.

oberallgeier
01.10.2008, 10:54
Nachdem meine zahlreichen asuro "programmierkünste" immer wieder zu fehler führen, die hardware mehr als mangelhaft ist und die quälend lange wartezeit beim flashen einen zu tode langweilt, hab ich mich gefragt ob man nicht einen virtuellen asuro erschaffen kann ....So wie ich es sehe, hast Du 1. eine Motivation das zu machen und 2. offenbar durch Hardwarefehler (wer hat denn Deinen asuro gelötet - warst das nicht Du?) und andere Pausengeneratoren genug Zeit, die sinnvoll gefüllt werden könnte.


... Leider habe ich nicht solche programmierfähigkeiten ein solches programm umzusetzen ...AAAAAAAAaaaaaha. Diese Methode kenne ich, sie nennt sich TEAM-Arbeit: Toll, Ein Anderer Machts.


... möglicherweise hatte ja schonmal jemand eine ähnliche idee.Sicher, und mancher hat das dann auch gemacht. Ein hübsches Beispiel gibt es hier. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=346957#346957) Aber es ist ein Riesenaufwand, selbst wenn man nur einige Parameter und Einflussgrößen (https://www.roboternetz.de/phpBB2/viewtopic.php?p=341924#341924) einbringen möchte. Und noch mehr Aufwand. (https://www.roboternetz.de/phpBB2/viewtopic.php?p=342254#342254)

Es mag jetzt überheblich klingen, soll es aber nicht sein: Wer so etwas programmieren kann, hat vermutlich keinerlei Motivation dazu. Er lötet präzise, baut seine Teile korrekt und gewissenhaft zusammen (ich meine nicht unbedingt dass Du das nicht tust, aber auch Du wirst vermutlich mit etwas Erfahrung viele Fehler nicht mehr machen), plant und schreibt seine Programme so, dass sie schnell funktionieren - und bei Fehlern mit identifizierbaren Fehlermeldungen kommen. Und der Hersteller kann viel und gut programmieren, aber der will seine Teile verkaufen.

Versteh also, dass es solche Simulationen kaum gibt - es gibt zu Sternthalers Gedanken noch einige andere, wie z.B. diese, die dagegen sprechen. Vielleicht wäre es für einen Studenten eine hübsche Diplomarbeit. WENN sich ein Mensch findet, der das Thema betreut . . . .

Weiti
06.10.2008, 13:49
zusammenfassend laesst sich also sagen: der aufwand lohnt nicht.
Ich wuerde es schon gerne machen, so ein simulator zu entwickeln, aber dafuer fehlt mir leider die kompetenz :)
mal sehen was sich im studium so ergibt. evtl mach ich ja mal eine programmiersprache so tief das sich ein solcher simulator anbietet.