Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleiner Kettenroboter
Hallo, ich dachte ich stelle mal mein Aktuelles Projekt vor. ich baue gerade an einem
Roboter mit RP-5 Chassi und Atmega8 Controler. Das Board ist bereits fast fertig.
Momentan funktionieren:
- 5v Stromversorgung
- Atmega8 Controler
Erweitert werden noch:
- L293D Motortreiber
- Sensoren
- eventuel Funkfernsteuerrung
Bilder werde ich vorraussichtlich am Mittwoch reinstellen, da ich Anfang der Woche weg bin.
Eine Frage hab ich noch, Am Controler ist über einen 1k Wiederstand am Controler angeschlossen, und ein Blink programm geschrieben:
$regfile = "m8def.dat"
$crystal = 1000000
Config Pind.0 = Output
Do
Portd.0 = 1
Waitms 500
Portd.0 = 0
Waitms 500
Loop
Aber die LED geht nie ganz aus, sondern leuchtet schwach u. dann heller ....
Weis jemand woran dass liegt???
Hi,
versuche es mal mit Waitms 1000. Geht sie dann korrekt aus ?
Nein, habs mit 1000 ausprobiert, ich suche mal nen Kurzschluss, vielleicht liegts daran.
Kurzschluss wird es nicht sein, da die LED dann gar nicht leuchten würde.
Wie hast du die LED angeschlossen?
Ist der Takt im Programm richtig angegeben? Weil ansonsten berechnet Bascom die Werte für den Wait Befehl falsch und so kann es vorkommen das die 500ms keine 500ms sind sondern 5ms und dann blinkt die LED so schnell das du es nicht mehr richtig als blinken wahr nimmst.
1k ist auch etwas zu viel für eine LED. Du kannst da auch problemlos 470Ohm nehmen (dann leuchtet die LED heller).
Also, die LED hab ich von PD0 über einen 1k wiederstand nach Vcc Geschaltet, das teil basiert auf dem internen 1MHZ Takt, und die LED wird deutlich heller u. dunkler,
geht nur nie ganz aus. Ich hab noch mal einige bilder vom Board hochgelagen.
Hallo,
1k ist schon in Ordnung, wenn die LED ausreichend hell leuchtet. Wozu sollte man da mehr Energie verbraten?
Möglicherweise hast du den LED Vorwiderstand nicht an die stabilisierten 5V angeschlossen, sondern an die unstabilisierte Spannung vor dem Regler.
Es kann auch sein, dass du irgendwo - so wie du schon vermutet hast - einen Schluss hast.
Auf alle Fälle: messe die Spannung dort wo der Vorwiderstand an der Versorgung liegt gegen GND und messe die Portausgangsspannung gegen GND. Das sind 2 Werte bei EIN und 2 bei AUS. Poste diese 4 Werte und ein Schaltbild. Dann kann dir geholfen werden.
grüsse,
Vohopri
Ich habe gerade gesehen, dass die LED an die Spannung vor dem regler angeschlussen wurde das werde ich gleich mal beheben
Freut mich, dass meine Kristallkugel noch funktioniert.
Habe heute mal die motortreiber (L293D) gelötet, allerdings funktioniert nur ein "Kanal".Aber jedes Mal wenn ich Den Roboter an den Strom Anschließe,
Bewegt sich der Eine motor an nicht funktionieren kanal kurtz. Weiß jemand woran dass liegen kann??? Ich benutze folgendes Programm:
$regfile = "m8def.dat"
$crystal = 1000000
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinc.5 = Output
Config Pinc.4 = Output
Config Pinc.3 = Output
Enable1 Alias Portb.1
Ina1 Alias Portb.2
Inb1 Alias Portb.3
Enable2 Alias Portc.5
Ina2 Alias Portc.4
Inb2 Alias Portc.3
Do
Enable1 = 1
Ina1 = 1
Ina2 = 1
Waitms 500
Ina1 = 0
Ina2 = 0
Waitms 500
Inb1 = 1
Inb2 = 1
Waitms 500
Inb1 = 0
Inb2 = 0
Waitms 500
Loop
5Volt-Junkie
29.05.2012, 21:59
Hast nur Enable1 aktiviert. Enable 2 fehlt ;)
Danke:p auf die Ide bin ich garnicht gekommen, dass ich den Enable2 vergessen habe. Jetzt funzt das endlich.
Außerdem habe ich dem Robotr eine neue festspannungsversorgung spendiert da die Alte einen Wackelkontakt hatte.
5Volt-Junkie
02.06.2012, 00:27
Ich würde Dir noch empfehlen vor dem Richtungswechsel die Enable's kurz auf LOW zu ziehen und nach dem Wechsel wieder auf High. Spart manchmal den einen oder anderen Motortreiber:)
Danke für den Tipp, dass werde ich mal ändern. Ich dachte das:
Waitms 500
Ina1 = 0
Ina2 = 0
Inb1 = 0
Inb2 = 0
Waitms 500
würde reichen.
Bald werden auch die Abstandssensoren angebaut, da bald
mein Paket von pollin kommen sollte.
Prinzipiell reicht das auch aus. Nur bei einem Richtungswechsel kann es vorkommen das beide H-Brücken kurzeitig durchgeschaltet sind und dadurch ein hoher Strom fließt. Wenn du aber den Enable auf Low ziehst und abschaltest, schaltest du die H-Brücken ab und hast so ein wenig mehr Sicherheit.
Hoffe die Erklärung ist so Stimmig. Oder habe ich was vergessen :)?
Ok, dann ändere ich mal das Programm.
Hallo, ich habe gerade die bumper montiert, würde dieses Programm funktionieren, damit der Roboter Hindernissen ausweicht????
$regfile = "m8def.dat"
$crystal = 1000000
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinc.5 = Output
Config Pinc.4 = Output
Config Pinc.3 = Output
Config Pind.7 = Input
Config Pinb.0 = Input
Enable1 Alias Portb.1
Ina1 Alias Portb.2
Inb1 Alias Portb.3
Enable2 Alias Portc.5
Ina2 Alias Portc.4
Inb2 Alias Portc.3
Taster1 Alias Pind.7
Taster2 Alias Pinb.0
Do
Enable1 = 1
Enable2 = 1
Ina1 = 1
Ina2 = 1
If Taster1 = 1 Then
Enable1 = 0
Enable2 = 0
Ina1 = 0
Ina2 = 0
Waitms 200
Enable1 = 1
Enable2 = 1
Inb1 = 1
Inb2 = 1
Waitms 300
Inb2 = 0
Waitms 500
Inb1 = 0
Enable1 = 0
Enable2 = 0
Waitms 200
Enable1 = 1
Enable2 = 1
End If
If Taster2 = 1 Then
Enable1 = 0
Enable2 = 0
Ina1 = 0
Ina2 = 0
Waitms 200
Enable1 = 1
Enable2 = 1
Inb1 = 1
Inb2 = 1
Waitms 300
Inb2 = 0
Waitms 500
Inb1 = 0
Enable1 = 0
Enable2 = 0
Waitms 200
Enable1 = 1
Enable2 = 1
End If
Loop
5Volt-Junkie
12.06.2012, 00:24
Packe es doch auf den µC drauf und probier es mal aus ;)
Ich wolte gerade den Atmega programieren, aber er bricht immer ab, und macht komische Geräusche.
Er wird aber noch vom programiergerät erkannt. Als Programm zu programieren benutze ich das AVR prog tool.
Weiß jemand woher dass kommt???
Es lag daran, dass die Motoren angeschlossen waren, aber der roboter bewegt sich trotzdem ganz komisch weiß demand ob da im Programm irgendwo ein fehler ist???
Hallo, ich bin jetzt schon seit stundn am programmieren, aber der Bot Finzt irgendwie nicht. Gradeausfahren geht aber soald eine If-anweisung im Programm ist,
geht es nicht mehr. Kann jemand mach über das Programm schauen??? Die Taster sind an Pinb.0 und Pind.7.
Ich habe gerade ein neues Programm mit nur einem Taster geschrieben aber es funzt immer noch nicht , kann mir jemand mal sagen warum dass nicht geht??? Ich glaube dass Problem ist irgendwo bei der If- Anweisung
$regfile = "m8def.dat"
$crystal = 1000000
Config Pinb.1 = Output ' Enable 1
Config Pinb.2 = Output ' Input 1a
Config Pinb.3 = Output ' Input 1b
Config Pinc.5 = Output ' Enable2
Config Pinc.4 = Output ' Input 2a
Config Pinc.3 = Output ' Input 2b
Config Pinb.5 = Input ' Taster input
Dim Taster As Bit ' Taster Variable
Pinb.5 = 1 ' Pull up
Do ' Wertzuweisung Variable
If Pinb.5 = 1 Then
Taster = 1
Else
Taster = 0
End If
If Taster = 1 Then
Pinb.1 = 1
Pinc.5 = 1
Pinb.2 = 1
Pinc.4 = 1
Else
Pinb.1 = 0
Pinc.5 = 0
Waitms 150
Pinb.1 = 1
Pinc.5 = 1
Pinb.3 = 1
Pinc.3 = 1
Waitms 300
Pinb.3 = 0
Waitms 200
Pinc.3 = 0
Pinb.1 = 0
Pinc.5 = 0
Waitms 100
End If
Loop
Hallo, ich hab die Programierung immer noch nicht hingekriegt. Allerdings habe ich gerade mal ne LED angeschlossen und ein Programm geschrieben
dass sie an geht wenn man den Taster drückt:
$regfile = "m8def.dat"
$crystal = 1000000
Config Pind.0 = Output ' Enable 1
Config Pind.5 = Input ' Taster input
Pind.5 = 1 ' Pull up
Do
If Pind.5 = 0 Then
Portd.0 = 1
Else
Portd.0 = 0
End If
Loop
Wenn ich jetzt die Stromversorgung einschalte, Leuchtet die LED kurz, wierd dann immer dunkler und geht dann aus.
wenn ich den Taster drücke geht sie sofort aus. Kann mir jemand sagen woran dass liegt??? ist da irgendwo ein Fehler in der Hardware???
Wie hast du den Taster den beschaltet?
Den Taster habe ich einfach mit dem einen Anschluss an den Controler und mit dem anderen nach GND geschaltet.
HeXPloreR
09.07.2012, 16:16
Hallo,
Du hast Deinen Pin in einem undefinierten Zustand indem Du den Taster nur am Pin und zu GND geschaltet hast. Bau doch noch einen PullUp ein - dazu einefach einen 1kOhm Widerstand mit an den Pin und dann an VCC verbinden. Dann sollte wenigstens die Hardware etwas sicherer funktionieren.
mfg
Achso, danke. ich dachte der Pullup in Bascom würde reichen. Ich löte gleich mal nen Wiederstand dazwischen.
HeXPloreR
09.07.2012, 16:27
ähm, okay Bascom ist nicht meins, wenn du einen PullUp eingeschaltet hast dann benötigst du den nicht extra noch draussen. Das wäre dann mein Fehler.
Um gottes willen ...versuche es doch mal mit ner klemme oder ähnliches.
Hey,
schau mal hier:
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/taster_entprellen/
Das muss PORTX = 1 heißen und nicht PINX = 1.
Danke, dass werde ich gleich mal ändern.
EDIT: Jetzt läuft der Bot endlich:p. Danke nochmal für den Tipp!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ich wollte gerade ein Relais über einen Bc 337 an den atmega anschließen, allerdings Funktioniert dass nicht, da die Basis
ja an eine Positive spannung benötigt, am Controlerpin aber eine Negative Stannung ist. kann mir demand helfen, wie ich dass lösen kann???
Hallo Avus,
nimm doch ein PNP Transistor ;-).
Gruss R.
P.S.: Wie wäre es mal mit einem neuen Thread.
Danke, das versuche ich mal, aber warum sind im Internet alle Schaltungen mit NPN Transistoren aufgebaut?????
Torrentula
20.07.2012, 17:06
am Controlerpin aber eine Negative Stannung ist.
Seit wann denn das? Also an deinem Pin liegen bei low 0V (GND) und bei high +5V an. Der NPN wird durchschalten wenn du deinen Pin auf high legst.
Hi,
prinzipell hast Du recht.
Ich zielte eher auch die Tatsache, das wenn er einen NPN nimmt,
dieser beim Einschalten sofort für eine gewisse Zeit durchsteuert, bis sein Programm den Port ansteuert.
Dies ist auch blöd, wenn man via Bootloader programmiert.
Wenn man hier eine Signalpiepser dran hat, dann hört man diesen kurz piepsen.
Nimmt man in diesem Fall einen pnp, so muss dieser mit 0 angesteuert werden.
Je nach Schaltung kann das sehr hilfreich sein. Arbeiten wird beides.
Gruss R.
Torrentula
20.07.2012, 17:39
Ich zielte eher auch die Tatsache, das wenn er einen NPN nimmt,
dieser beim Einschalten sofort für eine gewisse Zeit durchsteuert, bis sein Programm den Port ansteuert.
Sind die nicht nach dem Reset auf HiZ also haben eine hohe Impedanz, weder high noch low? Dann sollte keiner der beiden Transistoren durchschalten?
Ich kenne dieses Verhalten nur genau bei PIC Controller. Hier hatte mich meine erste Schaltung wirklich immer genervt, wenn ich den Download gestartet habe. (hier muss ich extra den Download anpassen).
Bei Amtel weiss ich es nicht 100%. Wenn er aber je nach Schaltung einen Pull-Up drin hat, dann würde er piepsen.
Gruss R.
Ersteinmal danke für die Antworten, ich habe dass gerade mal getestet, wenn ich den Pin über Bascom auf High schalte und eine LED anschließe
leuchtet diese nur, wenn ich das Andere anschlussbein mit dem + Pol der Spannungsquelle verbinde.
Ok, die Kabel vom Multimeter waren vertauscht, und der Transistor mitdem ich es getestet hatte kaputt. Ich habe mal einige Bilder in dieses https://www.roboternetz.de/community/album.php?albumid=72 Album geladen.
Ich füge noch einige Bilder hinzu.
Hi Avus,
mein Roby sah am Anfang mit dem Bumper ähnlich aus. Der ist nur einmal feste gegen die Wand gefahren, da waren die hin.
Achte also darauf, das er bei den ersten Tests nie nah an einer Wand fährt. Bei mir hat der nämlich plötzlich Vollgas gegeben. :-(
Bis jetzt haben die Bumper etliche Testfahrten überstanden, liegt wahrscheinlich daran, dass die
Gehackten Servos nicht besonders schnell sind. Außerdem möchte ich sowieso noch IR Sensoren anbringen.
Nun ja,
mein Roby wiegt ca. satte 5 kg und die Motoren können locker einen Küchen-Stuhl zur Seite schieben.
Ja dann kann man verstehen warum die Sensoren abbgebrochen sind:)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.