Hi,
Simon Vötsch schrieb:
> kollege das teil bewegt sich schon..;)
> dachte ich fänd hier in den foren ein paar leute mit denen sich reden
> lässt.. und die vl ein wenig freundlicher sind...
> hab mich da ja anscheinend getäuscht..
> ich mein der Mod Karl heinz Buchegger is ja ganz ok..
> aber leute wie du die überall senf dazugeben nur weils sies besser
> wissen..
> gehen mir tierisch aufn sack:@
PRIMA, so bekommst du bestimmt viele hilfreiche Antworten...
Ein Auto das Autonom fahren kann... man Es gibt in den USA Jährlich so
Wettbewerbe von der Nasa die einnicht schlechtes Preisgeld haben...
Teilweise mit Modellen, teilweise aber auch in 1:1. Wenn du dir da so
sciher bist dann solltet Ihr da vieleicht Mitmachen?
Mehr als einem hellen Streifen (das zitierte Klebeband) zu folgen wird
erkennungsmäßig für euch im sinne einer Autonomen Steuerung nicht drin
sein.
Oder meinst du vielmehr ein Auto das einfach lustig durch die Gegend
fährt, ohne Plan, und nur selbstständig bei einem Hinderniss die
Richtung wechselt bzw. anhält. Das könnte auch für einen Einsteiger in
einem halben Jahr zu schaffen sein. Ist aber nicht das was man unter
"Selbst fahrend" versteht.
Ich habe die Produktangaben zu eurem ADPS9700 nur kurz überflogen. Das
Teil ist ein Näherungssenor mit einem Analogen ind einem Digitalen
Ausgang.
Verstehe ich das richtig, der Digitale Ausgang schaltet ab einer
bestimmen Nähe einfach das Signal um? Kann man am Analogen Ausgang ein
signal Abgreifen das (ab einer bestimmten Entfernung zumindest-
Poportional zur Entfernung ist?)
Ich stimme damit überein, das der Selbstbau der H Brücke Blödsinn ist!
Ihr macht euch das Leben schwer für eine Sache die nicht sein muss. Last
den Antrieb wie er ist und denkt euch was anderes aus was Hardware sein
könnte.
Müsst ihr zum beispiel diese merkwürde Entwicklungsplatine verwenden
oder seid ihr frei in der Wahl? Könnt Ihr nicht eine eigene µC Platine
verwenden. (Evtl. mit einem in Bastlerkreisen gängigeren Prozessor...)
Dann währe das ja schon ein Hardwareaufwand.
Aber zurück zum eigendlichen Thema.
Ich würde insgesamt mindestens sechs, besser acht. (unter besonderen
Umständen sogar 10 sensoren) vorsehen.
An jeder Ecke des Fahrzeugs einen. dazu noch vorne mitte und hinten
mitte.
WEnn es auch vor Treppen halbwegs sicher sein soll dann noch vorne und
hinten je einen der so weit nach unten gerichtet ist das der Bremsweg
noch reichen würde wenn der Boden "verschwindet".
Wenn die IR Sensoren einen Digitalne Schaltausgang haben, dann sind die
ja vom Konzept her mit einem Berührungsschalter zu vergleichen. Dann
würde ich zusehen das ich konzeptionell diese Sensoren als Signalgeber
für die Fahrtrichtung verwende. Die echten Berührungsschalterselber als
"NotSchalter".
Die einfachste Verion des Programmes mit der ihr dann starten solltet
gibt in einer Schleife den Befehl zum Geradeausfahren und fragt
gleichzeitig alle Sensoren in Fahrtrichtung ab, ob ein Schaltsignal
anliegt. Die Bodensensoren müssen zeigen: Objekt NAHE, die
Fahrtrichtungssensoren KEIN OBJEKT. Solange kein Schaltsignal der
Fahrtrichtungssensoren anliegt, die Bodensensoren aber Boden anzeigen
fährt er weiter. Kommt ein Schaltsignal so hält das Gerät an, setzt ein
Stück zurück, schlägt die Lenkung ein und fährt wieder vorwärts. Das
kann wieder eine einfache Schleife sein. Beim Zurückfahren sollte dann
überprüft werden ob einer der beiden Seitensensoren Anschlägt. Schlägt
keiner an fährt das Fahrzeug nach dem erneuten Fahrtrichtungswechsel
nach rechts, schlägt der rechte an, so fährt es nach Links, schlagen
beide an, so fährt es nocheinmal die vorprogrammierte Strecke nach
hinten - mit der selben abfrage.
Wenn dann die Räder eingeschlagen sind und es wieder nach vorne fährt,
dann würde ich das eine vorgegebene Zeit so fahren lassen (am besten
genau für eine 90° Drehung,) dann wieder Lenkung gerade und rücksprung
in die erste Schleife.
Dabei kannst du die Sensoren gruppieren . Dur brauchst ja immer nur die
Sensoren in Fahrtrichtung umschalten. Also entweder die drei
Fahrtrichtungssensoren + einen Bodensensor vorne, oder halt hinten. Dies
kann entweder durch eine logische Zuordnung mit umschaltung der Portim
im µP erfolgen, oder wenn ihr Ports sparen müsst oder das Program
einfacher halten wollt durch einen externen Signalumschalter (zb.
CD4051)
(UPS, wieder möglichen Hardwareaufwand gefunden ;-))
Dieses erste Programm ist aber noch sehr grob.
Im Prinzip lauter Schleifen mit jeder menge "IF Vergleichen".
Ich würde z.B. alle Sensoren so auslegen das diese beim Umschalten einen
Interrupt auslösen. Falls der µC nicht genügend Interruptquellen hat
oder ihr es ganz einfach halten wollt und nur eine Interruptquelle
bearbeiten wollt, dann könnt ihr das ja mit etwas diskreter Logik
auskodieren.
(was wollte ich noch sagen? Hardwareaufwand!)
Das macht das Programm übersichtlicher und flexibler.
Wenn es noch schöner sein soll, und der Analogausgang der ICs soetwas
hergibt, dann könntet ihr auch eine Entfernungsmessung machen. Also die
Werte zusätzlich zu den digitalen Absolutwerten (die ich als letzte
Bremsschwelle wählen würde. Maximale Fahrgeschwindigkeit so das dies
noch passt) mittels AD Wandler die Entfernung auswerten. Das ihr ja nur
relative Angaben braucht ist das recht einfach und erfordert wenig
Rechenleistung. Simple Vergleiche. Falls der Prozessor nicht genug AD
Eingänge hat ODER ihr das nicht im Proz machen wollt, kann das auch mit
externen Wandlern geschehen. -> möglicher Hardwareaufwand!
Sobald die Analogwerte eine Annäherung wahrnehmen verringert sich die
Geschwindigkeit bis zum erreichen der Schaltschwelle für den
Rückwärtsgang. Falls einer der Seitlichen Sensoren zuerst ein Hinderniss
wahrnimmt kann man im Programm auch annehmen das sich das Fahrzeug im
Winkel != 90° auf die Wand zubewegt und leicht, abhängig von der
Entfernungsänderung auch stärker, einlenken.
Das ganze lässt sich dann noch beliebig verfeinern.
Und dann könnte man ja auch noch zusätzliche Gimmiks einbauen. So ist es
ja durchaus möglich das jenes Hinderniss ein beweliches ist was selbst
nicht augepasst hat, das aber verschwindet wenn es aufmerksamm wird.
Eine nette Hupe, die aktiviert wird sobald das Fahrzeug ein Hinderniss
erkennt das es zum Umkehren aufforder währe doch eine lustige Einlage
und HARDWAREAUFWAND ;-) Also statt: Erkennen -Stehenbleiben -
Rückwärtsfahren -> Erkennen -> eine Sekunde warten -> zweimal kurz hupen
-> zwei Sekunden warten-> bleibt das Hinderniss rückwärtsfahren.
Technisch nicht weiter schwer, nur ein Unterprogramm +Tongenerator.
Den alten Fernsteuerempfänger würde ich auf jeden Fall drin lassen und
einen Kanal als Notstop auf dem µC legen. Nicht das euer Auto bei den
ersten Tests mit Fullspeed gegen die Wand donner und dabei beschädigt
wird. Oder die Treppe runtersaust.
Als allererstes würde ich aber das Auto so lassen und erst einmal die
Sensoren + µC zusätzlich einbauen. Dann anfangen Anzeigen zu lassen
(LED) wan ein Sensor ausgibt, aber noch mit der Fernbedienung fahren,
daraus dann die Maximalgeschwindigkeiten und notwendigen REaktionszeiten
ermitteln. Dann weitergehen und den µC nur den Notstopp übernehmen
lassen.
Dann Notstop und Rückwärtsfahren (während die Fernbedienung immer noch
VORNE sendet, erst dann die Fernsteuerung bis auf den Not-Aus komplett
lahmlegen.)
Anfangen bei der Programmentwicklungmit dem einfach Programm und je nach
Restzeit immer weiter verfeinern. So könnt ihr sobald die Sensoren
aufgebaut sind vom ersten Tag an am eigendlichen Fahrprogramm arbeiten.
teilweise parallel verschiedene verfeinerungen übernehmen. Eigendlich
könnte ja einer schon bevor die Sensoren überhaupt da sind zumindest
experimentieren ob bei (Auto in Rückenlage) er überhaupt gültige
Steuersignale generieren kann. (zb. Programm : 5 sek. Vorwärts, Rechts -
Links- Rückwärts schreiben)
Fängst du aber an die H Brücke als Steuerung zu nehmen, wird dein
Programm viel Zeitkritischer und du musst die komplette Hardware der
H-Brücke fehlerfrei fertig haben bevor du irgendetwas testen kanns, was
zwar trivial aussieht, wenn man aber einpaar kleine Fehler macht auch
schon mal länger dauern kann. Dann musst du die ja nciht nur zum
Funktionieren bringen, sondern auch so auslegen das bei Softwarefehlern
diese nicht sich oder anderes zerstört. Die Software musst du dann erst
einmal so schreiben das die Brücke richtig angesteuert wird. Hast du die
Brücke hier nciht Idioensicher aufgebaut, dann wirst du diese mit
einiger Wahrscheinlichkeit dabei zwerstören und von vorne anfangen...
Erst wenn es soweit ist, dann kannst du mit der eigendlichen Aufagbe
anfangen. Wenn es dann aber dumm läuft ist dafür nur noch viel zu wenig
zeit. Dann lieber eine HW sache die Parallel zu den ersten GEhversuchen
laufen kann und vom Aufwand optional skalierbar ist.
Ihr seid drei Mann - NUTZT DAS und abeitet Parallel!
Gruß
Carsten