Hi,
ich hab mal ein paar Bilder gemacht:
Die Sensoren hab ich auf einer Lochrasterplatine festgeschraubt:
Bild hier  
Die beiden Servos hab ich einfach mit Doppelklebeband verbunden:
Bild hier  
Hier noch mal eine Aufnahme von oben:
Bild hier  
------------------------------------------------------------------------------------
zur Software:
anfänglich hab ich mir das so vorgestellt, dass der US-Sensor einmal hin und herfährt und die Koordinaten, an denen sich ein Hindernis befindet, speichert. Danach soll der Servo zu diesen Positionen hinfahren und der IR-Sensor soll genaue Messungen vornehmen (eigentlich könnte der IR-Sensor auch gleich nach der Entdeckung des Objekts nachmessen).
Nach einem ersten Test stellte sich jedoch heraus, dass der US-Sensor so genau arbeitet, dass der IR-Sensor die meiste Zeit überflüssig ist (jedoch nicht immer).
Als Controllerboard verwende ich eine RN-Control, da dies mein erstes Projekt ist, und ich noch nicht so viel Erfahrung in sachen uCs hatte. Dieses  Board steuert einerseits die beiden Servos und wertet andererseits die eingehenden Daten der Sensoren aus und bestimmt dann die Richtung, in der der Roboter ausweichen soll. Über den RS232 - Bus wird diese Information dann einem CCRP5 - Roboter von Conrad mitgeteilt, der das Fahrgestell bildet. Die CC1 am Roboter nimmt die Daten entgegen und führt das Ausweichmanöver aus.
Der Code am RN-Control sieht so aus:
	Code:
	' hier die nötigen Definitionen
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
' Definition der beiden Servos/angeschlossen an PortA.0 bzw. PortA.1
Config Servos = 2 , Servo1 = Porta.0 , Servo2 = Porta.1 , Reload = 20
Config Adc = Single , Prescaler = Auto
Config Porta.0 = Output
Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pind.4 = Output
'Ports für rechten Motor
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pind.5 = Output
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02
Config Pina.2 = Input
Config Pina.3 = Output
Config Pina.4 = Input
Portd.4 = 0
Enable Interrupts
' Variablen definieren
Dim I As Byte
Dim Us As Byte
Dim X As Byte
Dim Status As Byte
Dim Zeitmessung As Word
Dim Entfernung As Word
' Hauptprogramm
Do
Gosub Usscan   'ruft Unterprogramm zur Messung durch US-Sensor auf
Loop
End
' Unterprogramme
Usscan:
    ' Scanschleife/zählt von 27 bis 85 und übermittelt den aktuellen Wert der Zählvariable den Servos, die sich an diese Position begeben
    For I = 27 To 85
         Servo(1) = I
         Servo(2) = 50
'eigentlicher Messvorgang des US-Sensors
         Pulseout Porta , 3 , 40
         Pulsein Zeitmessung , Pina , 4 , 1
         Zeitmessung = Zeitmessung * 10
         Entfernung = Zeitmessung / 58
'Bestimmen der Ausweichrichtung
         X = I
         If Entfernung < 40 And I < 50 Then
         Gosub Links
         End If
         If Entfernung < 40 And I > 50 Then
         Gosub Rechts
         End If
         If Entfernung > 40 Then Gosub Gerade
         Waitms 35
   Next
   Return
'Unterprogramme zur Übermittlung der Daten an CCRP5
Links:
   Status = 0
   Printbin Status
   Servo(1) = X
   Servo(2) = 50
   Waitms 50
   Return
Rechts:
   Status = 1
   Printbin Status
   Servo(1) = X
   Servo(2) = 50
   Waitms 50
   Return
Gerade:
   Status = 2
   Printbin Status
   Return
 
Weitere Informationen zum Bot findest du auf meiner Website (www.ires.roboterbastler.de (befindet sich allerdings noch im Alpha-Stadium)) bzw. im Forum (dort sind auch weitere Programme zu finden).
Viele Grüße
ikarus_177
						
					
Lesezeichen