Étape 16 : Source Code
CODE SOURCE pour l’OPTION de SONAR à l’étape suivante (commandes spéciales)
Suivre les indications pour votre microcontrôleur et coupez et collez ce code dans l’éditeur. Compilez et envoyer au robot.
Le code est ultra simple mais le bot évite la plupart des obstacles qu’il voit. Il est facile de prendre mon code et étendre sur elle.
' SuperSimpleBeginnersRobot
"www.instructables.com
« Ted Macy
« ted
« 16/02/09
'-----------------------------------------------------------------
« Créer et configurer des objets
'-----------------------------------------------------------------
Dim Servo_Right As New oServo
Dim Servo_Left As New oServo
Dim SRF04Servo As New oServo
Dim GP2D12 comme oIRRange(3,8,cvOn)
Dim SRF04 As oSonarDV(8,9,cvOn)
SRF04Servo.IOLine=29 ' définir le servo d’utiliser des e/s ligne 30.
SRF04Servo.Center=28 ' définissez le centre servos à 28. (voir manuel)
SRF04Servo.operate=cvTrue ' dernière chose à faire, allumez le Servo.
Servo_Right.IOLine = 30 ' définir le servo d’utiliser des e/s ligne 30.
Servo_Right.Center = 28 ' définissez le centre servos à 28. (voir manuel)
Servo_Right.operate = cvTrue ' dernière chose à faire, allumez le Servo.
Servo_Left.IOLine = 31 ' définir le servo d’utiliser des e/s ligne 31.
Servo_Left.Center = 28 ' définissez le centre servos à 28. (voir manuel)
Servo_Left.operate = cvTrue ' dernière chose à faire, allumez le Servo.
'-----------------------------------------------------------------
' Fin créer et configurer des objets
' Main routine est votre routine primaire appelé power up !
'-----------------------------------------------------------------
Void main() / /
Faire
Appel IR
Appel Forward_All
Appel SServo
Boucle
End Sub
'-----------------------------------------------------------------
' Fin de Main routine
« Début du lecteur système sous-routines
'-----------------------------------------------------------------
Void Spin_Left()
Servo_Left.Invert=0
Servo_Left = 62
Servo_Right = 60
End Sub
Void Spin_Right()
Servo_Right.Invert=1
Servo_Left = 62
Servo_Right = 60
End Sub
Void Forward_All()
Servo_Right.Invert=0
Servo_Left.Invert=1
Servo_Right = 60
Servo_Left = 62
End Sub
Void REVERSE()
Servo_Right.Invert=1
Servo_Left.Invert=0
Servo_Right = 60
Servo_Left = 62
End Sub
Void STOP()
Servo_Left = 0
Servo_Right = 0
Appel SServo
End Sub
'-----------------------------------------------------------------
' Fin de disque système sous-routines
' Début de sous-routines de capteur
'-----------------------------------------------------------------
Void SServo()
SRF04Servo.position=15
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valeur < 128 puis
Appel Spin_Right
D’autre appel Forward_All
End If
ooPIC.Delay=600
SRF04Servo.position=31
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valeur < 64 puis
Composez le revers
D’autre appel Forward_All
End If
ooPIC.Delay=600
SRF04Servo.position=46
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valeur < 128 puis
Appel Spin_Left
D’autre appel Forward_All
End If
ooPIC.Delay=600
SRF04Servo.position=31
SRF04. Operate.Pulse(1,1,250)
Si SRF04. Valeur < 64 puis
Composez le revers
D’autre appel Forward_All
End If
ooPIC.Delay=600
End Sub
Void IR()
Si GP2D12. Valeur < 64 puis
Appelez STOP
End If
End Sub
'-----------------------------------------------------------------
' Fin de sous-routines de capteur
'-----------------------------------------------------------------