F: Ist der "Beeper" ein Pieper (also Spannung ran und piept) oder ein Minilautsprecher (also Frequenz ran)
A: der Pieper ist eine art Lautsprecher
F: Welches Hex-File ist das richtige, bzw. was macht "main.hex" und was macht "Logi-v1.0.hex"
A: Logi-v1.0.hex ist das fertig übersetzte Programm. main.hex kommt raus wenn du es selber übersetzt.
F: Was sind das alles für viele kleine Files bei der Software (adc.c, adc.h, beep.c, .) ?
A: Das sind alles Unterfunktionen zur Ansteuerung der Hardware. die .h enthalten die Schnittstelle. die .c Dateien den eigentlichen Code.
adc.c : analog digital wandler
beep.c: Pieper Frequenz erzeugen
usw.
Das Hauptprogramm ist in der main.c die Funktion "void main(void)", da beginnt der Prozessor das Programm abzuarbeiten. Am besten installierst du dir "winavr" dann kannst du die Datei "logi.pnproj" mit dem "programmers notepad 2" öffnen (ist bei winavr dabei) im Anhang eine Version die sich mit der aktuellen Winavr Version übersetzten lässt.
F: Mit den Werten für die Sensorik (diffuse rote LED, BPW40, 47k
Widerstand als Spannungsteiler auf 3,7V) hatte ich überhaupt keine vernünftigen
Spannungsdifferenzen zwischen weißem und schwarzen Untergrund.
Mit diffusen LED´s (normale Rote) und 47k Widerstand war der
Spannungsabfallunterschied bei 3,7V zwischen Masse
und + des BPW40 nur ein paar Millivolt (schwarzer Untergrund 3,61V, weisser
Untergrund 3,56V).
Widerstand stufenweise auf 1 MOhm ! erhöht (von 47kOhm) und helle klare LED´s
verwendet => dadurch Werte
zwischen 0,2V (weisser Untergrund) und 1,8V (schwarze Linie) mit starkem
Fremdlicht (35W Halogenschreibtischlampe voll beleuchtet) und zwischen 1,8V (weisser
Untergrund) und 2,9V (schwarze Linie) <- mit der Hand etwas abgeschattet.
Mit diesem Wertebereich hoffe ich sollte die Linienerkennung funktionieren. Was
sagst du zu diesen extrem unterschiedlichen Werten ? Werden meine Differenzen am
Spannungsteiler mit deinem Programm funktionieren ?
A: zu den Dioden: da fällt mir nur ein das du sie vielleicht falsch herum eingebaut hast oder ich sie falsch im schaltplan drin habe. kannst es ja mal testen.
> Hallo Max ! (hoffentlich dein richtiger Vorname)
>
> Seit ein paar Wochen beschäftige ich mich mit Microcontrollern (Mega8,
> Mega128, ATTiny2313), mit denen ich auch schon Motoren, Schrittmotoren,
> LCD´s, Servos, etc. ansteuern kann.
> Ziel ist es, Roboter mit verschiedenen Funktionen zu bauen.
>
> Jetzt habe ich deine Seiten im Internet gefunden, und dein Mausroboter
> "Logi" hat es mir angetan. Ich hoffe, es stört dich nicht, wenn ich den
> Logi nachbauen möchte. Aber er ist sehr einfach vom technischem Aufbau,
> sieht super cool aus, und Linienverfolgen wäre die erste Roboterfunktion,
> die ich gerne lernen würde (ist ja scheinbar gar nicht so einfach, dass
> mit Inteligenz und gutem Regelverhalten zu machen).
>
> Zufällig habe ich schon das gleiche Gehäuse zu Hause gehabt, die Motoren
> habe ich beim Conrad bestellt, aber ich habe noch ein paar Fragen zum Bau:
>
> - Die Motoransteuerung machst du mit dem L293DD (SMD). Laut Datenblatt
> braucht der aber mindestens 4,5 V. Der LIon-Akku hat aber nur 3,7 V !
> Funktioniert der 293DD auch noch mit dieser kleinen Spannung ?
>
> - Für die Ausleuchtung der Fotodioden verwendest du normale rote difuse
> LED´s. Kommt es auf eine möglichst gleichmäßig ausgeleuchtete Fläche an
> (auch wenn nicht besonders hell (<- normale difuse LED´s sind ja
> "Funzeln"), oder soll ich besser hellere LED´s probieren ?
> Oder gleich CNY70 Reflexlichtschranken ?
>
> - Zum Probieren würde ich gerne dein Programm (hex-File) einspielen. Da
> habe ich zu deiner Anleitung zum Positionieren eine Frage:
>
> * Was heisst Links/Rechts von der "Kontur" positionieren ? Links/Rechts
> von der Linie ? Wenn ja, wieviel ? Linker/Rechter Gehäuserand an den
> Linienrand, oder wie genau ?
>
> * Welche Informationen gibt der Pieper von sich ? Gibt er Informationen
> von sich ?
>
>
> Ich kann kein C(Programmieren war nie meine Stärke, bin mehr der
> Elektronik-Bastler), deshalb progge ich meine Prozessoren mit Bascomm
> (Basic kenne ich noch von der Schul- und C64/C128-Zeit).
> Ich werde aber versuchen, deinen Linienverfolgungscode in C zu verstehen.
> Leider finde ich im Netz keine Mustercodes in Bascomm zur
> Linienverfolgung, aber wenigstens habe ich schon Formeln und
> Beschreibungen für PID-Regelungen gefunden, ich hoffe, ich verstehe das in
> absehbarer Zeit. Dann gibt es noch das Problem mit Abzweigungen, und
> verschieden starken Linien.
>
> Ich habe inzwischen erkannt, dass das für einen Laien so einfach
> erscheinende Linienverfolgen scheinbar recht kompliziert ist !
> Falls du mir zu diesem Thema ein paar Tips geben kannst, wäre ich dir sehr
> dankbar. Wenn nicht (scheinbar möchte keiner seine Tricks und Kniffe
> verraten (was ich verstehe, wenn man an Wettbewerben teilnimmt), muss ich
> halt länger suchen, lernen und probieren.
>
> Aber vielleicht hast du mal Zeit, meine Fragen zum Logi zu beantworten.
> Würde mich sehr freuen.
Hallo Peter,
es freut mich das jemand meinen Roboter nachbauen möchte dazu habe ich ja
auch die vielen Fotos und die Daten auf meiner Homepage.
zum L293DD: der funktioniert super auch bei der geringen Spannung..
Die LEDs sind nicht besonders hell aber sie sind ja auch sehr nah am Boden
und bei mir funktionieren die super.
zur Bedienung:
nach dem einschalten piepst es kurz und dann macht der robo erst mal nix.
die leds leuchten jede Sekunde mal kurz auf.
werden keine tasten gedrückt geht logi nach einigen Sekunden schlafen und
verbraucht nur noch wenige µA. aufwecken kann man hin mit der mittleren
Taste.
zum programmieren der Kontur:
1. lange Mitte drücken -> drei töne, leds blinken schnell
2. links oder rechst drücken -> piep ton
3. lange Mitte drücken -> drei töne fertig
oder einfach das Video anschauen :)
http://der-max.no-ip.org/Robotik/Logi/logi-demo-video.avi
zur Software:
Programmiersprachen sind ja alle im Prinzip gleich nur die Syntax
unterscheidet sich ein bisschen. wenn du Basic kannst sollte es nicht so
schwer sein c zu verstehen.
die Linienverfolgung ist im Logi als p Reglung realisiert.
es gibt 6 Sensoren. zwei mal 6 sollwerte. ein sollwert für voll nach rechts
fahren und einen für voll nach links fahren. es wird die Differenz zum
Istwert gebildet. entsprechen die sensorwerte zum Beispiel den linken
sollwerten mehr als den rechten fährt der Roboter nach links. haben beide
die gleiche Differenz haben fährt Logi geradeaus.
mfg
Maximilian Laiacker