Как подключить mdb к arduino
Перейти к содержимому

Как подключить mdb к arduino

  • автор:

Как работать с mdb на Arduino?

Всем привет! Хочу сделать простенькую телеметрию для вендингового автомата. Готовые решения не подходят, т.к. у них нет нужной мне функции. Решил сделать сам из ардуинки.
Аппарат работает по mdb. Т.е. подключил терминал к автомату по mdb и работай. Но я хочу поставить ардуино между аппаратом и терминалом, чтобы собирать нужную статистику и пр.

Вопрос: как работает mdb? Какие пины в ардуино используются для подключения? Как один и тот же терминал может работать с разными автоматами от разных производителей? У всех одни и те же команды или что?
В интернете к сожалению не смог найти ничего стоящего или же там все для тех, кто шарит в этой теме.
Мне не нужно готовое решение. Лишь небольшие подсказки или кусочек простенького кода для старта

  • Вопрос задан 07 дек. 2023
  • 118 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 1

Поиск в гугле по запросу «mdb protocol» даёт вполне адекватные результаты. В том числе первой строкой интересная статья на хабре: https://habr.com/ru/articles/704646/ Запрос «mdb protocol arduino» тоже богат результатами.
Это что касается самого протокола и использования его с ардуино. Примеров навалом!
Что касается конкретно желаемого устройства, тут несколько сложнее. Чаще людей интересует либо создание управляющего устройства, либо управляемого. А Вам ни то ни другое, а какой-то «сниффер» нужен. Возможно найти готовый пример будет сложнее (я не пробовал). Скорее всего придётся начинать «шарить в этой теме».

Ответ написан 07 дек. 2023
rinaz22 @rinaz22 Автор вопроса

Управлять терминалом я умею, вопрос к автомату. Как можно дать понять автомату, что оплата прошла и можно начать?
И как уже упомянул в теме, как один терминал может универсально управлять разными автоматами? Получается везде одинаковые команды?

rinaz22, Вот как раз по приведённой ссылке и написано, что совсем не одинаковые. И далеко не все устройства могут совместно работать. Почитайте!

Arduino.ru

Необходимо настроить взаимодействие между arduino и mdb-протоколом.

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

Втр, 31/03/2015 — 11:47
Зарегистрирован: 31.03.2015

Я занимаюсь вендинговым бизнесом и хочу заменить в оригинальный микроконтроллер вендингового автомата на свой собственный. Для работы с mdb периферией я планирую использовать mdb протокол.

Соответсвенно, интересует налаживание взаимодействия между arduino mega и mdb-периферией (купюроприёмник и монетоприёмник). К сожалению, я не специалист в разработке на arduino.

Готовые исходники (впрочем, не работающие у меня), имеются в наличии:
https://github.com/asiniy/MdbBillValidator

Соответственно, необходимо сделать так, чтобы arduino мог посылать команды в купюро- и монето-приёмники, отправляемые в него из серийного терминала на компьютере.

Контактные данные: [email protected] Александр

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

Arduino для автоматизации снекового автомата

Arduino для автоматизации снекового автомата
Уважаемый lehha — автор проекта автоматизации кофейного автомата при помощи контроллера Arduino, снова радует нас очередным вендинговым проектом.
На этот раз, автоматизации подвергается подержанный снековый автомат (продающий чипсы/воду/шоколадки и т.п.)

Подробности реализации проекта можно прочитать в авторской статье на хабре — Arduino в снековом автомате.
Здесь же, выделим только основные моменты:
* для проекта используется Arduino Mega
Arduino для автоматизации снекового автомата

на фото — контроллер Arduino Mega, макетная плата с транзисторами и разъемами для подключения и макетная плата с разъемами для клавиатуры выбора товаров и дисплея.

* к контроллеру подключаются:
— драйверы 23-х мотор-редукторов (на 12В), осуществляющих выдачу товаров.

На валу редуктора стоит микрик, который реагирует на полный оборот и подсоединена стальная пружина, в витки которой вкладывается товар. При полном обороте товар сдвигается и самый первый снек выпадает в ящик для выдачи.

— клавиатура (используется обычная матричная схема 6х3 (напряжение считывается через 3 аналоговых входа))
— дисплей (четыре 8-сегментных светодиодных индикатора)
— купюроприёмник и монетоприемник (работают по протоколу MDB

MDB (Multi-Drop Bus) — несколько «модифицированный» Serial-протокол: 8 бит данных + бит четности, указывающий направление передачи. Важный момент — задержка между командой и ответом не должна превышать 5 ms, иначе — timeout.
Выход – использовался сторонний модуль C-MDB, выдающий нужные данные по обычному com-порту.

— для удобства контроля, анализа и кондополнительных фишек — в автомат установлен ПК c Linux-ом на борту, к USB-порту которого и подключен контроллер Arduino.

на ПК реализованы:
* веб-интерфейс (логи, учётом товара, денег и т.д.);
* общение с модулем платёжек (демон на PHP);
* доступ через Интернет (на месте установки есть проводной Интернет с выделенным IP, проброс порта – веб-интерфейс и ssh доступны даже с мобильника);
* веб-камера внутренностей автомата;
* аудио сопровождение и подсказки (планируется).

похоже, пора заводить проект VendingDuino ��

Подключение монетоприемника к Arduino

Монетоприемник CH-926

Есть идея создать робота-бармена, делающего коктейли, понимающего голосовые команды. В статье рассмотрено создание блока приема денег, из монетоприемника и Arduino. Блок осуществляет прием монет (и в перспективе купюр) и отправляет данные о номинале принятой монеты по последовательному порту. Вывод результата осуществляется на дисплей WH1602. Монетоприемник CH-926 может принять до 6 видов различных монет, диаметром: 15мм ~ 32мм, толщиной 1.2mm ~ 3.8mm. Рабочее напряжение 12В.
Выходной сигнал: импульсный. Частота импульсов устанавливается с помощью трехпозиционного переключателя — fast: 20 мс,medium: 50 мс, slow: 100 мс
На eBay можно по цене приблизительно 800 руб. Настройка монетоприемника Включить питание, установить переключатель 1 в позицию NC, переключателем 2 — выбрать нужную скорость обмена (fast, medium, slow)
Нажать одновременно кнопки ADD и MINUS более 3 секунд, отпустить , на индикаторе появится A;
Нажать и отпустить кнопку SET, появится E;
Кнопками ADD, MINUS установить кол-во разных монет для приема (1-6) — я установил 5 — (50 коп,1,2,5,10 руб)
Нажать кнопку SET более 3 секунд
Появилась на дисплее H1 — кол-во экземпляров монеты 1 для калибровки
Кнопками ADD, MINUS установить значение H для первой монеты
Нажать кнопку SET более 3 секунд
Появилась на дисплее P1 — кол-во выдаваемых импульсов при успешном приеме монеты 1 (1-50)
Кнопками ADD, MINUS установить значение импульсов для первой монеты (я выбирал 1 для первой, 2 — для второй, . 5 — для пятой)
Нажать кнопку SET более 3 секунд
Появилась на дисплее F1 -точность опознания монеты 1 (1-30) — я выбирал 10
Кнопками ADD, MINUS установить значение F для первой монеты
Нажать кнопку SET более 3 секунд
Повторить для H2-6, P2-6, F2-6
Появится A
Нажать и отпустить кнопку SET, появится E;
Теперь выключаем-включаем монетоприемник

Калибровка монетоприемника Нажать кнопку SET более 3 секунд
Появилась на дисплее A1 — начинаем опускать в монетоприемник монеты номинала 1 в количестве H1
По загрузке последней монеты начинает мигать A1
Нажать кнопку SET — появится A2
Повторить загрузку монет для номиналов 2-5
Нажать кнопку SET более 3 секунд
Теперь выключаем-включаем монетоприемник
Монетоприемник готов к приему монет. Можем опускать монеты, на дисплее высвечивается количество импульсов. Если монеты какого-то номинала не проходят — повторяем настройку сначала. Подключение к Arduino Монетоприемник оснащен кабелем

Подсоединяем красный к 12В, черный к «земле», белый к D3 платы Arduino. Ловить импульсы будем по прерыванию 1. Подсоединим к Arduino дисплей WH1602, где будет отражаться информация по накопительной сумме. Схема получается следующей: Вот скетч для Arduino. Вывод результатов приема монет осуществляется на дисплей WH1602. В первой строке — текущая принятая монета, во второй — накопленная сумма. Прерывание 0 — для подключения в будущем купюроприемника IC V7. // купюроприемник IC A7 V7 const int moneyPin1=2; // монетоприемник CH-926 const int moneyPin2=3; int pulse1=0; int pulse2=0; unsigned long timeAllPulse1=2000; // макс. время приема купюры unsigned long timeAllPulse2=1000; // макс. время приема монеты unsigned long timeCount1=0; unsigned long timeCount2=0; float nominals2[6]=; float sum=0.0; // дисплей WH1602 #include «LiquidCrystal.h» LiquidCrystal lcd(12,11,7,6,5,4); void setup() < Serial.begin(9600); pinMode(moneyPin1,INPUT); pinMode(moneyPin2,INPUT); //attachInterrupt(0,count_pulse,FALLING); attachInterrupt(1,count_pulse2,FALLING); lcd.begin(16,2); lcd.clear(); lcd.setCursor(0,0); lcd.print("coin ok!"); >void loop() < // прошло максимальное время приема монеты? if(pulse2>0 && (millis()-timeCount2)>timeAllPulse2) < sum+=nominals2[pulse2]; Serial.println(nominals2[pulse2]); lcd.clear(); lcd.setCursor(0,0);lcd.print("1="); lcd.setCursor(2,0);lcd.print(nominals2[pulse2]); lcd.setCursor(0,1);lcd.print("* article-video">

Прикрепленные файлы:
  • coin2.zip (1 Кб)
Теги:

victoruni Опубликована: 01.07.2013 Изменена: 08.07.2014 0 2

Вознаградить Я собрал 0 0

Оценить статью

  • Техническая грамотность

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *