Hier noch einmal die Videos zum Verständnis!
http://www.youtube.com/watch?v=Vy5ps...57F2-yk6BgOc3H
http://www.youtube.com/watch?v=tOEeS...57F2-yk6BgOc3H
Soll noch spektakulärer werden, sind nur die Anfänge!
Hier noch einmal die Videos zum Verständnis!
http://www.youtube.com/watch?v=Vy5ps...57F2-yk6BgOc3H
http://www.youtube.com/watch?v=tOEeS...57F2-yk6BgOc3H
Soll noch spektakulärer werden, sind nur die Anfänge!
Hallo thund3r und alle die mir bei meinem Projekt geholfen haben.
Ich wollte hiermit euch allen noch mal danken, die mir bei meinem ASURO-Projekt geholfen haben, hatte heute meine Abschlusspräsentation der FOS über den ASURO gehalten und eine "1" bekommen.
Dank eurer Hilfe hatte ich endlich Erfolg mit dem Greifer!
Nun hätte ich noch mal eine Frage, will nicht extra einen neuen Thread öffnen:
Ich kam heute nicht von dem ASURO weg und wollte deshalb das "nachprogrammieren" --> http://www.youtube.com/watch?v=Me5blu9WzzI
Jetzt ist meine Frage, wie kann ich die Linienfolge für eine bestimmte Strecke ausführen?
Ich will den Becher (anstatt ihn runterzuschmeißen) dann stehen lassen, herum fahren und ihn wieder zurückfahren.
Hallo
Freut mich das du mit den Projekten erfolgreich warst! weiter so!
Ich denk mal das hier im Programm beim druecken der Taster (wenn der Asuro gegn den Becher faehrt)
oder bei einem anderen Abbruchsignal (IR Signal, durch Odometrie gemessene Distanz o.ae.) der Linienfolge-part abgebrochen wird und in einen andere Handlungsroutine gewechselt wird.
So oder so aehnlich kann man das auf jedenfall realisieren.
Gruss Thund3r
Dein Gott sei mein Zeuge!
ja, mein Problem ist nur noch, was kann ich in die while-Schleife für die Linienfolge schreiben. Sleep geht ja ned rein und wie kann ich überhaupt eine bestimmte Strecke fahren. Kann da mir einer mal einen Tipp geben, wie überhaupt eine bestimmte Strecke gefahren werden kann, den Rest kann ich mir vielleicht durch Ausprobieren erschließen!
Hier schon einmal mein bisheriges Programm, bei der zweiten Linienfolge will ich ihm dann eine bestimmte Strecke auf der Linie fahren lassen!
test.c
DANKE!!!
P.S. Der ASURO macht irgendwie süchtig, wollte eigentlich den ASURO nach meinem Abschlussbericht erst einmal ruhen lassen, aber youtube und die ganzen ASURO-Videos geben immer neue Ideen und ich versuche das mit meinem minimalen Programmierwissen nachzuspielen!
hallo
also mir geht es ähnlich wie powder999 =D ich mach den asuro auch als schulprojekt un das zählt dann ins abi rein. meine idee für das eigene projekt war ebenfalls ein asuro mit greifer. ich hab in youtube einen gesehen, der mit einem servo einen gegenstand hochgehoben und gegriffen hat das hab ich jetzt mal nachgebaut. mechanik funktioniert aber mein problem ist das programm ich bin gerade dabei die frequenz von meinem servo rauszufinden aber ich krieg sie nicht raus xD ich hab einen modelcraft Y-3009 Mini Servo vom Conrad. wie ist das mit der frequenz sind das immer 10er schritte? weil so hab ichs getestet also
BackLED(OFF,ON);
Sleep(10);-->Sleep(20);-->Sleep(30);-->usw
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
aber mitlerweile bin ich bei 320 un es tut sich immernoch nichts was mach ich falsch?
Hallo
Je nach Servotyp liegt die Mitte des Drehbereichs bei Impulslängen von ca. 1ms bis 1,5ms Dauer (ms bedeutet Millisekunden oder 1/1000 Sekunde). Der Impuls sollte alle 20ms wiederholt werden.
In der orginalen asuro-Library von der CD dauert ein Sleep(1) genau 1/72000 Sekunde, Sleep(72) dauert entsprechend eine 1ms. (Bei den neueren Libs wird ein 36kHz-Timer verwendet, deshalb dauert hier Sleep(36) eine Millisekunde.) Für 20ms Impulswiederholung müßte man Sleep(20*72-Impulslänge) warten. Da Sleep() aber einen 8bit-Parameter benötigt, muss man die Impulspause auf mehrere Aufrufe von Sleep verteilen. 20*72 wären 1440 Sleep(1)-Aufrufe, davon muss man noch die Impulsdauer abziehen und den Rest auf 255er Sleep()-Aufrufe verteilen:
(ungetestet)Code:#include "asuro.h" #define libversion 72 // 72kHz oder 36kHz Library int Impulspause; char Servoimpuls = libversion; // 72 (oder 36) für eine Millisekunde (Servomitte?) int main(void) { Init(); while(1) { BackLED(OFF,ON); // Impulsstart Sleep(Servoimpuls); BackLED(OFF,OFF); // Impulsende Impulspause=libversion*20-Servoimpuls; // Anfang Pause; Dauer berechnen while(Impulspause > 255) // 255er-Schritte { Sleep(255); Impulspause -= 255; } Sleep(Impulspause); // Restpause } return(0); }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
erstmal danke also ich hab das programm getestet un es funktioniert auch aber mein servo bewegt sich nur ca ein drittel. deshalb geht mein greifer auch nicht komplett zu danach hör ich nur noch ein zahnrädchen das vibriert und man kann es auch leicht erkennen wenn man genauer hinsieht aber der servo bewegt sich nicht weiter
Lesezeichen