roboforum.ruТехнический форум по робототехнике. |
|
|
pashteet писал(а):Выглядит прелесно
Еще бы чуть чуть по плавнее сделать и вообще будет айс
$regfile = "m16def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Pind.2 = Output : M1f Alias Portd.2
Config Pind.3 = Output : M1b Alias Portd.3
Config Pind.4 = Output : M2f Alias Portd.4
Config Pind.5 = Output : M2b Alias Portd.5
Enable Interrupts
Dim АЦП As Word , Q As Byte
Q = Inp(&H800) 'Q равняется ячеки памяти по адресу &H800
Do
If АЦП >= 500 Then
If Q = 0 Then : Gosub Разворот_вправо : End If
If Q = 1 Then : Gosub Разворот_влево : End If
Else : Gosub Вперёд : End If
Loop
Вперёд:
M1f = 1 : M2f = 1
M1b = 0 : M2b = 0
Return
Разворот_вправо:
Out &H800 , 1 ' записать 1 по адресу &H800
M1f = 1 : M2f = 0
M1b = 0 : M2b = 1
Return
Разворот_влево:
Out &H800 , 0
M1f = 0 : M2f = 1
M1b = 1 : M2b = 0
Return
$regfile = "m16def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Pind.2 = Output : M1f Alias Portd.2
Config Pind.3 = Output : M1b Alias Portd.3
Config Pind.4 = Output : M2f Alias Portd.4
Config Pind.5 = Output : M2b Alias Portd.5
Enable Interrupts
Dim АЦП As Word , Q As Bit
Q = 0
Do
Start Adc : АЦП = Getadc(2)
If АЦП >= 500 Then : Gosub Отъехать_от_препятствия_спереди : Else : Gosub Вперёд : End If
Loop
Вперёд:
M1f = 1 : M2f = 1
M1b = 0 : M2b = 0
Return
Отъехать_от_препятствия_спереди:
M1f = 0 : M2f = 0
M1b = 1 : M2b = 1
Wait 1
If Q = 0 Then
M1f = 1 : M2f = 0
Else
M2f = 1 : M1f = 0
End If
Wait 1
If Q = 0 Then
M2f = 1 : M1f = 0
Else
M1f = 1 : M2f = 0
End If
'переустанавливаем переменную
If Q = 0 Then
Q = 1
Else
Q = 0
End If
CiSi писал(а):...а что если с помощью этих дальномеров сканировать область перед роботом (или да же вокруг него)..
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41