Paso 16: Código
Código para la opción de SONAR en el paso siguiente (cosas especiales)
Seguir las indicaciones hacia el microcontrolador y corte y pegue este código en el editor. Recopilar y enviar al robot.
El código es ultra simple pero el bot evita obstáculos la mayoría ve. Es fácil tomar mi código y ampliar sobre ella.
' SuperSimpleBeginnersRobot
' www.instructables.com
' Ted Macy ' s
' ted
«16/02/09
'-----------------------------------------------------------------
' Crear y configurar objetos
'-----------------------------------------------------------------
Dim oServo Servo_Right como nuevo
Dim oServo Servo_Left como nuevo
Dim oServo SRF04Servo como nuevo
Dim GP2D12 como oIRRange(3,8,cvOn)
Dim SRF04 como oSonarDV(8,9,cvOn)
SRF04Servo.IOLine=29 ' ajustar el servo con entrada-salida línea 30.
SRF04Servo.Center=28 ' establece el centro de servos en 28. (ver manual)
SRF04Servo.Operate=cvTrue ' lo último, encender el Servo.
Servo_Right.IOLine = 30 ' fijar el servo a usar 30 línea de entrada-salida.
Servo_Right.Center = 28 ' establecer el centro de servos a 28. (ver manual)
Servo_Right.Operate = cvTrue ' lo último, encender el Servo.
Servo_Left.IOLine = 31 ' ajustar el servo con entrada-salida línea 31.
Servo_Left.Center = 28 ' establecer el centro de servos a 28. (ver manual)
Servo_Left.Operate = cvTrue ' lo último, encender el Servo.
'-----------------------------------------------------------------
' Crear y configurar objetos
' Rutina principal es su rutina principal llamado al poder!
'-----------------------------------------------------------------
Sub main()
Hacer
Llame a IR
Llamar al Forward_All
Llamar al SServo
Lazo
End Sub
'-----------------------------------------------------------------
' Final de la rutina principal
' Inicio del sistema de impulsión subrutinas
'-----------------------------------------------------------------
Sub Spin_Left()
Servo_Left.Invert=0
Servo_Left = 62
Servo_Right = 60
End Sub
Sub Spin_Right()
Servo_Right.Invert=1
Servo_Left = 62
Servo_Right = 60
End Sub
Sub Forward_All()
Servo_Right.Invert=0
Servo_Left.Invert=1
Servo_Right = 60
Servo_Left = 62
End Sub
Sub REVERSE()
Servo_Right.Invert=1
Servo_Left.Invert=0
Servo_Right = 60
Servo_Left = 62
End Sub
Sub STOP()
Servo_Left = 0
Servo_Right = 0
Llamar al SServo
End Sub
'-----------------------------------------------------------------
' Final del sistema de impulsión subrutinas
' Comienzo de subrutinas de Sensor
'-----------------------------------------------------------------
Sub SServo()
SRF04Servo.Position=15
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valor < 128 entonces
Llamar al Spin_Right
Otra llamada Forward_All
End If
ooPIC.Delay=600
SRF04Servo.Position=31
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valor < 64 entonces
Llame al revés
Otra llamada Forward_All
End If
ooPIC.Delay=600
SRF04Servo.Position=46
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valor < 128 entonces
Llamar al Spin_Left
Otra llamada Forward_All
End If
ooPIC.Delay=600
SRF04Servo.Position=31
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valor < 64 entonces
Llame al revés
Otra llamada Forward_All
End If
ooPIC.Delay=600
End Sub
Sub IR()
Si GP2D12. Valor < 64 entonces
Llamada de parada
End If
End Sub
'-----------------------------------------------------------------
' Final de subrutinas de Sensor
'-----------------------------------------------------------------