Stap 16: Broncode
BRONCODE voor de SONAR optie IN de volgende stap (speciale STUFF)
Volg de aanwijzingen voor uw microcontroller en knip en plak deze code in de editor. Compileer en verzenden van de robot.
De code is ultra eenvoudige maar de bot vermijdt de meeste hindernissen die het ziet. Het is gemakkelijk uit te breiden het te nemen van mijn code.
' SuperSimpleBeginnersRobot
' www.instructables.com
' Ted Macy
' ted
' 2/16/09
'-----------------------------------------------------------------
' Wekken en instelling van objecten
'-----------------------------------------------------------------
Dim Servo_Right As New oServo
Dim Servo_Left As New oServo
Dim SRF04Servo As New oServo
Dim GP2D12 als oIRRange(3,8,cvOn)
Dim SRF04 als oSonarDV(8,9,cvOn)
SRF04Servo.IOLine=29 ' de servo te gebruiken i/o-Line 30 instellen.
SRF04Servo.Center=28 ' Stel de servo's tot en met 28. (zie handleiding)
SRF04Servo.operate=cvTrue ' laatste ding om te, de Servo inschakelen.
Servo_Right.IOLine = 30 ' instellen van de servo te gebruiken i/o-Line 30.
Servo_Right.Center = 28 ' Stel de servo's tot en met 28. (zie handleiding)
Servo_Right.operate = cvTrue ' laatste ding om te, de Servo inschakelen.
Servo_Left.IOLine = 31 ' instellen van de servo te gebruiken i/o-Line 31.
Servo_Left.Center = 28 ' Stel de servo's tot en met 28. (zie handleiding)
Servo_Left.operate = cvTrue ' laatste ding om te, de Servo inschakelen.
'-----------------------------------------------------------------
' Einde wekken en instelling van objecten
' Main routine is uw primaire routine opgeroepen macht omhoog!
'-----------------------------------------------------------------
Sub main()
Doen
Oproep IR
Oproep Forward_All
Oproep SServo
Loop
End Sub
'-----------------------------------------------------------------
' Einde van Main routine
' Begin van Drive systeem Subroutines
'-----------------------------------------------------------------
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
Oproep SServo
End Sub
'-----------------------------------------------------------------
' Einde van Drive systeem Subroutines
' Begin van Sensor Subroutines
'-----------------------------------------------------------------
Sub SServo()
SRF04Servo.position=15
SRF04. Operate.Pulse(1,1,250)
Als SRF04. Waarde < 128 vervolgens
Oproep Spin_Right
Anders Call Forward_All
End If
ooPIC.Delay=600
SRF04Servo.position=31
SRF04. Operate.Pulse(1,1,250)
Als SRF04. Waarde < 64 dan
Bel REVERSE
Anders Call Forward_All
End If
ooPIC.Delay=600
SRF04Servo.position=46
SRF04. Operate.Pulse(1,1,250)
Als SRF04. Waarde < 128 vervolgens
Oproep Spin_Left
Anders Call Forward_All
End If
ooPIC.Delay=600
SRF04Servo.position=31
SRF04. Operate.Pulse(1,1,250)
Als SRF04. Waarde < 64 dan
Bel REVERSE
Anders Call Forward_All
End If
ooPIC.Delay=600
End Sub
Sub IR()
Als GP2D12. Waarde < 64 dan
Oproep STOP
End If
End Sub
'-----------------------------------------------------------------
' Einde van Sensor Subroutines
'-----------------------------------------------------------------