mini12345
11.04.2014, 13:12
Hallo, ich bin gerade dabei ein Roboter zu bauen der sich selbst ausbalanciert.
Leide finde ich keine Anleitung oder Tipps auf Deutsch, deswegen will ich es hier mal in die Runde werfen ;)
Ich habe ein Atmega8 und 2 Motortreiber (Tc4469) im Einsatz außerdem habe ich 2 12v 1:50 Getriebemotoren verbaut.
Da mein 3 Axis Gyroscope erst noch geliefert wird hab ich die Winkelmessung ganz einfach über einen Poti geregelt .
Ich glaube meine Ansatz ist schon mal richtig denn er macht was er soll, dass aber nicht zufriedenstellend :p:p
er will oft umfallen, was aber auch an der Programmierung liegen könnte.....
Dazu muss ich sagen , ich bin Anfänger was Roboter und Programmierung angeht .
Vielleicht könnt ihr mir ja beim verbessern behilflich sein oder habt sogar ein link wo so ein Projekt auf deutsch beschrieben ist?
Danke schonmal
Jetzt noch der Code und Bilder
PS : ist natürlich noch ganz einfach gehalten (Anfänger)
PS2: Programmiert wird in Bascom
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Config Portc.5 = Output
Config Portc.4 = Output
Config Portc.3 = Output
Config Portc.2 = Output
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 1
Cursor Off
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 1
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Wert As Integer
Do
Wert = Getadc(0)
Locate 1 , 1
Lcd ; Wert
Waitms 5
Cls
If Wert < 320 Then
Portc.5 = 1 'richtung motor links'
Portc.4 = 0
Portc.3 = 1 'richtung motor rechts'
Portc.2 = 0
Compare1a = 700 'motorspeed'
portb.1 = portb.2
Elseif Wert > 325 Then
Portc.5 = 0 'richtung motor links'
Portc.4 = 1
Portc.3 = 0 'richtung motor rechts'
Portc.2 = 1
Compare1a = 700
Else
Compare1a = 0
End If
Loop
End
Video:
https://www.youtube.com/watch?v=TbxiclUYaGI&feature=youtu.be
Leide finde ich keine Anleitung oder Tipps auf Deutsch, deswegen will ich es hier mal in die Runde werfen ;)
Ich habe ein Atmega8 und 2 Motortreiber (Tc4469) im Einsatz außerdem habe ich 2 12v 1:50 Getriebemotoren verbaut.
Da mein 3 Axis Gyroscope erst noch geliefert wird hab ich die Winkelmessung ganz einfach über einen Poti geregelt .
Ich glaube meine Ansatz ist schon mal richtig denn er macht was er soll, dass aber nicht zufriedenstellend :p:p
er will oft umfallen, was aber auch an der Programmierung liegen könnte.....
Dazu muss ich sagen , ich bin Anfänger was Roboter und Programmierung angeht .
Vielleicht könnt ihr mir ja beim verbessern behilflich sein oder habt sogar ein link wo so ein Projekt auf deutsch beschrieben ist?
Danke schonmal
Jetzt noch der Code und Bilder
PS : ist natürlich noch ganz einfach gehalten (Anfänger)
PS2: Programmiert wird in Bascom
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Config Portc.5 = Output
Config Portc.4 = Output
Config Portc.3 = Output
Config Portc.2 = Output
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 1
Cursor Off
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 1
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Wert As Integer
Do
Wert = Getadc(0)
Locate 1 , 1
Lcd ; Wert
Waitms 5
Cls
If Wert < 320 Then
Portc.5 = 1 'richtung motor links'
Portc.4 = 0
Portc.3 = 1 'richtung motor rechts'
Portc.2 = 0
Compare1a = 700 'motorspeed'
portb.1 = portb.2
Elseif Wert > 325 Then
Portc.5 = 0 'richtung motor links'
Portc.4 = 1
Portc.3 = 0 'richtung motor rechts'
Portc.2 = 1
Compare1a = 700
Else
Compare1a = 0
End If
Loop
End
Video:
https://www.youtube.com/watch?v=TbxiclUYaGI&feature=youtu.be