ИК-дальномер Sharp GP2Y0A02 (20-120см)
|
|
Space | Дата: Суббота, 15.08.2009, 05:07 | Сообщение # 1 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Купил тут совсем не давно Sharp . Решил заняться программной частью. Поискал по робофоруму. Нашёл пару кодов и на их основе написал под этот Sharp прогу. Хотя даже не написал, а дополнил. А конкретно, результаты можно посмотреть на LCD дисплее, + коментарии практически к каждому действию. И подбирал константы потому что практически к каждому шарпу судя по тому, что написано в wiki робофорума надо подбирать свои константы. Мдааа... Часа 3 я на это убил Всё получилось хотя от погрешности в ~1 и ~2 см избавится не смог. Но это не страшно. Определяет от 20 см до 30 точно. Дальше ошибается на 1 см. Если использовать другой Sharp, то нужно ТОЛЬКО изменить константы, а точней подобрать Код программы, мож кому надо будет: Code '------------------------------------------------------------------------------- ' Sharp GP2Y0D02 тест ' Измерение расстояния, с выводом результатов на LCD-дисплей ' Автор: Space ' Robotsspace.ucoz.ru ' Space (c) 2009 '-------------------------------------------------------------------------------
'О ик-дальномерах подробно почитать можно на робофоруме: 'http://roboforum.ru/wiki/Ик-дальномеры_SHARP 'рассказывается о формулах на основе, которых пишется программа
'------------------------------------------------------------------------------- $regfile = "m16def.Dat" ' мк ATmega16 $crystal = 16000000 ' частота кварца 16мГц '-------------------------------------------------------------------------------
'-------------------------------- LCD-дисплей----------------------------------- $lib "lcd4.lbx" 'используем 4-х битное подключение дисплея с помощью альтернативной библиотеки
'Библиотека lcd4.lbx использует следующее подключение:
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2 'используем дисплей на 2 строчки по 16 знакомест в каждой '-------------------------------------------------------------------------------
'----------------------------Константы и переменные----------------------------- 'Формула: R=M/(V+B)-K Const M = 20000 Const K = -1 Const B = -100
Dim Range As Word , Range1 As Word , Vout As Word , Vout1 As Word '-------------------------------------------------------------------------------
'--------------------------------Настройка ADC---------------------------------- Config Adc = Single , Prescaler = Auto , Reference = Internal '-------------------------------------------------------------------------------
'--------------------------------------------- ---------------------------------- 'Далее перед вывод информации на дисплее отключаем курсор, 'если этого не сделать он будет мешаться в виде такого ' знака "_". И делаем очистку с помощью команды "Cls". Cursor Off 'отключаем отображение курсора на LCD Cls 'очитка дисплея
Locate 1 , 5 'позиция курсора(1-строка, 5-начало надписи с 5-ого знакоместа) Lcd "RoboHome" 'выводим надпись Locate 2 , 4 ' позиция курсора(2-строка, 4-начало надписи с 4-ого знакоместа) Lcd "Sharp test" 'выводим надпись Wait 2 'задержка 2 секунды '-------------------------------------------------------------------------------
'Начало цикла основной программы
Do Start Adc : Vout1 = Getadc(0) 'Запускаем ADC на PA0 Stop Adc 'Останавливаем ADC Vout = Vout1 + B Range1 = M / Vout Range = Range1 - K
Cls 'очитка дисплея Locate 1 , 1 ' позиция курсора Lcd "Range = " ; Range ; "cm" 'выводим результат преобразования на ЖК Locate 2 , 1 ' позиция курсора Lcd "Vout = " ; Vout ; 'выводим результат преобразования на ЖК Waitms 100 ' зедержка 0,1 секунды Loop End
|
|
| |
юрии | Дата: Вторник, 18.08.2009, 21:13 | Сообщение # 2 |
Язык программированя: Васик
Зарегистрирован 05.03.2009
Группа: Новички
Сообщений: 572
Город: Югорск
Статус: Offline
| круто
|
|
| |
Space | Дата: Среда, 19.08.2009, 13:10 | Сообщение # 3 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Кто-нибудь ещё дальномеры юзал или мож кто собирается?
|
|
| |
S-T-A-L-K-E-R | Дата: Среда, 19.08.2009, 13:41 | Сообщение # 4 |
Язык программированя: Мурманская область
Зарегистрирован 11.06.2009
Группа: Модераторы
Сообщений: 367
Город: Никель
Статус: Offline
| хорошая штука, но дороговата...
http://rassionrobots.ucoz.ru/ -"Робототехника"
|
|
| |
Space | Дата: Среда, 19.08.2009, 13:53 | Сообщение # 5 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| знаю, но оно того стоит
|
|
| |
Bass85 | Дата: Среда, 19.08.2009, 17:53 | Сообщение # 6 |
Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
| Я хочу но пока не до него. Если бы не нужно было заказывать то уже бы купил а так у нас в имраде за него очень много просят и больше негде. А может лучше ультразвуковой?(их тоже нет и нужно заказывать )
|
|
| |
Space | Дата: Среда, 19.08.2009, 18:18 | Сообщение # 7 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| ультразвукой не знаю где заказать из наших русских магазинов, а так бы взял. А sharp можешь на робоформе заказать. отправку делают почти сразу после оплаты. До меня за 2 дня всё дошло.
|
|
| |
S-T-A-L-K-E-R | Дата: Среда, 19.08.2009, 18:27 | Сообщение # 8 |
Язык программированя: Мурманская область
Зарегистрирован 11.06.2009
Группа: Модераторы
Сообщений: 367
Город: Никель
Статус: Offline
| Раз уж пошло на то, то, я тоже хочу, но, пока нужно освоить программирование, а то эта штука никуда не сгодится (гы)
http://rassionrobots.ucoz.ru/ -"Робототехника"
|
|
| |
Bass85 | Дата: Среда, 19.08.2009, 18:27 | Сообщение # 9 |
Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
| В терра электронике есть. У нас этот же имрад с ними работает
|
|
| |
Space | Дата: Среда, 19.08.2009, 18:37 | Сообщение # 10 |
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
| Quote (S-T-A-L-K-E-R) Раз уж пошло на то, то, я тоже хочу, но, пока нужно освоить программирование, а то эта штука никуда не сгодится acute sad - этот смайлик в твоих сообщениях меня начинает уже раздражать Заклинаю, учи BASCOM AVR Добавлено (19.08.2009, 18:37) --------------------------------------------- Чёт я сплю... Вот чё сотворил. Теперь препятствия определяет и сервой крутит Код для сервы с переходом на метку: Code For I = 25 To Top Step 7 X = Center + I Servo(1) = X Waitms Wait1 Gosub Sharp_left Next
For I = 25 To Top Step 7 X = Center - I Servo(1) = X Waitms Wait1 Gosub Sharp_right Next Функция работы Шарпа, на определение препятствия справа или слева: Code 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 < 600 Then : Sharp_a02 = 0 : Else : Sharp_a02 = 1 : End If If Sharp_a02 = 1 Then : Led = 1 : Waitms 1000 : Led = 0 : 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 < 600 Then : Sharp_a0 = 0 : Else : Sharp_a0 = 1 : End If If Sharp_a0 = 1 Then : Led = 1 : Waitms 1000 : Led = 0 : End If End Function Return
|
|
| |
S-T-A-L-K-E-R | Дата: Среда, 19.08.2009, 18:42 | Сообщение # 11 |
Язык программированя: Мурманская область
Зарегистрирован 11.06.2009
Группа: Модераторы
Сообщений: 367
Город: Никель
Статус: Offline
| Р.С. Ау меня эти смайлики не двигаются, поэтому и не раздражают)
http://rassionrobots.ucoz.ru/ -"Робототехника"
|
|
| |
pashteet | Дата: Среда, 21.10.2009, 20:15 | Сообщение # 12 |
Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
| Прикупил такую игрушку, сижу изучаю
|
|
| |
юрии | Дата: Четверг, 19.11.2009, 17:41 | Сообщение # 13 |
Язык программированя: Васик
Зарегистрирован 05.03.2009
Группа: Новички
Сообщений: 572
Город: Югорск
Статус: Offline
| а мона на ниву или восьмерку из дальномера парктроники забацать
|
|
| |
Romario | Дата: Четверг, 04.11.2010, 09:46 | Сообщение # 14 |
Зарегистрирован 04.11.2010
Группа: Новички
Сообщений: 1
Город: Северодвинск
Статус: Offline
| А можно примерчик как в кучу эти коды собрать?
Сообщение отредактировал Romario - Четверг, 04.11.2010, 09:46 |
|
| |