Велосипедний спідометр на Arduino

Представляю проект велоспидометра, який дозволяє слідкувати за швидкістю їзди на велосипеді за допомогою Arduino. Для вимірювання швидкості обертання одного колеса використовується магнітний вимикач (також званий геркон). Контролер Arduino розраховує швидкість і виводить цю інформацію на ЖК-дисплей, закріплений на кермі. Пристрій сумісний з будь-яким велосипедом/колесом, необхідно лише ввести радіус колеса в прошивку для калібрування.

Велосипедний спидометр на Arduino

Список деталей:
(1x) Arduino Uno REV 3.
(1x) Геркон.
(1x) 10КОм 0.25Вт резистор.
(1x) Батарея 9В.
(1x) Роз'єми для 9В батареї.
(1x) Макетна плата.
(1x) ЖК-дисплей з підсвіткою Parallax 27977-RT.
(x2) Тумблер.
(2x) BLS штифти.
(1x) BLS роз'єми.

Додаткові матеріали:
Провід №22.
Пайка.
Наждак.
Фанера.
Столярний клей.
Термоклей.
Гвинти.
Кабельні стяжки.

Схема велосипедного спидометра на Arduino

Принципова схема

На схемі є три тумблера:
- перший на лінії живлення 9В.
- другий для вмикання і вимикання підсвітки ЖК-дисплея.
- і один магнітний вимикач (так званий геркон), який замикається кожного разу, коли колесо здійснює один повний оберт.

Parallex LCD підключається до Arduino за допомогою лише трьох контактів: 5В, GND і послідовного цифрового виходу (TX) – 1 контакт Arduino.

Резистори 10 кОм підключені до геркона і вимикача підсвітки для уникнення надмірного струму між 5В і GND Arduino.

Припаяйте на макетну плату три лінії BLS штифтів, як показано на фотографії, для підключення Arduino.

BLS штифти

Геркон

Магнітний вимикач складається з двох частин: геркона і магніта. У геркона є контакти, які механічно замикаються всередині нього при наближенні магніта.

Геркон

Припаяйте токообмежувальний 10кОм резистор між A0 і GND на макетній платі. Припаяйте довгі проводи до А0 і 5В – вони будуть проведені по велосипеду і підключені до геркона.

Установка геркона на колесо

Встановіть магніт і геркон на ваш велосипед за допомогою ізоляційної стрічки (підходить будь-яке колесо). Як видно на фотографії, магніт встановлений на одну з спиць колеса, геркон на раму велосипеда. Тобто кожного разу, коли колесо робить повний оберт, магніт проходить повз геркона, замикаючи його. Підключіть до геркона проводи, раніше припаяні до плати. Геркон неполярний, тому як його підключати - не має значення.

Установка геркона

Використовуйте код, наведений нижче, для перевірки. Коли магніт на колесі проходитиме повз геркона, Arduino буде видавати значення ~1023, в іншому випадку значення буде ~0. Відкрийте Serial Monitor (монітор послідовного порту) (Tools >> Serial Monitor) в Arduino IDE, щоб перевірити це. Якщо магніт не впливає на геркон, спробуйте переставити його або використовувати більш потужний.

#define reed A0	//Номер пина, до якого підключений геркон

int reedVal;

void setup(){
  Serial.begin(9600);
}

void loop(){
  reedVal = analogRead(reed);	// читаємо значення A0
  Serial.println(reedVal);		// виводимо в Serial Monitor
  delay(10);					// пауза 10 мс
}

Прошейте Arduino. Увімкніть Serial Monitor (монітор послідовного порту). Він повинен показувати 0.00. Почніть крутити колесо, і ви побачите швидкість миль/год, що змінюється щосекунди.

ЖК-дисплей

Я використовував ЖК-дисплей з послідовним інтерфейсом.
Припаяйте лінію BLS роз'ємів на зворотну сторону (з контактами) макетної плати. Три роз'єми будуть використовуватися для підключення ЖК-дисплея. ЖК-дисплей добре встане в ці роз'єми.

Підключіть 5В, GND, і TX (1 цифровий вихід Arduino) від Arduino до роз'єму дисплея. Дивіться на підпис виводів ЖК-дисплея, щоб зробити все правильно.

ЖК-дисплей

В нижній частині ЖК-дисплея Parallax є два перемикача і потенціометр. Потенціометром контролюється контрастність дисплея. Для правильної роботи перемикачі повинні бути встановлені, як на фотографії.

Зворотна сторона ЖК-дисплея

Для тестування ЖК-дисплея використовуйте наступний код. Чомусь на моєму ЖК-дисплеї починають з'являтися випадкові символи під час прошивки, але вони зникають після того, як я пере підключаю USB-кабель. Я думаю, що це є перешкодою при зв'язку Arduino з комп'ютером через 1 цифровий контакт (TX) під час прошивки.

При увімкненні на ЖК-дисплеї повинна відображатися напис "Hello World".

void setup() {
  Serial.begin(9600);
  pinMode(1,OUTPUT);	// TX-лінія
  
  Serial.write(12);		// Очищаємо
  Serial.write("Hello World");	// Вивід надписи
}

void loop() {
}

Підключіть тумблер, як показано на фотографії. Припаяйте резистор 10 кОм і зелений провід до одного контакту, а червоний провід до іншого.

Підключення тумблера

Підключіть червоний провід до 5В Arduino і до GND через резистор, а зелений провід до D2.

Програма

Прошейте Arduino скетчем, який ви можете завантажити внизу статті. Переконайтесь, що підсвітка вмикається і вимикається, а швидкість відображається правильно. (Можливо, вам доведеться перепідключити Arduino для коректної роботи).

Виміряйте радіус коліс (в дюймах) і вставте його в рядок: float radius = ""';

Я використовував переривання за таймером.  Для відображення швидкості в км/год необхідно внести коректування в програму.

Батарея

З'єднайте роз'єм для батареї і тумблер послідовно, як показано на фотографії. Підключіть червоний провід від вимикача до Vin Arduino, а чорний провід від роз'єму для батареї до GND Arduino.

Підключення тумблера батарейки

Корпус

Я вирізав корпус для свого проекту за допомогою  1/4" лазерного різака 120 Вт. Розміри корпусу 3,5"x4"x2". Я змоделював корпус в AutoCAD і зробив файли для лазерного різання (з шиповим з'єднанням) в Autodesk 123D Make. Потім я додав два отвори для тумблерів і прямокутне отвір для ЖК-дисплея. Також  додав кілька отворів в нижній частині корпусу для полегшення кріплення до велосипеда.

Корпус

Далі, склеїв корпус дерев'яним клеєм, і відшліфував краї. Закінчивши корпус, я покрив його лаком.

Корпус

Корпус

Установка компонентів в корпус

Закріпіть тумблери на корпусі за допомогою гайок. Приклейте або привинтіть ЖК-дисплей з внутрішньої сторони передньої панелі. Встановіть макетну плату, Arduino і батареї в корпусі і закріпіть на липучках або клеї.

Корпус

Оберніть проводи від геркона навколо рами, уникаючи рухомих частин велосипеда. Я використовував кабельні стяжки для кріплення спидометра до керма.

Корпус

Велосипедний спидометр на кермі велосипеда

Тепер ви можете виїжджати з цим спидометром, однак при русі не відволікайтеся від дороги!

Оригінал статті

Прикреплені файли:
Top