PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo steuern, kleines Problem



Lenox
17.11.2006, 21:45
Abend,
ich hab folgendes Problem, ich möchte das bei betätigung eines Tasters (Schließer) ein Servo in position 50 fährt. Normal geht das auch, aber irgentwie fährt er schon auf 50 OHNE da ich den Taster betätigt habe.



...
porta.7 = Input

Do
If porta.7 = 1 Then
Servo(1) 50
End if
Loop


Der Taster wurde zwischen porta7 und GND angeschlossen, was mach ich falsch? Versteh es echt nicht!

mfg
Lenox

linux_80
17.11.2006, 23:00
Hi,

welches Signal (Spannung) liegt an, wenn der Taster nicht gedrückt ist ?

Das lässt sich mit einem Pullup lösen, dazu einfach nach dem umstellen auf Eingang Porta.7 = 1 machen.

Dann, man liest einen Eingang mit Pina.7 aus, nicht mit Port ! [-X
Wenn der Taster auf Gnd geht, musst Du auf 0 abfragen.

Lenox
18.11.2006, 10:30
hey danke funktioniert jetzt !!
hab noch ein kleines problem.. wenn die daten in den uC geschrieben wurden sind bewegen sich die Servos kurz, wie kann ich dies unterbinden?

mfg
lenox

linux_80
18.11.2006, 12:52
Die einfachst Möglichkeit, einfach abstecken ;-)

Die Servos reagieren auf Impulse, beim flashen gibts eigentlich nur noch Impulse, auch wenn die nicht dieselbe Leitung verwenden wie zum programmieren, sie werden sich immer etwas bewegen.

Evtl. kannst Du in dein Programm eine kurze Wartezeit direkt nach dem Reset einbauen, so dass der AVR nicht gleich nach dem Start irgendwelche Ausgänge setzt, denn das Programmieren geht (auch) über die Resetleitung, und da kommt es schon vor, das das Programm anfängt zu arbeiten, obwohl das Flashprogramm noch Daten übertragen will, aber die Servos haben schon ein kurzes Signal bekommen, also bewegen sie sich.

Probier mal am Anfang zB. ein Wait 1 noch bevor irgendwas anderes gemacht wird, also vor den Config ... output usw.
Ist jetzt nur eine Idee, wenns nicht geht, hilft erstmal nur abstecken.

Lenox
18.11.2006, 14:13
hatte ic hauc hschon dran gedacht, ich probier gleich mal!

Lenox
20.11.2006, 17:06
So habs, allerdings gehen die Servos am Anfang immer auf vollen Ausschlag nach Links.. bei mir der Boden, was mch ich falsch?



$regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000

Wait 1

Config Servos = 2 , Servo1 = Portb.3 , Servo2 = Portb.4 , Reload = 7

Config Portb = Output

Config Porta.7 = Input
Porta.7 = 1

Enable Interrupts

Wait 2

Do
If Pina.7 = 0 Then
Servo(1) = 160
Waitms 500
Servo(2) = 230
Waitms 500
Servo(1) = 110
Servo(2) = 190
End If
Loop


Mfg
Lenox

coCo
20.11.2006, 17:15
Hi,
du kannst ja am Anfang deines Programms die Servos in eine "Startposition" stellen. Also z.B.:
Servo(1) = 150
Servo(2) = 150

Gleich nach dem du die Servos konfiguriert hast. Dies unterbindet außerdem auch das wackeln der Servos nach einem Reset. Sind die Servos in der Startposition, bleiben sie ganz ruhig, sind sie in einer anderen Position werden sie in die Startposition bewegt.

MfG

Lenox
20.11.2006, 17:34
Hi coCo,
danke für den guten Tipp, funktioniert.
Leider zittern die Servos noch was, naja sind halt nur analoge.
So langsam muss ich mal mim Greifer anfangen ;)
Wie weit bist du inzwischen?

Mfg
Lenox

coCo
20.11.2006, 17:40
Nicht viel weiter als vor einer Woche :D

Ich hab mir jetzt mal so einen billig Servo aus Hong-Kong bestellt. Der wird so in 2-3 Wochen geliefert. Wenn er was taugt, dann werd ich mir weitere 4 bestellen, die wieder 2-3 Wochen brauchen werden. Also vor Weihnachten werd ich denke ich mal net fertig mit dem Aufbau.

MfG

PS: Hab das ganze Geld für die Servos zusammen, meine Oma sponsort mich :D

Lenox
20.11.2006, 17:50
Owei da haste ja zeit ;D
Wundersicherweise schaffen meine 6g Servos es ohne Probleme den Arm zu bewegen, aber wiegesagt der Arm ist winzig :D. Ich mach gleich mal n Foto.

Mfg
PS: So eine Oma brauch ich auch :D bin mal Foto machen

AVRboy
20.11.2006, 17:51
Was nemmt ihr denn so für Servos bei solchen dingen gute HiTec oder billige dinger.

mfg

coCo
20.11.2006, 17:55
Hi,
ich versuchs erstmal mit billigen Hong-Kong Importen: Ebay (http://cgi.ebay.de/Brand-New-High-Torque-MG995-Metal-Gear-Servo_W0QQitemZ200049037380QQihZ010QQcategoryZ1984 3QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
Wenn die was taugen, werde ich die verwenden, wenn nicht dann muss ich mal zum Modellbauladen gehn und was gutes günstiges suchen :D
Die originalen Hitec Servos, die von Lynxmotion verwendet werden, wären natürlich auch ne Alternative.

Freu mich auf die Bilder :)

MfG

Lenox
20.11.2006, 17:59
Hi,
Also meine Servos haben mal 20 Euro gekostet gibts es aber mittlerweile bei ebay für 8 Euro, son kleiner blauer von Jamara.
hier die Bilder leider was unscharf (war wohl zu nah dran, naja erkennen kann man ihn) Das Weiße auf den Servos ist noch Sekundenkleber (die Servos waren uhrsprünglich in nem Shockflyer drin)



http://dastefan.da.funpic.de/AVR/1.JPG
http://dastefan.da.funpic.de/AVR/2.JPG

AVRboy
20.11.2006, 18:10
und die funktionieren jetzt mit dem prog das hier drin steht.

mfg

Lenox
20.11.2006, 18:26
jo ;)
Das Programm lässt sich bestimmt noch verfeinern, muss halt noch was Bascom lernen, aber es geht!

coCo
20.11.2006, 19:05
Sieht gut aus!
Wie hast du denn den Servo (Unterarm) an den Unterarm festgemacht? Also auf der Seite wo kein Servohorn dran ist. Und wie hast du den Unterarm und den Oberarm miteinander verbunden? Auf der einen Seite mit dem Servohorn, aber auf der anderen?

MfG

Lenox
20.11.2006, 20:14
Ich versuch es mal zu beschreiben.
Der Unterarm ist beitseitig auf den Servo geklebt (an einer Seite ist noch ein Loch für das Servohorn). Der oberarm wurde auf der einen Seite direkt auf das Servohorn geblebt, und auch der anderen mit einer Drehscheibe (lego) auf den unterarm geklebt, ich versuch mal ein Bild zu machen.

http://dastefan.da.funpic.de/AVR/3.JPG

Spion
21.11.2006, 10:37
Hallo

Lol, die Drehscheibe von Lego ist eine gute Idee.
Aus was für einem Material ist der Arm?

mfg luca

Lenox
21.11.2006, 13:56
Aus Epoxy Platine :D ist nur 1,7 mm und sehr stabil!
Brauchst aber net gute Säge! Am besten ne Bandsäge.

Mfg
Lenox
PS: lego rulz :P

coCo
21.11.2006, 15:09
Super! Jetzt weiß ich wie ich das befestigen werde :) Danke :D

Ich hab da immer viel zu kompliziert gedacht, dass es so eine einfache Lösung gibt ist echt toll :)

MfG

Lenox
21.11.2006, 16:38
Hab auch lang drüber nachgedacht, aber die idee hatte mein 11 jähriger bruder :P

Mfg