Я ж писал, о будующем корпусе. Поэтому в нём всё будет норм, а это так сказать эксперементальная модель
Добавлено спустя 3 часа 54 секунды: Ещё вчера мой кашак пугался этого робота, а что сейчас смотрите сами... Лазер прицепил для самого себя. Чтобы видеть от какого препятствия он отъезжает. И серва крутится теперь отлично
Вопрос по коду: Как реализован поворот, при натыкании на препядствие? Т.е. как работает сам механизм отъезда (имею ввиду програмно) если препядствие слева, то поворачиваем вправо? Или он всегда в одну сторону поворачивает, независимо от того с какой стороны препядствие обнаружено?
П.С. С лазером смотрится очень хорошо, он там явно в теме
Добавлено спустя 1 минуту 42 секунды: О, щас посмотрел внимательнее, в обе стороны поворачивает, одназначна зачет
Очень просто. Поворот сервы организован в цикле. Начинаем от 45 градусов до 90 градусов, шарп справа, значит если есть сигнал поворачиваем влево. дальше продолжает работу сервы. От 90 до 135, шарп слева, значит если есть сигнал поворачиваем вправо. Аналогично в обратном направление.
'******************Вращение сервопривода и датчика Sharp************************ '*********************************Влево***************************************** For I = 45 To 90 Step 1 Servo(1) = I Waitms Wait1 Gosub Sharp_right Next
For I = 90 To 135 Step 1 Servo(1) = I Waitms Wait1 Gosub Sharp_left Next
'***********************************Sharp*************************************** Sharp_right: Declare Function Sharp_a02(byval 0 As Byte) As Byte Function Sharp_a02(byval 0 As Byte) As Byte Local Vout As Word Start Adc : Vout = Getadc(0) 'Sharp connected for example to PA=0(ADC0) Stop Adc If Vout < 850 Then : Sharp_a02 = 0 : Else : Sharp_a02 = 1 : End If If Sharp_a02 = 1 Then : Gosub Стоп : Waitms 200 : Gosub Разворот_влево : Waitms 250 : Gosub Вперёд : End If End Function Return
Sharp_left: Declare Function Sharp_a0(byval 0 As Byte) As Byte Function Sharp_a0(byval 0 As Byte) As Byte Local Vout As Word Start Adc : Vout = Getadc(0) 'Sharp connected for example to PA=0(ADC0) Stop Adc If Vout < 850 Then : Sharp_a0 = 0 : Else : Sharp_a0 = 1 : End If If Sharp_a0 = 1 Then : Gosub Стоп : Waitms 200 : Gosub Разворот_вправо : Waitms 250 : Gosub Вперёд : End If End Function Return
Я так понял, аккум размещается под днищем? Опять же это ведет к уменьшению проходимости На фотке кажется, что когда ты его перевернеш, он повиснет на аккуме и колесами будет в воздухе вертеть Хотя решение довольно компактное
2space: Я так понял на шасси модифицированные сервы? И даже с вытащенной из них электроникой - что не совсем понятно зачем сделано - судя по всему еще и ДД на базе реле пришлось городить?
pashteet писал(а):Я так понял, аккум размещается под днищем? Опять же это ведет к уменьшению проходимости На фотке кажется, что когда ты его перевернеш, он повиснет на аккуме и колесами будет в воздухе вертеть Хотя решение довольно компактное
это всё до поры до времени так. аккум за пол не цепляет уже проверял. катается как ни в чём не бывало.
=DeaD= писал(а):2space: Я так понял на шасси модифицированные сервы? И даже с вытащенной из них электроникой - что не совсем понятно зачем сделано - судя по всему еще и ДД на базе реле пришлось городить?
Да сервы именно такие. Да пришлось делать ДД. Просто раньше вообще не знал как управлять сервой программно, а сейчас будет время буду пробовать с переделанной электроникой сервы.