Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein erster Robo
Der_Anfänger
09.06.2007, 14:20
Hallo,
da ich noch ziemlich neu in der Welt der Microcontroller und Roboter bin habe ich mir meine Ziele beim Bau meines ersten Robos nicht allzu hoch gesteckt. Der Name steht übrigens noch nicht fest, wer eine Idee hat kann sich ruhig melden :cheesy:
1. Der Roboter soll nicht sehr groß werden (vlt. 20 x 15cm) und soll von meinem neu erworbenen Atmel Evaluation-Board mit Atmega8 betrieben werden. Das Chassis wird aus Blech (vlt. Aluminium) gebaut.
2. Als Sensoren sollen erstmal nur 2 US-Sensoren an die Front um Hindernissen auszuweichen. Später eventuell noch ein IR-Sensor zur Streckenmessung und zum Linienfolgen.
3. An einem LCD soll die Betriebszeit, Akkuspannung und andere Daten ausgegeben werden. Der Summer auf dem Board warnt, wenn die Akkus leer sind.
Denkt ihr das wäre möglich für einen Anfänger? Das ganze soll in Bascom Programmiert werden (Hab ich mir in der letzten Woche mehr oder weniger beigebracht.)
Mfg,
Felix
EDIT: Mir ist jetzt ein Name für den Robo eingefallen \:D/ : FEREW 1.0
Steht für Felix' Erste RoboterEntWicklung 1.0 . Was besseres ist mir bis zu diesem Zeitpunkt nicht eingefallen :cheesy: .
Elektronik303
09.06.2007, 17:53
Möglich ist das, klar, aber wenn du doch jetzt soo neu in dem Gebiet bist spiel doch erstmal ein wenig rum, wenn du ein LCD schon hast versuch Texte darauf auszugeben, versuch eine LED blinken zu lassen usw. wenn du das ganz gut kannst dann kannst du deine Vorstellungen da sicher wahr machen.
Der_Anfänger
09.06.2007, 18:16
Das Board ist schon ausgereizt :-) DIe Taster, LED's und Summer kann ich schon proggen, z.B wenn man den 1. Taster drückt dann blinken die LED's, wenn man 2. drückt dann geht eine LED aus und der Summer geht 2 Sekunde an usw.
Hab mal angefangen zu planen, werde die Pläne bzw. den Schaltplan (bin grad dabei mir KiCAD beizubringen) in den nächsten Tagen fertigstellen und sie mal posten.
Werde am Montag mal in die Stadt gehen und mir ein LCD mit Controller kaufen zum weiterexperimentieren.
Gruß
Felix
PS: Kann mir wer sagen wie ich Schaltpläne in KiCAD als jpg-File exportieren kann?
Der_Anfänger
10.06.2007, 15:51
So hab jetzt mal den Schaltplan fertig \:D/ , wär nett wenn den mal jemand überprüfen könnt.
Leider hab ich ihn bisher nur als Schaltplan-Datei von KiCAD, mit Screenshots hab ich es schon probiert als JPG-file zu speichern, hatz aber einfach zu schlechte quali.
Gruß,
Felix
PS: Sorry das der so durcheinander is, ist mein erster Schaltplan den ich überhaupt gemacht habe. :-)
EDIT: Is jetz die komplette Pro-File, da ich noch eigene Schaltzeichen gemacht habe und die bei der Pro-file dabei sind.
EDIT 2: Ich lad gleich den Schaltplan als jpg-Datei hoch.
Mit der Drücktaste kannst ein Bild vom ganzen Bildschirm machen, und dann kannst du das in Paint einfügen, bearbeiten und als JPG speichern, nur als Tip , die Wenigsten laden sich ein Zip-Päckchen runter .
Gruß
Der_Anfänger
10.06.2007, 19:33
Hab ich probiert gibt aber derb schlechte quali... Muss mal googlen nach nem Prog des gescheit auflösende Screenshots macht. Mal schaun ob ich das heut abend noch hinkrieg. :-s
Der_Anfänger
10.06.2007, 20:48
Sodala, hab jetzt ein Bild gemacht, nur halt in derb schlechter quali....
Ach ja hätt ich fast vergessen... Um die Anschlüsse am Wannenstecker müsst ihr euch keine Sorgen machen, die sind korrekt.
http://felixdermetaller.fe.funpic.de/ferew.jpg
Wär echt nett wenn mal jemand überpüfen könnt...
Gruß,
Felix
du hast die motorapannung an den l293D drann, das ist ok, aber dann auch zum LCD, ist das beabsichtigt ? oder ein Fehler , braucht das LCD nicht eine bestimmte spannung ? ist wohl für die Hintergrundbeleuchtung
Gruß
Der_Anfänger
11.06.2007, 07:29
Das ist für die Hintergrundbeleuchtung, (ist Pin 16) der braucht 5 V und ich wusste nicht ob man damit den AVR belasten kann (Vcc stellt, wenn ich richtig gelesen habe, auch 5 V zur Verfügung). Also lieber an ne extra Stromquelle.
Und kann man das alles an die GND vom Atmega8 dranhängen oder sollte man als Masse auch ne andere nehmen?
Gruß,
Felix
also ans LCD verbindest die 5 Volt , die die auch zum AVR gehen (die wohl von deinem Wannenstecker kommen, der mit dem Eval-Board verbunden ist) . Die Masse auch, brauchst keine getrennte Massen.
gruß
Der_Anfänger
11.06.2007, 19:06
ok, werd des dann mal verbessern. Die Teile kauf ich mir ersma nich, kauf mir morgen oder so (kam heute nicht dazu) ein LCD, ein Servo hab ich schon (aus nem Modellflugzeug von mir) und versuch erstmal die zu proggen, wenn ich das kann hoffe ich das ich genug von PWM verstehe (auf das Servo bezogen) dass ich den Motortreiber proggen kann. Hab schonmal angefangen das Chassis zu bauen (aus Blech das ich noch daheim gefunden habe) aber wird warscheinlich nur ein Prototyp so verhunzt wie des Chassis jetzt schon aussieht :-D.
Meld mich wieder wenns was neues gibt,
Gruß Felix
Der_Anfänger
15.06.2007, 21:46
Sodala hab heute mal wieder ein Bischen weitergebaut. Hab mich heute um die Motoren gekümmert. Anfangs wusste ich nicht welche ich nehmen sollte, als ich dann jedoch heute Mittag meinen Elektrosegler geschrottet habe (der is wirklich nicht mehr zu retten.... Kommt ersma in den Keller) hab ich dzwei uralt-servos ausgebaut und mir gedacht: Wieso nicht das komplette Servo als Motor und Getriebeeinheit nutzen? Also hab ich mal das Servo aufgemacht, die Elektronik und das Potentiometer entfernt, die Anschläge abgefeilt und zu guter Letzt noch zwei Kabel an den Motor angelötet. Das Ergebnis ist erstaunlich: Nur 100mA Stromverbrauch je Motor bei 4,5V. Zudem extrem hoher Drehmoment. Einzigstes Manko: Die Geschwindigkeit... Nicht gerade berauschend aber durchaus ausreichend würde ich mal sagen. Werde die Servomotoren dann Morgen einbauen, dann gibts auch erste Bilder des Prototyp-Chassis mit eingebauten Motoren und Rädern (hab nämlich endlich wieder meine Digitalkamera gefunden :cheesy:).
Gruß, Felix
Der_Anfänger
18.06.2007, 08:17
Hiho,
ich habe mal wieder etwas denkarbeit geleistet und diesen Schaltplan für die IR-Sensoren mit einem Fototransistor aufgebaut. (Der Sensor soll zur Hinderniserkennung dienen)
https://www.roboternetz.de/phpBB2/images/nickpage/286161182079991.jpg
T1 ist der besagte Fototransistor, der mit T2 (nem normalen Transistor) in einer Darlingtonschaltung geschaltet ist, um eine höhere Empfindlichkeit zu erreichen. Der Widerstand R1 dient dazu, den Strom, der von dem Pin PC.1 kommt, auf eine für den zweiten Transistor ungefährliche Voltzahl herunterzuregeln. Mit P1 wird die Empfindlichkeit der Schaltung eingestellt, also wann T2 den Kollektorstrom schaltet.
Ist die Schaltung soweit korrekt? Und kann ich das dann so direkt an den Eingang am AVR anschließen?
Gruß Felix
EDIT: Da fällt mir auf: Müsste nicht R1 an den Emitter von T1 bzw. vor die Basis von T2 um eine Einstellung durch das Poti zu ermöglichen?
Der_Anfänger
09.07.2007, 11:57
Hallo Erstmal,
Nachdem nun endlich die Realschule, der Stress mit meiner Freundin und die Abschlussfeiern abgeschlossen sind und ich wieder nüchtern bin hab ich endlich mal wieder Zeit gefunden, an meinem Robo weiterzubauen (sry das es immer noch keine Bilder gibt, hatte bisher imemr noch keine Zeit sie endlich mal zu machen, verspreche aber das ich das bis spätestens Mittwoch machen werde O:) ).
Ich hab nun mal die ganze Elektronik inklusive einem IR-Sensor aufgebaut (Den Motortreiber nicht, die Motoren werden gerade über Transistoren und den waitms-Befehl in der Geschwindigkeit geregelt, also sozusagen via waitms gepulst :-). Den Programmcode dazu stell ich auch heut Abend oder so rein. Der Nachteil daran ist, das ich nicht rückwärtsfahren kann weshalb ich gerade in Gedanken mit einem Polwendeschalter spiele... oder der einfachheit halber einfach nen Motortreiber verwenden^^.
Der IR-Sensor funltioniert, ich hab ne Schaltung mit 2 IR-LED's und einem Phototransistor aufgebaut, und er schaltet bei ca. 5cm Entfernung. Kann man die reichweite i-wie noch erhöhen oder bleibt die so niedrig?
Der ganze Robo sieht extrem verplant aus, alles liegt nur obendrauf sogar der Akku :-) Das wird heute Mittag noch alles befestigt und dann werden Bilder gemacht. Da das Version 1.0 ist bin ich schon am planen von Version 1.1, dort sollen diese ganzen Miniplatinen (die zwei "Motortreiber-Platinen", die IR-Platine) und die große Lochraster-Platine auf eine geätzte Europaplatine drauf, das Layout wird schon von mir entworfen^^
Also bald folgen dann hoffentlich die ersten Bilder,
Felix
Der_Anfänger
10.07.2007, 20:48
Also hier mal ein Beispielcode zu meinem "gepulsten" Motortreibern:
$regfile = "m8def.dat"
$crystal = 8000000
DDRB = &B000011
PORTB = &B000000
Do
Portb.0 = 1 'rechter Motor wird eingeschalten
Portb.1 = 1 'linker Motor wird eingeschalten
waitms 25
Portb.0 = 0 'rechter Motor wird ausgeschalten
Portb.1 = 0 'linker Motor wird ausgeschalten
waitms 25
Loop
Achja und dann hab ich noch ein riiiiiiießen Problem und hoffe das mir jemand helfen kann. Ich hab die IR-Schaltung wie oben aufgebaut (das Poti hab ich weggelassen). Dann setzte ich IR-LED's neben den Phototransistor und packte den mit rotem Isolierband ein, das er nicht sofort von den IR-LED's angestrahlt wird. Dann Spannung angeschlossen, messgerät auf Durchgangsprüfer gestellt, also ohne gegenstand vor dem Phototransistor: Kein Piepser, dafür extrem hochohmig... soweit so gut. Dann Meine Hand in ca. 5 cm Abstand hingehalten und siehe da... Der Durchgangsprüfer meldet sich, 15 Ohm Widerstand. Ich dachte mir dann , OK das müsste ja dann auch am Robo klappen und hab dann an den Kollektor des normalen Transistor den Port und an den Emitter GND drangehängt, und jetzt? Nichts funktioniert :-( ... Ich hab keine Ahnung wieso... Kann mir jemand helfen oder hat jemand nen Schwachpunkt in der Schaltung entdeckt? Oder kann jemand nen anderen Schaltplan von so einer IR-Schaltung posten??
StackDaniels
11.07.2007, 00:38
Hmm, ich hab mir hier mal 'ne Ersatzschaltung deiner Schaltung gezeichnet, so wie ich es verstanden habe. Dann scheint mir fast, dass du den Poti gar nicht weglassen kannst, weil du dann keine korrekte Darlington-Schaltung mehr hast. Mein Simulator streikt jedenfalls in dieser Konfiguration, funktioniert aber, wenn du den Widerstand R1 zwischen den Emitter von T1 und die Basis von T2 (also deinem normalen Transistor) legst.
Oder du fügst den Poti wieder hinzu, dann gehts vielleicht auch.
Der_Anfänger
11.07.2007, 10:02
vielen Dank, aber ein paar Sachen verstehe ich an dieser Schaltung nicht... Sind E 1+2 Stromquellen?? Diese Schaltzeichen hab ich noch nie gesehen. Und bei mir handelt es sich um einen Fototransistor also hast du die eine "Stromquelle" (wie ich vermute) nur hingemacht, um das einfallende Licht zu simulieren? Oder hab ich da was völlig falsch verstanden?
Und gestern Abend hab ich noch einiges, das mir bisher völlig unbekannt war, herausgefunden und habe mir daher einen Lösungsweg zusammengereimt:
Meine Schaltung ist nicht falsch, aber da zu wenig Strom durch T2 fließt (unter 2,4 Volt in meinem Scenario jetzt) unnd es sich um einen Analogen Pin handelt, wird die 2,4 abgerundet auf 0, der µC erkennt also sozusagen gar nichts. Wenn ich nun das Analog-Signal in ein Digital Signal wandle und damit die Spannung sozusagen zerlege in 255Bit (ich hoffe das is bis hierher richtig) und dann sage ab dem Wert 250 linker Motor aus und rechter Motor an zum Wenden, würde das dann gehen?
Gruß,
Felix
CKassiopaia
11.07.2007, 10:46
E1 und E2 sind Konstant-Spannungsquellen!
Mit welchem Prog ist das gezeichnet?
StackDaniels
11.07.2007, 13:44
Hmm, ich glaub, die geringe Spannungsaussteuerung is ein generelles "Feature" von Fototransistoren. Eine einfachere Lösung als das von dir Vorgeschlagene könnte also sein, die Spannung des Fototransistors mit einem Operationsverstärker zu verstärken und dann erst dem Pin des µC zuzuführen. Dadurch erreichst du m.E. jedenfalls eine höhere Verstärkung als mit der Darlington-Schaltung.
@CKassiopaia: Das Programm heißt "SolveElec" und gefunden hab ichs im Softwarearchiv von heise.de ^^ Is aber recht nützlich und wesentlich simpler als MacSpice (wenn auch längst nicht so mächtig)
Der_Anfänger
11.07.2007, 17:20
Hi,
so endlich sind die ersten Bilder da :-) Nicht gerade berauschende Quali aber ich verpreche das ich noch mehr mach. Die Platine vorne an der Nase is übrigens der IR-Sensor (der nicht funzt). Wenn Fragen bestehen, nur her damit :-)
https://www.roboternetz.de/phpBB2/images/nickpage/286161184166941.jpg
und noch eins...
https://www.roboternetz.de/phpBB2/images/nickpage/286161184167058.jpg
CKassiopaia
11.07.2007, 17:32
Die Räder sehen ja lustig aus :-) Selbstgebaut?
Einfach an den Servos befestigt und die Servos umgebaut?
Der_Anfänger
11.07.2007, 20:22
Ja :-) die Servos umgebaut dann Servohebel drauf und daran Holzscheiben befestigt. Das Grüne ist Gummischlauch von meinem Aquarium, Ideen muss man haben :-D.
Gruß,
Felix
Hi zu deinem Sensor Problem ich benutze folgende einfache Schaltung.
http://www.grautier.com/grautier/uploads/Elektronik/R1M-Sensoren/irlsx3-s.jpg
Der_Anfänger
11.07.2007, 21:20
Vielen dank für den Schaltplan, ich werde morgen mal die Schaltung aufbauen und direkt anschließen, wenn es funktioniert dann gibts bald das erste Video^^... Morgen kümmere ich mich dann noch um ein paar Bilder mit Detailaufnahmen vom Stützrad (was mir gut gelungen ist, finde ich jetzt ohne mich selber loben zu wollen O:) )
Gruß Felix
EDIT: Da fällt mir ein: Bis zu welchem Abstand funktionieren die CNY70?? Im Datenblatt steht Sensing Distance 0.3mm... Kann das sein?? Scheint mir extrem wenig. Da mien robo nur vorwärts fahren kann (vorerst :-) ) wär es gut wenn es mindesten 5 cm wären... Und kann man die Schaltung auch mit normalen IR-LED's und nem Fototransistor aufbauen? Die hab ich nämlich noch daheim rumliegen^^.
hm zum fototransistor weis ich nicht ob des geht ansonsten wehre noch nen ir entfenger ne Möglichkeit also 5cm könten gehen dann musste die Dinger am besten an einen A/D Wandler an schlissen.
mfg tb
Der_Anfänger
12.07.2007, 07:43
Mit AD-Wandler wäre ich wieder so weit wie vorher :-) , das würde auch mit meiner Schaltung funktionieren. Naja dann muss ich mich halt in ADC reinlesen, unter Bascom Basic scheint mir das nicht all zu kompliziert...
Der_Anfänger
12.07.2007, 19:51
Hallo ersma,
ich hab jetz nochmal ein paar Bilder gemacht, hier sei nochmal auf meine Galerie meiner Nickpage (https://www.roboternetz.de/phpBB2/nickpage.php?user=Der_Anf%E4nger&sub=gal)
hingewiesen, dort sind die ganzen Bilder eben hochgeladen worden und dort könn ihr sie euch nochmal anschauen :-) Jetzt aber nicht lang gelabert sondern die Bilder gepostet, los gehts mit einem Bild des Vorderrades, das Rad ist ein altes Spornrad meiner CAP 232 (ein Flugmodell für alle die nicht wissen was das is ^^) und der Draht ist ganz normaler federdraht.
https://www.roboternetz.de/phpBB2/images/nickpage/286161184261960.jpg
Das nächste Bild zeigt die Bananensteckerbuchsen zur Verbindung des Akkus (der sich unten in dem Kasten befindet) mit dem Board.
https://www.roboternetz.de/phpBB2/images/nickpage/286161184262018.jpg
Dann nochmal ne Gesamtansicht...
https://www.roboternetz.de/phpBB2/images/nickpage/286161184261987.jpg
Und zu guter letzt noch ein Bild des Tasters, der an einem Rad die Umdrehungen misst und man damit sozusagen die Strecke messen kann.
https://www.roboternetz.de/phpBB2/images/nickpage/286161184261928.jpg
Wenn Fragen bestehen, nur her damit ^^
Gruß, Felix
EDIT: Achja und der Bot heißt jetzt doch nicht mehr FEREW 1.0 (hört sivh irgendwie bescheuert an) sondern BUG 1.0 (ich weiß hört sich auch nicht viel besser an)
Der_Anfänger
21.07.2007, 17:42
Hi,
und wieder einmal habe ich produktive Arbeit geleistet und das LCD angeschlossen, um Die Strecke mithilfe meines Wegstreckentasters zu erfassen und am Display auszugeben. Nur gibt es hierbei wie eigentlich immer Probleme und der Robo macht seinem Namen Bug alle Ehre. Als ich heute morgen ein Hello World Programm für das LCD geschrieben habe, hat alles wunderbar funktioniert, es wurde korrekt angezeigt. Als ich dann jedoch meinen Taster mit ins Spiel brachte und dieser ca. alle viertel Sekunde ein Signal gibt geht das LCD nach ein paar Sekunden einfach aus! Die Hintergrundbeleuchtung geht noch und nach ein paar mal Resettaster drücken zeigt es seltsame ZTeichenketten an, wenn ich das Programm
dann wieder starte geht es so wieder von vorne los....
Hier ein Beispielprogramm wie es bei mir NICHT funktioniert (Ich habe alle Einstellungen usw. am Anfang der einfacheit halber weggelassen.
Dim Strecke as Integer
Strecke = 0
Do
Portb.2 = 1 'Die beiden Motoren gehen an
portb.3 = 1
If Pind.7 = 0 then 'Wenn der Wegstreckentaser aktiviert wird (der ist
'bei mir irgendwie invertiert)
Strecke = Strecke + 1
cls
locate 1 , 1
lcd "Strecke" ;Strecke;"cm
End if
Loop
Die LCD-Einstellungen stimmen, das LCD belegt den kompletten Portc.
Ich hoffe das mir jemand weiterhelfen kann.
Gruß Felix
PS.: Falls es euch hilft: Ich benutze einen Atmega8 mit 8 Mhz quarz.
Der_Anfänger
22.07.2007, 14:07
Hi ersma,
Ich habe das Problem jetzt in den Griff bekommen \:D/ !!!
Das Problem war das ich jedes Mal wenn der neue Wert auf dem Display ausgegeben wurde Das Bild mit CLS gelöscht habe. Durch die relativ schnelle Widerholfrequenz (1/4 Sekunde) muss dann das Display irgendwann nicht mehr mitgekommen sein. Das habe ich gestern rausbekommen als ich eine Uhr auf dem Display ausgegeben habe, dort wurde nur alle Sekunde CLS gemacht und da blieb das Display dann auch an. Achja und ich glaube das mein µC auch halber kaputt ist, obwohl ein 8Mhz quarz auf dem Board ist muss ich, wenn ich die Timerwerte für den Überlauf berechne mit 16 Mhz rechnen, sonst macht er alle halbe Sekunde einen Überlauf und mein Motor, der an Portb.3 hängt wird jedesmal wenn ich mit Ponyprog Daten auf den µC schreib aktiviert. Sachen gibts die gibts gar nicht! :-)
Gruß Felix
Und ein großes EDIT wil ich keinen neuen Post machen wollte: Ich habe bei www.Pollin.de den US-Abstandswarner als Sensor ins Auge gefasst. 10-18cm Entfernung würden mir reichen, das Problem ist nur das hiermit nur eine LED geschalten wird. Könnte man das nicht mit folgender einfacher Schaltung ändern? https://www.roboternetz.de/phpBB2/images/nickpage/286161185106983.jpg
Wäre schön wenn mir jemand helfen kann :-)
Nochmal Gruß, Felix
Der_Anfänger
24.07.2007, 21:19
Kann mir denn niemand sagen ob die Schaltung so funktionieren würde?
Der_Anfänger
30.07.2007, 15:52
Hallo,
Ich habe nun den US-Sensor insofern modifiziert wie ich es oben gezeigt habe (mit der Ausnahme das ich einen 100Ohm Widerstand genommen habe anstatt dem 1kOhm), dann habe ich folgendes Programm geschrieben:
$regfile = "m8def.dat"
$crystal = 8000000
Config Pinb.0 = Input 'Der US-Sensor
Config Pind.2 = Input 'EIn normaler Taster
Config Portd.6 = Output 'Ne LED
Do
If Pinb.0 = 1 Or Pind.2 = 1 Then '
Portd.6 = 1
Else
Portd.6 = 0
End If
Loop
und nix funktioniert! Wenn ich den Taster drücke dann geht die LED an, wenn ich jedoch mit meiner Hand den US-Sensor "auslösen" will, dann geht zwar die LED auf dem US-Basusatz an aber die LED auf meinem Board geht niht an... KAnn mir da wer helfen?? Ist evtl. der Transistor kaputt?? Ich habe es bisher mit 2 verschiedenen Transistoren versucht (BC547) und es hat mit beiden nicht funktioniert. Oder liegt es am Programm?? Hab ich irgendwas vergessen?? oder doch an meiner Schaltung??
Gruß Felix
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.