Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO-Bot Bausatz: Erfahrungen und Meinungen
Was sind den beim Asuro die Lötpunkte CON1 und CON2 genau?
Sie sind hier im Schaltbild eingezeichnet.
Manfred
https://www.roboternetz.de/phpBB2/files/asuro_comm1.jpg
addition 2 Manf: con1=3.PWM-Ausgang, con2=int0
Martin
An Con1/2 hängen aber leider auch noch andere Sachen.
Es weiß nciht zufällig jemand, wie der andere kleine Lern-Roboter der Frima Arexx heißt?
MFG Moritz
pebisoft
19.12.2004, 20:16
einen ball mit infrarotsender ist ganz einfach. doppelt so gross wie der tennisball, da passt ein kleiner avr-rein mit batterie und ir-diode. aussen am ball ein bisschen versenkt ein ladekabelanschluss und der prog-anschluss. schon ist er fertig. oder noch einfacher, ein "easy-radio" reinbauen braucht nur eine 8cm antenne aus kupferdraht die den man auch als spirale wickeln kann. also alles ganz einfach, keine zauberei.
mf gpebisoft
Aha, an den CON1/2 ist also noch die IR-Diode und die StatusLED.
Weiß dann auch wer, was die Lötpunkte vor den Motoren sind?
Man kann auch statt nem AVR nen NE555 nehmen und das ganze mit z.b. ner freq von 38kHz schwingen lassen und dann mit nem TSOP empfangen!
Martin
Hi Manfred,
Versuche es doch mal wenn möglich mit 5V.
Ich habe 5V am Asuro.
Ich betreibe den mit einem 2-Zeller Lipoly und einem
5V-Low-Drop Spannungsregler dahinter.
Ich habs aber auch schon am Labornetzgerät mit
4V bis 5,5V probiert. Ändert sich nix.
Trotzdem Danke für den Tip.
Ich versteh das nicht, wo doch der Test mir dem Hyperterminal
einwandfrei geklappt hat.
Gruß Jan
Wenn der Adaptertest funktioniert hat, liegts wohl am Empfängerkreis am Asuro. Das wahrscheinlichst ist eine kalte Lötstelle (Bei mir war sie am Adapter ;-) ) Am besten du lötest nochmal alle Lötstellen am Empfängerkreis des Asuros nach, geht wahrscheinlich schneller als den Fehler zu suchen...
Gruß, Sonic
Hallo,
Das Testprogramm des Asuro sendet ja die empfangenen Ascii-Zeichen
um eins inkrementiert zurück.
Das hat geklappt. Empfänger geht also, zumindest eingermassen.
Egal, ich probiers mal mit Nachlöten - vielleicht hilft es ja.
Gruß Jan
Huch, da war ich irgendwie ausgeloggt...
Also der letzte Gast war ich.
Gruß Jan
Achso, ich hab gedacht du meintest den Test mit dem weisen Blatt Papier ;-) Naja, nachlöten schadet nie...
Gruß, Sonic
@ x-ryder:
Ich verstehe auch nciht so ganz, was Pebisoft jetzt meint, ob es sich jetzt auf den Ball, oder die Kommunikation zwischen den Asuros bezieht. Ich denke ein NE555 würde rechen, allerdings sollte man dann die Kommunikation zwischen mehreren Asuros per Funk regeln, da dann vermutlich schon genu Infrarot gessendet wird.
@Ich_:
Das sind die gleichen wie für die Odometrie weiter hinten, die Anordnung ist ja auch die selbe. Vermutlich haben sich die Hersteller da noch irgendne Möglichkeit offen gelassen ;-)
MFG Moritz
Ich habs heute übrigens (endlich) auch geschafft, denn Interrupt in die "Asuro in bascom".bas einzubinden. Download weiterhin:
http://www.free-webspace.biz/update/index.htm
MFG Moritz
Hallo,
Flashen klappt doch ! :) :)
Ich hab heute den Asuro nebst Ir-Modul mit zur Arbbeit genommen,
und es hier auf dem PC ausprobiert.
Klappt einwandfrei mit wenigen Übertragungsfehlern.
Es liegt also definitiv an meinem Notebook oder dem USB-Seriell-Adpater.
Merkwürdig nur, das es zu Hause an dem PC meines Sohnes
mit "echter" serieller Schnittstelle auch nicht ging ???
Gruß Jan
Also heute hab ich Mail von BigC bekommen und ich bekomm wirklich nur die anderen Teile. Der ASURO wird erst wann anders geliefert also KW01.
Ähm wie ist das mit dem Geld. Hab mit Karte gemacht. Muss ich das überweisen oder ziehen die das vom Konto ab? Ists erste mal, dass ich bei BigC bestell.
Cyborg666
20.12.2004, 18:19
Ich dachte eigentlich mehr an einen Ball in der Größe eines TT-Balles oder
sogar kleiner.
Waswäre mit einem Schallsensor ?
Der ball müßte dann ständig ein piepen oder so abgeben.
Es soll ja die einfachste Lösung sein, da der Robby völlig autonom bleiben soll.
Das mit dem Funk ist auch gut.
Aber ich glaube, ich werde erst mit einem leuchtenden Ball probieren. Das ist, glaube ich , die einfachste Lösung.
Mal schauen, ich freue mich schon...
Gruß
Jens
Das steht auf der Rechnung,
Gruß
Torsten
Sorry, zu spät gesehen, daß da noch ein Beitrg daziwschen war, bezog sich auf die Frage der Bezahlung beim großen Zeh
Also schau mal, was ich im Fussball mit em Azuro (https://www.roboternetz.de/phpBB2/viewtopic.php?t=5395) Thread geposted habe.
Waswäre mit einem Schallsensor ?
Der ball müßte dann ständig ein piepen oder so abgeben.
Warum willst du es denn unbedingt schwerer machen, als nötig?
Bei Schall hast du einige Probleme:
1. Du hast sehr viele Nebengeräusche, und musst alleine schon das richtige Signal rausfiltern.
2. Du hast Echos, und zwar jede Menge, außerdem kannst du nicht davon ausgehen, dass der Ball den Schall gleichmäßig (kugelförmig) in jede Richtung versendet, was dazuführen kannst, das du den Ton garnicht auf einem direktem Weg empfangen kannst, sondern weil der Lautsprechern des Balls gerade in eine andere Richtung zeigt, nur das Echo einer Bande, was dann zu einer Fehlinformation führt.
3. Außerdem bräuchtest du so eine Art Richtmikrofon, oder müstest die Laufzeitdifferenz zwischen 2 Mikrofonen berechnen (Eigentlich bräuchtest du drei Mikrofone, da du mit 2en nicht weißt, ob der Ball vor oder hinter dir liegt).
Wenn du das ganze mit Infrarot machst, könntest du mehrere Infarotsensoren um den Roboter anordnen, so dass du immer die Richtung, in der der Ball liegt, kennst.
Soll nicht böse gemeint sein, aber ich denke, dass man sich damit nur viel Arbeit macht.
MFG Moritz
Warum willst du es denn unbedingt schwerer machen, als nötig?
Stimmt, eine Schallortung zum Ballfinden fände ich wirklich zu aufwändig. Habe eine Diplomarbeit zu dem Thema geschrieben (also Schallortung, aber nicht zum Fussballspielen) und glaube auch nicht, dass sich das dafür lohnt.
Aufgrund der Ergebnisse eines Versuches, bei dem zwei ASUROs sich gegenseitig über optische Ortung verfolgen können, kann ich den Hinweis geben, dass wenn der Ball mit 10kHz oder weniger blinkt und auch keine der Oberwellen des Rechtecks (also 3-fache, 5-fache, 7-fache usw. Freuenz) in die Nähe von 36kHz kommen, funktioniert sogar die infrarote Datenübertragung noch einigermaßen.
Zum Rundum-Empfang kann man vier Fotodioden mit Tageslichtfilter nehmen, die einen Halbwinkel von ca. 60° haben, also bei 90° die Empfindlichkeit auf null absinkt. Verrechnet man die Signale durch eine geschickte analoge Schaltung passend, kommt man mit zwei Wandlereingängen aus, muss nur noch den Arcustangens der beiden Werte bilden und bekommt die Richtung des Balls.
Der Dynamikbereich der 10-Bit Wandler reicht so aber nur für etwas mehr als einen Meter. Ggf. kann man noch einen Port zum Hochschalten der Signalverstärkung nehmen.
CU, Robin
Ja, das klingt geschickt, willst du trotzdem mal ne Skizze machen?
Wenn ich das richtig verstehe, dann willst du über die Intensität der Einstahlung bestimmen, wie weit der BAll weg ist, bzw. ob er vor einem Sensor liegt, oder von der Seite einstrahlt. dazu nutzt du immer den Vergleich mehrer Fotodioden. Aber ich schätze, dass die Intensität der Strahlung vor Allem auch davon abhängt, ob die Dioden des Balles jetzt gerade gegen den Boden strahlen, oder direkt in Richtung des Roboters...
Vielleicht könnte man auch die Fotodioden in ein Fotofilmdose mit einem Schlitz (senkrecht) stecken, so dass er, wenn er in einem bestimmten Winkelbereich ist, anschlät, macht man das mit merheren, krigt man die Richtung auch raus, natürlich nciht so genau...
MFG moritz
MFG Moritz
Sehe Bild von die offiecelle Infra Rot BALL für ROBOCUP.
Ball Durchmesser etwa 7 cm.
Etwa 20 St. IR LED Rundum.
Lieferbahr ab Januar bei Conrad.
Sehe auch die PDF file mit weitere wetbewerp info.
Lieferbahr ab Januar bei Conrad
Weitere info und links;
- Deutsches Nationalkomitee: www.robocup.de
- Wettkaempfe RoboCup German Open (jedes Jahr im Fruehjahr):
www.robocup-german-open.de
Speziell zu den Junior-Wettbewerben gibt es weitere Hilfestellung bei
"The Cool Science Institute" in Ulm: www.tcsi.de
Mfg,
MP
Cyborg666
21.12.2004, 18:27
Ich hatte eigentlich folgenden Gedanken:
Ich habe mal gelesen, wie der CT-robot ( etwa so aufgebaut wie der Asuro) einem Licht folgt, indem einfach die Photodioden ( über den Controller )
mit den Motoren gekoppelt waren.
wenn also der Lichteinfall auf beiden Photodioden gleich ist,
fährt er geradeaus und aufs Licht ( den Ball ) zu , ansonsten macht er
eine entsprechene Kurve.
Wenn der Robby kein Lichtsignal empfängt, soll er eine einfach eine langsame Drehung um sich selbst machen und so praktisch nach dem Ball scannen.
Der Infrarotball sieht cool aus , gute Idee.
Gruß
Jens
Heute sind die ersten Teile meiner Bestellung von BigC gekommen aber keiner war zuhause, also sind die beia Post und morgen früh machen die erst um 9 Uhr auf und da binsch ned da und ich hab lange Schule. Vllt. kommt meine Mutter da vorbei.
@Cyborg:
Klar, das wäre einfach, aber Fotodioden nur so, und ein Leuchtender Ball, das hat keinen Sinn, weil:
1. Zu viel Umgebugslicht, der Ball müsste sehr hell sein.
2. Wie soll der Roboter erkenne, ob der Ball jetzt nur weit weg ist, und es deswegen etwas dunkel ist, oder er gerade in die falsche Richtung guckt.
Aber der Infrarotball verfolgt ja das gleiche Prinzip, nur, dass man die Infrarotsignale besser vom Restlicht trennen kann, z.b. auch durch kodierung des Signals.
MFG Moritz
Cyborg666
21.12.2004, 22:27
Das mit dem Umgebungslicht ist schon klar, deshalb müßte man das Licht
insgesamt natürlich begreznen ( halbdunkel ). Um erste Erfolge zu erzielen, würde mir das anfangs reichen.
Das schöne ist ja, das man es immer weiter verbessern und optimieren kann. Es gibt mit Sicherheit noch eine Menge andere Probleme zu lösen.
Archis Lösung klingt mir sehr interessant, vor allem Dingen mit den 4 Dioden.
Gruß
Jens
Ich glaub, es wäre ganz gut, wenn wir uns bei dem Thema Fußball und Asuro mal auf einen Thread einigen. da es in diesem auch um andere Dinge bezüglich des Asuros geht, schlage ich vor, die Diskussion in den Fussball mit em Azuro (https://www.roboternetz.de/phpBB2/viewtopic.php?t=5395)-Thread zu verschieben. Trotz des Azuro-Rechtschreibfehlers ;-)
Ich hoffe ihr seit damit einverstanden, es soll nur helfen das Durcheinander von Fragen und Antworten etwas zu entzerren.
Außerdem haben wie im Fußball-Thread schon neue Gedanken ins Auge gefasst... autsch ;-)
MFG Moritz
Cyborg666
22.12.2004, 01:23
Bin der gleichen Meinung.
Sorry, aber ich kannte mich im Forum noch nicht so gut aus und hatte Angst, daß niemand reagiert wenn es nicht unter den Erfahungsberichten
mit dem Asuro steht.
...bezüglich des Asuros geht, schlage ich vor, die Diskussion in den Fussball mit em Azuro (https://www.roboternetz.de/phpBB2/viewtopic.php?t=5395)-Thread zu verschieben. Trotz des Azuro-Rechtschreibfehlers ;-)
...
MFG Moritz
Wenn das nur so einfach wäre ;-(
So einfach ist das mit dem Verschieben leider nicht, aber ich versuchs...
Gruß, Sonic
Muss ja nicht verschoben werden, ich dachte nur, da es hier ja mitlerweile eben um den Fortschritt und die Probleme einzelner Personen geht und auch um die Netwicklung und den Ausbau des Roboters, sowie die Probgrammierung, muss es ja nciht noch um Fußball gehen.
Wo wir grad beim Thema sind, gibt es schon Neuigkeiten bezüglich der Benutzung von der Erweiterungsplatine.
Also ich bin jetzt dabei 3 INfrarotsensore anzuschließen, dazu fehlt nur noch der Oszilator, aber hatte noch keine Zeit zur löten.
MFG Moritz
Naja, würde vorschlagen das zum Thema "Asuro und Fussball" im entsprechenden Thread weiterdiskutiert wird.
Weil ich den Thread nicht trennen kann, da zwischen den einzelnen Fussballposts auch noch andere Posts sind.
Sonst muss ich übel hin und herschieben was wahrscheinlich Verwirrung stiften wird...
Gruß, Sonic
zimmi007
22.12.2004, 15:56
Endlich geschafft!
Mein ASURO fährt.
Erstmal nur auf der schwarzen Linie aber er fährt.
Ich hatte erst Probleme bei der Übertragung und bin fast am verzweifeln gewesen, aber dank Forum habe ich den Fehler gefunden (Leuchtstoffröhre). Dunkel wars und es wurde Infarot.
Ich bekomme nur gelegentlich "t" bei der Übertragung, aber es funzt hinterher alles.
Gruß Heiko
zimmi007
23.12.2004, 11:30
Mir persönlich sagt die Variante mit dem halben Tischtennisball nicht so zu und deshalb hab ich, wie schon andere vor mir, etwas eigenes entwickelt.
http://www.sachsen-zentral.info/bot-radV.jpg
Plastekugel mit Kuperdraht, Gewinde drauf und angeschraubt, fertig und wechselbar.
Heiko
Also irgendwie scheinen ASURO-User sich nicht zu trauen neue Threads aufzumachen ;-) Keine Sorge die Buttons beißen nicht, aber wenn alles zum Thema ASURO in einen Thread gepackt wird steigt ja irgendwann keiner mehhr durch.
Ich hab mir mal die Freiheit genommen und einzelne Themen in extra Threads nach "Elektronik" und "Allgemeines zum..." verschoben.
Gruß, Sonic
Mal so ne Frage. Haben eure Scripts (ua. ./src/FirstTry) ohne weiteres funkioniert zu "maken"? Da mir noch Widerstand fehlt binsch schonmal bisl im Code am rumgucken und lernen ;)
Nachdem ich die Umgenung erst auf ein anderes Laufwerk geladen hatte, das Makefile aber sicher war, daß seine Dateien auf C stehen, habe ich noch mal von vorne angefangen.
Ich habe dann einfach neue Programme per Editor in die Datei Test kopiert und unter dem Namen Test compliliert. So wurden die Make-Parameter neutralisiert und es lief glatt.
Manfred
Also ich kan ohne Probleme Programme mit dem PRogrammers-Notepad erstellen und sie auch umwandeln, nur muss man beim speichern aufpassen, dass man die Endung ".c" anfügt, weil er das bei mir nicht automatisch macht.
MFG Moritz
Hallo
Ich hab eine Frage zur Infrarot-Übertragung am ASURO:
Die Sende-Diode ist ja zwischen Pin 17 und TXD. Mit bascom kann man einfach Print benutzen um Daten zu senden, die werden auch empfangen. Was macht Pin 17 während dem Sendevorgang? Denn wenn ich bei meinem mega32 eine IR-Diode von TXD nach + anschließe blinkt diese zwar während dem Senden auf aber es wird nichts empfangen ???
Weiß vielleicht einer Rat?
Gruß Tobias
Hallo,
Was macht Pin 17 während dem Sendevorgang?
An Pin17 liegen die 36KHz des Timers an.
Das ist praktisch das Trägersignal,
dem das USART-TXD-Signal aufmoduliert wird. (AND)
Der SFH5110-36 auf der Gegenseite ist nur für diese 36KHz-Signale "empfänglich".
Deshalb funktioniert das direkte Ansteuern der LED von TXD nicht.
Gruß Jan
Hab ichs mir doch gedacht ...
Jetzt muss ich nur noch rausfinden wie ich 36KHz aus dem Timer krieg.
Hallo,
36KHz aus dem Timer
Den Timer auf freilaufend mit 72kHz programmieren,
und den Ausgang auf "Toggle" stellen.
Gruß Jan
Öhm wie kann es kommen, dass mein ASURO nie wirklich geradeaus fährt, sondern immer so ein wenig nach rechts?
Und was macht die Funktion Sleep()? Erkenne darin kein Nutzen :!
Und wie nutze ich SerRead()?
bergowitch
03.01.2005, 06:32
Naja, das hägt von der allgemeienen Materialstreuung und vor allem von der Lauffreiheit der Zahnräder ab. Du kannst das aber ausgleichen indem du die Odometriedaten auswertest und die Geschwindigkeit der Motoren einzeln veränderst.
Lass aber am Besten die beiden großen Zahnräder mit Rad ohne Motor nochmal frei laufen. Wenn da der Unterschied schon groß ist würde ich die Achsen nochmal neu einlöten.
Gruß
Stefan
Oh nein, ned die Achen nochmal -.- Ich find das ist der größte Mist überhaupt mit den Achsen.
Aso an die AREXX Leute:
In der Bauanleitung steht bei der Bestückung der Hauptplatine bei R11 folgendes:
R11: 100 Ohm, 5% (braun, schwarz, schwarz, gold)
Naja die Werte stimmen ja aber die Kodierung nicht. Da muss normalerweise so sein:
braun-schwarz-braun-gold
Ich saß da nen paar Tage dran bis ich das, ohne nem Messgerät herausbekommen hab, denn ich hab nach der Kodierung geguckt und nichts gefunden!
zimmi007
04.01.2005, 20:59
\:D/ ja, ja Die Unterschiede in der Beschreibung und der Wirklichkeit ist schon bitter.
Ich hatte in meiner Packung schon eine korrektur bei liegen.
Ich bin von Natur aus ein Skeptischer Bastler und messe grundsätzlich nach.
Sonst ging der Aufbau echt gut, nur die Motorbefestigung muss ich noch mal ändern (das gefällt mir noch nicht).
Heiko
Jau die ist echt ein wenig komisch aber ich werd mir morgen mal, wenn ich zu meiner Ex fahr Sekundenkleber irgendwo holen damit ich die Motoren endlich mal befestigen kann. Normalerweise müsste ich noch wo Sekundenkleber haben aber find den nicht. Habe lediglich so Modellbaukleber aber ob der so dolle ist :!
Also ich hab ganz normalen UHU genommen. Bis jetzt hält das ganz gut...
Gruß, Sonic
Naja, das hägt von der allgemeienen Materialstreuung und vor allem von der Lauffreiheit der Zahnräder ab. Du kannst das aber ausgleichen indem du die Odometriedaten auswertest und die Geschwindigkeit der Motoren einzeln veränderst.
Ja, wie man das am besten macht, darüber denke ich auch schon die ganze Zeit nach. Allerdings weiß ich nicht wirklich wie ich da anfangen soll.
Dachte an sowas:
Motorspeed(x-korrektor1; x-Korrektur2)
- Räder auch maximale Geschwindigkeit
- Timer zum messen der Zeit starten
- Odometrie auslesen, warten bis bestimmter Wert unter/überschritten ist
- Zeit für eine Teilumdrehung aus dem Timer entnehmen
- Das geliche Verfahren bei dem anderen Rad
- Bestimmen welches Rad langsamer dreht
- Schleife:
+ Schnelles Rad um eins langsamer (Abweichung in Variable schreiben)
+ Geschwindigkeit messen
+ Wenn Abweichung unter einem bestimmten Wert, schleiche Beenden sonst schliefe neu.
Das ganze ist ziemlich aufwendig und erfordert vermutlich viele Resourcen, aber ich wüßte im moment nicht, wie man es anders lösen sollte. Um eine Initialisierungsphase kommt man da wohl nicht rum.
MFG Moritz
bergowitch
05.01.2005, 09:42
Ich will mir ein Testprogramm schreiben und mal schaun wie unterschiedlich die Räder drehen und ob der Fehler reproduzierbar ist.
Wenn ja kann man auch die Fehlerfunktion bestimmen und den Fehler korrigieren ohne jedes mal die odometrie zu benutzen.
Habe aber leider im Moment nicht die Zeit dazu melde mich aber wenn ich Ergebnisse habe.
Gruß
Stefan
Hm, ja das ist klar, aber ich finde die nutzung der odometrie irgendwie sehr aufwendig. Ich wollte sie ja längerfristig auch zur Wegerfassung und Positionsbestimmung nutzen, aber das Problem ist: Da man den ADC ständig verfolgen muss ist kein anderes Programm nebenher abspielbar, oder nur ein sehr minimiertes. Es wäre irgendwie besser, wenn man da einen Interrupt auslösen könnte, aber das ist bei dem ADC nicht möglich, da sich der Wert ständig ändert.
Viellieicht kennt ja jemand ne einfacherer Lösung als die oben von mir vorgeschlagene.
MFg Moritz
Ja, wie man das am besten macht, darüber denke ich auch schon die ganze Zeit nach. Allerdings weiß ich nicht wirklich wie ich da anfangen soll.
Dachte an sowas:
[...]
Das ganze ist ziemlich aufwendig und erfordert vermutlich viele Resourcen, aber ich wüßte im moment nicht, wie man es anders lösen sollte. Um eine Initialisierungsphase kommt man da wohl nicht rum.
Zu diesem Problem hatte ein Praktikant von mir eine saugeile Idee:
I-Regler - funktioniert folgendermaßen:
Man benötigt eine (signed) Korrekturvariable - im weiteren I genannt. Während einer Endlosschleife stellt man die Motorgeschwindigkeit auf MotorSpeed(Grundgeschw+I, Grundgeschw-I)
Außerdem nutzt man die Odometriesensoren. Findet beim linken Sensor ein Helligkeitswechsel statt (natürlich etwas Hysterese verwenden, sonst verzählt man sich) I um eins erniedrigen, für einen Wechsel beim rechten um eins erhöhen.
Nach kurzer Banane fährt ASURO sehr gut geradeaus. Ggf. kann man sich den Wert im EEPROM auch noch merken...
Der ADC kann übringens nach einer Wandlung automatisch einen Interrupt auslösen, sodass man das Problem auch im Hintergrund laufen lassen kann.
CU, Robin
Das ist in der Tat eine gute Idee! Allerdings muss man dann auch irgendwann ein Ende finden, vielleicht lässt man die Schlaufe 20 mal durchlaufen oder so.
Der ADC kann übringens nach einer Wandlung automatisch einen Interrupt auslösen, sodass man das Problem auch im Hintergrund laufen lassen kann.
Löst der Interrupt nicht aus, egal an welchem ADC eine Wandlung vorgenommen wurde? Das heißt auch die Linienverfolgung würde einen Interrupt auslösen, oder?
Danke für den Tip mit der Geschwindigkeitsreglung!
MFG Moritz
Das ist in der Tat eine gute Idee! Allerdings muss man dann auch irgendwann ein Ende finden, vielleicht lässt man die Schlaufe 20 mal durchlaufen oder so.
Eine BEschränkung der Durchläufe braucht man nicht. Irgendwann sind die Motoren so ausgeregelt, dass sich der Korrekturwert nicht mehr ändert. Lässt man den Regler weiterlaufen, kann der Roboter auch noch auf sich ändernde Umgebungsbedingungen reagieren.
Löst der Interrupt nicht aus, egal an welchem ADC eine Wandlung vorgenommen wurde? Das heißt auch die Linienverfolgung würde einen Interrupt auslösen, oder?
Der AD-Wandler kann so konfiguriert werden, dass er nach einer Wandlung (egal auf welchem Eingang der Multiplexer steht) einen Interrupt auslöst. Das muss man aber selbst schreiben, die vorgefertigten Funktionen können das nicht (wäre ja auch viel zu kompliziert für den Anfang). Im Interrupt muss dann entschieden werden, welcher Wert gerade gewandelt wurde und der dazu passende Programmteil ausgeführt werden.
Für die Interruptprogrammierung spickt man am besten bei der Sleep-Funktion und im Datenblatt des ATmega8 (*wühl*), damit man weiß, wo welche Bits gesetzt werden müssen um den gewünschten Effekt auszulösen.
Da liegen wohl die Vorteile der C-Programmierung ;-)
Ich hab mich mit den Interrupt in C mal beschäftigt, es hat, wenn man einmal den Durchblick hat, echt viele Vorteile durch die direkte Ansprechung der Register. Man müsste den ADC nur auf FREE stellen und dann den entsprechenden Interrupt aktivieren.
NUR WIE GEHT DAS IN BASCOM?
Lässt man den Regler weiterlaufen, kann der Roboter auch noch auf sich ändernde Umgebungsbedingungen reagieren.
Das stimmt wohl, aber welche Änderungen könnten einen Einfluss darauf haben? Eine Gewichtsumverteilung auf dem Roboter z.B.
Allerdings ist auch zu beachten, dass das "Korrekturprogramm" bei Kurvenfahrten abgeschaltet werden muss, während es z.B. bei einer Drehung um die eigene Achse weiterlaufen kann.
IM Übrigen ist es wohl sinnvoll einen möglichst hoch aufgelösten PWM zu verwenden um die Korrekturen feiner zu machen.
MFG Moritz
Wow hab grad nen Flash ohne "c", "t" oder sonstwas hinbekommen :D nur überall flashed :D
// Edit:
Was gibt mir OdometrieData eigentlich? Gibt mir das die Umdrehungen pro Sekunden aus oder was wird mir da ausgegeben?
Schön wärs!
Darüber Diskutiere ich grad mit Archi, OdometrieData liefert nur den ADC-Wert an den Rädern, also wie hell der gerade beleuchtete Teil der Scheibe ist. Wie man daraus sinnvoll Informationen gewinnt und die REsourcen sparend nutzt ist die große Frage.
MFG Moritz
Die 20 Seiten, die trotz Leerprogramm "geflashed" werden, dürften von der libc herühren, die ja die Laufzeitumgebung für das C-Programm bereitstellt. Da sind Funktionen für Aritmetik, Speicherverwaltung und IO drin. Genaueres findet Ihr im Dokument "AVRInstructionSet.pdf", das bei den Datenblättern der aktuellen Asuro Distribution dabei ist.
Grüße,
Sascha
sbader01
06.01.2005, 18:51
Öhm wie kann es kommen, dass mein ASURO nie wirklich geradeaus fährt, sondern immer so ein wenig nach rechts?
Und was macht die Funktion Sleep()? Erkenne darin kein Nutzen :!
Und wie nutze ich SerRead()?
Meiner Erfahrung nach kann es das allein schon durch ein zu fest "angezogenes" Rad kommen. Einfach mal schauen welches der Räder langsamer läuft und dann auf der Seite den Stellring lockern und 1/4 Milimeter nach außen schieben (und dann natürlich wieder fest ziehen).
Grüße,
Sascha
Hö hatte ich vorhin garned abgesendet? -.-
Naja also das mit dem Stellring hat geklappt. Das rechte Rad hatte zwar ein wenig Platz, es war scheinbar aber ein wenig zu wenig. Naja nun gehts auf jedenfall besser.
Wäre es eigentlich möglich den Roboter über den PC zu steuern? Also vllt. könnte man da SerRead() nutzen. Wobei dann bestimmt die Verbindung schwer wird zu halten, denn man sieht ja schon, dass "Mist" ankommt, wenn der RS232-IR-Transceiver bisl weiter weg ist. Aber wäre das möglich? (wüsste sonst nicht, wofür SerRead() zu nutzen wäre.)
Hallo Freq.9
Du hast recht, theoretisch sollte das gehen, es ist soger bei den Demos ein Quellcode dabei, wie es gehen sollte. Interessanter fände ich aber, wenn man das benutzt, um Asuro nur einen befehl zu geben, der dann aus einer Art Menue auf dem Robot ein Programmteil auswählt, das dann ausgeführt wird.
Gruß
Torsten
sbader01
07.01.2005, 07:08
Hallo Freq.9
Du hast recht, theoretisch sollte das gehen, es ist soger bei den Demos ein Quellcode dabei, wie es gehen sollte. Interessanter fände ich aber, wenn man das benutzt, um Asuro nur einen befehl zu geben, der dann aus einer Art Menue auf dem Robot ein Programmteil auswählt, das dann ausgeführt wird.
Gruß
TorstenNa, da kommt einem doch gleich der Gedanke die Signale einer handelsüblichen IR-Fernbedienung auszuwerten. Muss mal schauen ob das irgendwie geht. Sicher nich über SerRead() aber evtl. durch zyklisches Abfragen der Schnittstellenbits. Kann evtl. über Interrupts gelöst werden. Aber das ist schon etwas aufwändiger
Grüße,
Sascha
Hi,
da dieser Thread langsam zu lang wird und eigentlich nur noch speziellere Fragen kommen die nicht zu "ASURO allgemein" passen mach ich diesen Thread mal zu.
Ich glaube nicht das jemand der den Thread nicht von Anfang an verfolgt gewillt ist 15 Seiten zu lesen ;-)
Gruß, Sonic
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.