Суббота, 18.11.2017, 01:59 
Приветствую Вас Гость | RSS



Меню сайта
 

Личные странички
UA3EKK
RV3EFH
UA3EID
RA3EA
UA3EKJ
RA3ED
UA3ECX
RV3EF

Мини-чат

Погода


Наш опрос
Каким видом радиосвязи вас чаще всего можно услышать в эфире?
Всего ответов: 261

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Форма входа
Логин:
Пароль:

Корзина
Ваша корзина пуста

Куплю/продам

[13.02.2012]
продам (1)
[19.12.2011]
icom R6 (0)
[16.10.2011]
Усилитель мощности на ГС31/ ГС35 (3)
[11.10.2011]
Нужны микросхемы (1)
[22.05.2011]
Рубрика технической взаимопомощи (2)

Фото

Праздники

Ваш IP
Узнай свой IP адрес

Главная » 2017 » Октябрь » 4 » Разработка и реализация велоспидометра своими руками
16:03
Разработка и реализация велоспидометра своими руками

Разработка и реализация велоспидометра своими руками

Ещё 5 лет назад у меня была идея разработать и сконструировать велоспидометр (велокомпьютер) на базе дисплея и корпуса от известного мобильного телефона NOKIA 3310.

 

 

Изучив документацию на дисплей, я осознал, что сложности в программировании не будет. Дисплей очень простой с точки зрения работы с ним на программном уровне.

К написанию программы я приступил два года назад. За основу устройства был выбран распространённый микроконтроллер ATMega8. На этапе написания программы я не прибегал к использованию библиотек для работы с дисплеем. Все функции довольно просты и реализуются самостоятельно. Меня принципиально интересовал именно не символьный, а графический дисплей, так как одной из моих функциональных задумок было отображение на дисплее графика (гистограммы) зависимости текущей скорости от расстояния. Данный функционал представляет немалый интерес и отсутствует в дешёвых велокомпьютерах.

В итоге, спустя месяцы, в сентябре 2015 года я изготовил то, что хотел.

 

 

 

 

Устройство считает обороты колеса, пересчитывая их на расстояние (как абсолютное, так и относительное), вычисляет с каждым оборотом скорость, отображает дату и время, максимальную и среднюю скорость, запоминает дату и время абсолютно-максимальной скорости, отображает график (как на фотографии выше). Кроме всего, устройство может работать с памятью ПЗУ для записи результатов измерения с дальнейшим просмотром их на компьютере. Также предусмотрена подстветка дисплея.

 


 

Принцип измерения скорости основывается на подсчёте периода оборота колеса, а расстояние вычисляется на основе измерения количества таких оборотов. Датчиком оборота служит геркон в совокупности с магнитом на спице колеса.

Для вывода символьной (численной) информации я применил два набора графических шрифтов. Первый набор, крупный 8X8, служит для вывода скорости, как основной информации. Второй набор, мелкий 3X5, – для остальной информации. Последний набор я нарисовал самостоятельно и преобразовал в числовые массивы по формулам с помощью Excel. Данные массивы подставляются в исходный код программы микроконтроллера.

 

Дизайн графики основного окна я продумывал, применяя также программу Excel для удобства фиксации координат и адресов пикселей. Учтено размещение графической информации по группам, состоящих из 8 строк, согласно большинству монохромных дисплеев, исходя из особенностей их управления. В дальнейшем для удобства убраны «незначащие нули» слева у длинных чисел.

 

 

В процессе эксплуатации устройства были выявлены небольшие недостатки, связанные с особенностями изготовления. Прежде всего – плохой контакт дисплея с контактными площадками печатной платы. В оригинальном мобильном телефоне контакты на плате позолоченные, и окисление отсутствует. В моём случае они просто лужёные.

Исходя из вышесказанного, было принято решение переделать устройство в другой корпус, а также переделать печатную плату, на которую дисплей будет припаиваться. Этим процессом я занялся совсем недавно. В результате получилась более устойчивая к работе конструкция.

 

 

 

Корпус для устройства я изготовил из куска оргстекла, толщиной 17 мм, на фрезерном станке ЧПУ. Для этого я предварительно набросал эскизы корпуса в той же программе SPlan, почти полностью не владея тематикой чертежей, САПР и т.д.

 

 

Данные наброски нужны для общего представления и получения координат опорных точек. На их основании пишется программа на станок ЧПУ, принимая во внимание общие принципы и последовательности фрезеровки. Программу ЧПУ я писал вручную в Excel, применяя функции автозаполнения на повторяющиеся операции.

 

 

 

Схема устройства представлена на рисунке ниже.

 

В центре схемы расположен микроконтроллер ATMega8. Схема питается от напряжения 5В через линейный регулятор VR1, на который я подаю 12В через пин 10 разъёма X1. К порту прерывания INT0 МК (пин 32) через пин 4 разъёма X1 подключается геркон (на схеме не отражён), являющийся датчиком оборота колеса. К произвольным портам (пины 28, 27, 23) подключены функциональные кнопки S1-S3. К SPI интерфейсу контроллера (пины 15-17) подключен дисплей IC2 и определённые пины разъёма X1 для перепрошивки. На этот же разъём зацеплен UART интерфейс (пины разъёма 2, 3) для пользовательского подключения к компьютеру, через который настраиваются дата и время на устройстве (пины МК 30-31, RX/TX). Дисплей к контроллеру подключен через делители на резисторах, служащие для снижения напряжения, ибо дисплей работает на напряжении 3.3 В. В дополнение, пины дисплея D/C (данные/команда), SCE (строб) и RES (сброс дисплея) подключены к произвольным портам МК PB2, PB1 и PB0 соответственно (пины 12-14). Питание дисплея осуществляется через диоды D1-D3 и резистор R5, которые служат для снижения напряжения с 5 до 3.3 В, избегая применения линейного регулятора. Кварц Cr1, тактирующий МК, номиналом 4.5 МГц выбран случайно, но обдуманно. Данный кварц можно часто встретить в автомагнитолах. В дальнейшем я нашёл и поставил кварц 4.433619 МГц, незначительно подкорректировав некоторые константы в исходном коде собственной программы. Все математические соображения имеют немалый объём, и поэтому здесь излагаться не будут. К порту МК PD3 (пин 1) подключен транзистор Q1, на который нагружены светодиоды подсветки дисплея. К порту МК PD4 (пин 2) подключен светодиод, который кратковременно мигает при прохождении магнита через геркон, индицируя вращение колеса. Шина I2C подключена к портам PC2-PC3 (пины 25-26) и для простоты реализована программно с применением соответствующей библиотеки. На шине подвешены ПЗУ (EEPROM) IC3 и часы реального времени (RTC) IC4. ПЗУ съёмное и цепляется на разъём X2, расположенный на дне устройства. Дополнительный порт контроллера PC1 (пин 24) служит для приёма импульсов с частотой 1 Гц с RTC, по которым обновляется время на дисплее. Батарейка Bat1 служит для энергосберегающей работы часов при отсутствии основного питания на устройстве.

Для копирования информации с ПЗУ в ПК применена известная схема, представленная на рисунке ниже. Программа для считывания и обработки информации написана мной самостоятельно с применением среды разработки Dev-Cpp и средств WinAPI для работы с последовательным портом.

 

Велоспидометр предусматривает подключение через последовательный интерфейс к компьютеру (к COM-порту через распространённую микросхему MAX232). Реализована программа для копирования текущей даты и времени с компьютера в устройство.

В качестве дополнительного функционала моего проекта я реализовал программу для работы с ПЗУ микроконтроллера, в которое хранятся данные шрифтов, сохраняются общий пробег, максимальная скорость и т.д. По своей сути, программа является той же программой для прошивки микроконтроллера. Я работаю с простейшим программатором «STK 200», подключенным к LPT порту компьютера, а точнее, с его аналогом, если его так можно назвать, ибо в простейшем случае программатор вовсе не содержит активных элементов. Фактически, МК по SPI интерфейсу подключается к определённым пинам LPT порта напрямую и работает, как ведомое устройство. Программа реализует протокол обмена данными с контроллером ATmega8, согласно его даташиту (стр. 237). Физический уровень SPI реализован путём управления регистрами LPT порта с применением известной динамической библиотеки «inpout32.dll». Программа предназначена для считывания, резервирования, записи, корректировки и восстановления из резервной копии хранящихся в ней данных. В дополнение к сказанному, программа может выводить полный дамп EEPROM контроллера в 512 Байт на экран.

Все вышеописанные программы консольные (без интерфейса) и работают через командную строку, что делает программирование значительно проще.


 

Просмотров: 155 | Добавил: RV3EEQ
Всего комментариев: 8
0
2  
Тёма, ты на Слете спрашивал, я теоретически могу тебя познакомить с директором обособленного подразделения Болид в Орле (Королев, Москва, охранные системы, контроллеры). На собеседование в МСК поедешь сам, удаленную работу из Ливен - обсудишь сам. ... В Орле есть еще на hh.ru - Либротех, и ООО "Разработка сложных систем", последняя , по-моему, мутная. Есть Меньшов на Протоне. И еще кто-то не помню. Так что - велкам - есть перспектива трудоустройства. Молодец! Не то что твой одноклассник, которого GM педалирует )))

0
1  
Видел эту конструкцию в живую, классная штука, мне понравилась !

0
3  
Размещал я эту статью следующим образом. Изначально я набирал текст в MS Word 2003, туда же вставлял картинки. Потом открыл в Google Chrome сайт ОЭФ - Добавить новость (Визуальный редактор по умолчанию). Скопировал всё содержимое из Word, нажал в редакторе "Вставить". Но вставился только текст, а вместо картинок - пустые поля. Я загрузил файл .doc на Google Документы, открыл его встроенным в сервис редактором (очень похож на Word, но онлайн в браузере), и только оттуда функция копирования с картинками на сайт ОЭФ в Визуальном редакторе заработала. Однако почему-то весь текст стал жирным, и я не смог убрать это. Чем сможешь помочь?

0
4  
Жирный текст задав в форматировании как-то не стандартно. При желании можно разобраться и найти ошибки. Но для экономии времени можно просто удалить форматирование и отформатировать заново, как тебе нужно. В редакторе есть кнопка "Удалить форматирование" (html-)

0
5  
Я так пробовал делать. Помогает, но после этой операции текст не укладывается в ширину экрана, выходя за её пределы. Нужно как-то в визуальном редакторе ограничить область документа по ширине. Подскажи пожалуйста.

0
6  
Какой у тебя браузер стоит ? Попробуй Мазилу или Гуглхром поставить.

0
7  
Google Chrome, как я уже писал выше. Дело не в браузере, а в форматировании текста.

0
8  
Доброго дня. Если дело не в браузере, то видимо остаются где-то части кода отвечающие за отображение текста.
Попробуй выделить весь текст или весь документ и убрать форматирование.
Расскажи, что получилось.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Мы в Контакте

R3E В Контакте
 


Наши соревнования

Соревнования Золотой Орел


Поиск

Время
MCK

Календарь
«  Октябрь 2017  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031

Архив записей

Дни рождения
Дни рождения в Ноябре :
 
Александр  RN3E (10.11)
Виктор  Никитин (27.11)
Виктор  RA3POV (27.11)
Владимир  R3EAU (31.11)
 
Поздравляем !!!

E-mail отправителя *:
ФИО, позывной, день рождения:

Друзья сайта
  • RK3EWW
  • Сайт Ливенских радиолюбителей
  • Полезные ссылки:
  • QRZ.RU
  • Сервер Кубанских Радиолюбителей
  • Союз радиолюбителей России
  • Российский УКВ портал

  • Форум

    Коментарии

    Поиск на QRZ.RU
    Поиск в российском Callbook'e:
    ON-LINE поиск предоставлен сервером QRZ.RU

    Известные сайты
    Сервер радиолюбителей России - схемы, документация,
 соревнования, дипломы, программы, форумы и многое другое!

    Сервер 

Кубанских радиолюбителей

    Российский УКВ портал

    R-Quad - 

радиолюбительские антенны


    РАДИОФАНАТ - 

сайт Николая Большакова

    Орловский регион
    Радиоклуб Орловский Эфир. Региональное общественное объединение

    Детская коллективная радиостанция. Орел



    Сайт Ливенских радиолюбителей

    Разместите наш баннер

    Регионы России

    Smolradio.ru -
Сайт Радиолюбителей Смоленщины

    Сайт радиолюбителей Тульской области

    Сервер Тамбовских Радиолюбителей



    Тульский областной радиоклуб




    Принципиальные схемы

    Радиоклуб Орловский Эфир © 2017Сайт управляется системой uCoz