Прямо напротив дома открылся новый магазин фиксированных цен и, изучая ассортимент, была обнаружена интересная и очень дешевая железная дорога. Плюс в том, что рельсы и составы продают отдельно и за смешные 99-199 рублей. Следовательно, можно соорудить любой трек по всей квартире. Решено. Надо брать. Наборов рельс несколько в зависимости от длины трека. Лично встречал три. В больших есть перекрестки и стрелки. Поезда и вагоны тоже встречаются разные, но все на одной базе.
Через время пришла мысль - что, если эта дорога стала бы чуть умней? Идея возить баночку холодногопива сока от станции "Кухня" до станции "Диван". Зачем? Да чтоб было).
Итак, функционал:
Перевозка жестяной банки от станции к станции. Станции могут быть установлены в любой точке ж/д пути в любом количестве.
Внутренности
Вся электронная начинка находится внутри первого вагона (в моем случае был вагон с углем, но от набора к набору могут быть варианты). Там же, на дне, висит геркон, необходимый для распознавания станции.
Компоненты
При подаче питания контроллер ждет сигнала с кнопки к отправке поезда. Нажали - поехали до момента, когда геркон войдет в действие магнитного поля на следующей станции. Локомотив питается стандартным способом (две ААА батареи), при помощи MOS модуля подаем питание на мотор. Контроллер питается от Li-ion батареи из первого вагона.
Вагон под банку
Вагон напечатан на 3Д принтере. Тележки, сцепка взяты с разобранного второго вагона из набора. При транспорте 0.5 банки редуктор паровоза проскальзывает. С 0.33 справляется хорошо. На всякий приложу обе модели. Вагон 0.33 и вагон 0.5
Станция
Также напечатана на 3Д принтере и имеет в себе маленький неодимовый магнит, на который, собственно, геркон и реагирует. Модель тут.
Схема подключения
Код простой и незамысловатый.
Сравнивает состояние кнопки, геркона и в зависимости от этого решает что делать.
1.Ждет разрешения на отправку, не опираясь на геркон, т.е. поезду надо единожды уловить поле магнита для остановки. В первых тестах этого не было и мог проскочить остановку, потеряв магнитное поле из виду.
2.Ждет сигнала остановки
В планах переход на Wemos для реализации запуска с отдаленной станции без использования физической кнопки.
Хорошо бы научить поезд определять конкретные станции (с двумя станциями решается довольно просто - по геркону с каждой стороны, а вот с 3+ станциями идей пока нет).
Проект открыт для доработки и усовершенствований.
Спасибо за внимание!
Через время пришла мысль - что, если эта дорога стала бы чуть умней? Идея возить баночку холодного
Итак, функционал:
Перевозка жестяной банки от станции к станции. Станции могут быть установлены в любой точке ж/д пути в любом количестве.
Внутренности
Вся электронная начинка находится внутри первого вагона (в моем случае был вагон с углем, но от набора к набору могут быть варианты). Там же, на дне, висит геркон, необходимый для распознавания станции.
Компоненты
- Arduino nano
- Аккумулятор Li-Ion 1200 мАh
- Плата зарядки Li-Ion TP4056
- MOS модуль
- Геркон KY-021
- Сенсорная кнопка TTP223
- Поезд из FixPrice
При подаче питания контроллер ждет сигнала с кнопки к отправке поезда. Нажали - поехали до момента, когда геркон войдет в действие магнитного поля на следующей станции. Локомотив питается стандартным способом (две ААА батареи), при помощи MOS модуля подаем питание на мотор. Контроллер питается от Li-ion батареи из первого вагона.
Вагон под банку
Вагон напечатан на 3Д принтере. Тележки, сцепка взяты с разобранного второго вагона из набора. При транспорте 0.5 банки редуктор паровоза проскальзывает. С 0.33 справляется хорошо. На всякий приложу обе модели. Вагон 0.33 и вагон 0.5
Станция
Также напечатана на 3Д принтере и имеет в себе маленький неодимовый магнит, на который, собственно, геркон и реагирует. Модель тут.
Схема подключения
Код простой и незамысловатый.
Сравнивает состояние кнопки, геркона и в зависимости от этого решает что делать.
1.Ждет разрешения на отправку, не опираясь на геркон, т.е. поезду надо единожды уловить поле магнита для остановки. В первых тестах этого не было и мог проскочить остановку, потеряв магнитное поле из виду.
2.Ждет сигнала остановки
C++:
void setup()
{
Serial.begin(9600);
pinMode (2, OUTPUT); // реле
pinMode (3, INPUT); // кнопка
pinMode (4, INPUT_PULLUP); // геркон
pinMode (5, OUTPUT); //пищалка
tone(5, 2000, 500);
}
void loop()
{
Serial.print("d3\t\t");
Serial.println(digitalRead(3));
Serial.print("d4\t\t");
Serial.println(digitalRead(4));
Serial.print("d5\t\t");
Serial.println(digitalRead(5));
Serial.println("--------");
if (digitalRead(3) == LOW && digitalRead(4) == HIGH)
{
digitalWrite (2, HIGH);
}
else if (digitalRead(3) == LOW && digitalRead(4) == LOW)
{
digitalWrite (2, LOW);
}
else
{
delay (1000), tone(5, 2000, 500), delay (1000),
digitalWrite (2, HIGH), delay (1000);
}
}
В планах переход на Wemos для реализации запуска с отдаленной станции без использования физической кнопки.
Хорошо бы научить поезд определять конкретные станции (с двумя станциями решается довольно просто - по геркону с каждой стороны, а вот с 3+ станциями идей пока нет).
Проект открыт для доработки и усовершенствований.
Спасибо за внимание!