PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cny70 Reaktionszeit?



hackgreti
23.07.2007, 09:52
Hallo!

Wie viele Sekunden (millisekunden) braucht ein Roboter (mit cny´s) wenn er eine Linie erkennt, bis er den Motor umschaltet oder ausschaltet?

Hab überall gesucht aber keine eindeutige Antwort gefunden.

(16Mhz Prozessorleistung)

Florian
23.07.2007, 10:02
Hallo hackgreti,
wie lange der "Roboter" braucht hängt von der Art des Controllers, seinem Programm und vielem mehr ab.
Kannst Du uns bitte ein wenig ausführlicher Deine Vorstellungen schildern?

Aber eigentlich spielt der CNY70 keine große Rolle, er reagiert sehr flink auf Lichtänderungen ...

Viele Grüße
Florian

hackgreti
23.07.2007, 11:28
Prozessor:
atmega32 (16mhz)
Die Sensoren befinden sich vorne am Roboter und die Motoren hinten.
cny70 werden mit Potis eingestellt, damit es auf jeden untergrund angewendet werden kann.
Programmieren tue ich in "C" (das programm ist eine einfache schleife die nachsieht ob derjenige Port auf "high" ist oder nicht; mehr macht das programm nicht, außer danach den Roboter zu stoppen; Wartezeit ist zwischen der Abfrage keine)

Ich will nämlich die Erkennung etwas verzögern und je nach Akkuspannung anpassen, dass sich der Roboter immer gleich bewegt - egal wie voll der Akku noch ist. (Grundlage ist der Abstand zwischen den Sensoren und den Motoren)


Ich ich würde die genaue Zeit von der Linienerkennung bis zum Verarbeitungszeitpunkt im Prozessor benötigen

Vielen Dank für alle Antworten

Florian
23.07.2007, 12:20
Hallo hackgreti,
der Mikrocontroller benötigt für die Hand voll Zeilen C-Code schätzungsweise maximal 10 Takte - da ich aber Deinen Code nicht vor Augen habe, kann ich das nicht genau einschätzen.

Gehen wir mal von den 10 Takten aus:
Demnach ist das eine Ausführungsfrequenz von 16.000.000Hz/10T = 1.600.000Hz und das sind 1,6MHz.
Die Periodendauer, also die Zeit, die der Mikrocontroller zum Verarbeiten braucht, sind 1s/16.000.000Hz * 10T = 0,000.000.625s, sprich 625ns (Nanosekunden) bzw. 0,625µs (Mikrosekunden).
Die Verarbeitungszeit im Mikrocontroller ist als extrem klein!!!


Die Sensoren befinden sich vorne am Roboter und die Motoren hinten.
...
Ich ich würde die genaue Zeit von der Linienerkennung bis zum Verarbeitungszeitpunkt im Prozessor benötigenDie räumliche Trennung kann man bei diesen absolut kurzen Distanzen einfach vernachlässigen, schon gar in einer solchen "einfachen" Anwendung.

Deine CNY70 liefern also am Pin jeweils einen High- oder Low-Pegel.
Der Mikrocontroller reagiert einfach darauf und schaltet die Motoren.

Soweit verstehe ich Dein Programm, aber was Du dann versuchst mir zu erklären ist mir leider noch ein Rätsel! ;o)
Am Besten postest Du mal Deinen Code und nochmal eine etwas ausführlichere Erklärung von Anfang an! :o)

Viele Grüße
Florian

hackgreti
23.07.2007, 13:21
Wenn die Sensoren (vorne) eine Kurve erkennen und der avr schaltet die Motoren auf "Kurve", dann geschieht das zu früh und der Roboter muss wieder korriegieren. das wollte ich machen.

Aber meine eigentliche Frage ist jetzt sowiso beantwortet!

Dankeschön

Florian
23.07.2007, 13:27
Hallo hackgreti,
jetzt verstehe ich die Frage! *g*
Bei der frage kommt es darauf an, wie Dein Roboter aufgebaut ist.
Ist Dein Roboter ein rundes Chassis mit zwei Motoren und Rädern in der Mitte, so ist das automatisch kein Problem, da der Roboter sich um den Kreismittelpunkt dreht, aber das ist halt je nach Chassis anders.

Falls Du noch Fragen hast - schieß los! ;o)

Viele Grüße
Florian

Superhirn
23.07.2007, 21:22
ich würd mal sagen rund 100ms denn die motoren müssen auch noch reagieren dann kommts aufs gewicht des robos drauf an etc.

zum leeren akku: regle per pwm den motor etwas runter und regle ihn wenn der akku leer ist wieder rauf. oder mit encodern eine konstante geschwindigkeit halten. die grundgeschwindigkeit ist dabei immer etwas unter dem möglichen damit du später gleich schnell bist.
und bitte kühlung nicht vergessen bei pwm wurde bei mir mal ein riesen kühlkörper heiß (aber bei vielbelastung der motoren).

am besten bau die weitere cny70 rauf damit du die mitte oder 2 punkte weiter außen noch hast. bzw erkennen kannst ob die linien außen oder innen der sensoren ist.

was hast denn wieder vor zu bauen?

hackgreti
24.07.2007, 08:12
Danke für die Hilfe!

@ Superhirn
Mein neuer Roboter ist so gebaut das er bei der Challenge viele (wenn nicht alle) schlagen kann. Der Aufbau bleibt aber in meinem Team - geheim. Tut mir leid Superhirn.

Superhirn
24.07.2007, 09:10
alle schlagen??? Das wird bei einem Robo unmöglich sein. Im skype erzähl ich dir mal den Grund.

Mac86
24.07.2007, 20:55
Wieso unmoeglich? Kannst du den Grund bitte auch hier mal erlaeutern?

Superhirn
25.07.2007, 18:52
Wieso unmoeglich? Kannst du den Grund bitte auch hier mal erlaeutern?
"Lotto, alles ist möglich".

wir sind auch im real-life freunde. da darf man doch manchmal ein bisschen späße machen :D
aber ich denke das passt nicht in diesem thread.