Игровой аркадный автомат на платформе Ардуино (вопросы)
- Войдите на сайт для отправки комментариев
Сгорел у нас на работе вот такой автомат - http://yugis.su/automat/27-dragon-punch/. Игровой автомат - силомер. Логика довольно простая - при закидывании монеты в монетоприемник срабатывает концевик, программа опускает грушу с помощью электромагнита для удара. После удара по груше, она ударяется о платформу на которой закреплен фотодатчик (платой управления регистрируется время затемнения датчика и этим вычисляется сила удара). После срабатывания датчика: если сила удара была меньше последнего рекорда - игра кончается, если же больше, то дается призовая игра. После окончания работы второй тяговый электромагнит подтягивает грушу в гнездо, пряса от удара. На большом дисплее показывается количество очков. Так же после ударов и во время простоя звучит музыка.
Плату отремонтировать нереально, там неизвестный тип ППЗУ с неизвестной программой, фирма изготовитель ремонтом не занимается, предлагая купить новый автомат (400.000 рублей!!!), поэтому, полистав интернет, остановились на платформе Ардуино, как на наиболее вероятной для замены всей логики-электроники.
И возникли следующие вопросы:
1 - можно ли подключить фотодатчик на Ардуино, чтобы потом его запрограммировать на подсчет времени затемнения и, исходя из этого, дальнейший выбор нужной инструкции?
2- можно ли управлять с помощью Ардуино большим 7 сегментным светодиодным дисплеем?
3 - как реализовать управление электромагнитами?
4 - какую плату Ардуино выбрать для этих задач ?
5 - можно ли как - то реализовать звуковое сопровождение, например, есть 5 мелодий и чтобы программно в нужное время их включать?
Подскажите, пожалуйста, нужное направление. Что нужно купить, чтобы начать изучение.
...
И возникли следующие вопросы:
1 - можно ли подключить фотодатчик на Ардуино, чтобы потом его запрограммировать на подсчет времени затемнения и, исходя из этого, дальнейший выбор нужной инструкции?
2- можно ли управлять с помощью Ардуино большим 7 сегментным светодиодным дисплеем?
3 - как реализовать управление электромагнитами?
4 - какую плату Ардуино выбрать для этих задач ?
5 - можно ли как - то реализовать звуковое сопровождение, например, есть 5 мелодий и чтобы программно в нужное время их включать?
Подскажите, пожалуйста, нужное направление. Что нужно купить, чтобы начать изучение.
1. - Можно. Нужно больше информации для конкретики.
2. - Да, можно. Проще всего на Дарлингтонах, если диоды не сверхмощные.
3. Скорее всего у вас все реализовано (вряд ли эта часть аппарата сгорела), просто нужно подавать сигнал в силовую цепь. Если нужно с нуля - или электромагнитное реле или H-bridge. Если есть человек влюбленный в паяльник - можно собрать схему на полевиках.
4. Nano. Задача простая - ресурсов хватит, а возможность прямой пайки к плате увеличит надежность. Наличие ЮСБ упростит прошивку.
5. Да, можно.
P.S. Вы уверены, что датчик реагирует на время затемнения? Если честно - слабо представляю себе логику работы. Хотя, если там очень чувствительная система...
1. - Можно. Нужно больше информации для конкретики.
Вот фото датчика - первое фото - это пластина, перекрывающая во время удара датчик - внизу, а второе фото - наверху. Получается, программа считаем время прожиждения платины через датчик. То есть это должно выглядеть так:
- фиксация времени начала прохождения пластины
- фиксация времени окончания пластины
- подсчет времени прохождения пластины ( то есть общее время затемнения датчика )
Причем, когда пластина идет обратно, программа считать уже не должна. Время прохождения пластины - десятые доли секунды.
2. - Да, можно. Проще всего на Дарлингтонах, если диоды не сверхмощные.
Там три четырехсегментных индикатора, оказывается. Со своими контроллерами на плате. Но физически можно контроллеры отключить и подсоединить напрямую к led - индикаторам. Диоды яркие, питание на них - 24 вольта.
3. Скорее всего у вас все реализовано (вряд ли эта часть аппарата сгорела), просто нужно подавать сигнал в силовую цепь. Если нужно с нуля - или электромагнитное реле или H-bridge. Если есть человек влюбленный в паяльник - можно собрать схему на полевиках.
Вообще, эта часть да, работает. Но не проблема собрать ключи управления либо на транзисторах, либо на микросхеме.
4. Nano. Задача простая - ресурсов хватит, а возможность прямой пайки к плате увеличит надежность. Наличие ЮСБ упростит прошивку.
Да, планируется именно пайка. Автомат стоит на открытом воздухе.
5. Да, можно.
А как? Я видел где то модули плееров мп3 с флеш картой в которых есть, допустим, 5 цифровых входов и один аудиовыход. При подаче логического 1 на один из входов плеера проигрывается соответствующая номеру контакта мелодия, которая на флешке. Вот только не помню, где их видел, вроде на алиеэкспресс.
http://www.aliexpress.com/snapshot/6705830325.html?orderId=67554866552265
Вот фото датчика - первое фото - это пластина, перекрывающая во время удара датчик - внизу, а второе фото - наверху. Получается, программа считаем время прожиждения платины через датчик. То есть это должно выглядеть так:
- фиксация времени начала прохождения пластины
- фиксация времени окончания пластины
- подсчет времени прохождения пластины ( то есть общее время затемнения датчика )
Причем, когда пластина идет обратно, программа считать уже не должна. Время прохождения пластины - десятые доли секунды.
Ну если так - то все просто. Главное оставить возможность подстройки.
Там три четырехсегментных индикатора, оказывается. Со своими контроллерами на плате. Но физически можно контроллеры отключить и подсоединить напрямую к led - индикаторам. Диоды яркие, питание на них - 24 вольта.
на контроллерах есть опознавательные знаки?
А как? Я видел где то модули плееров мп3 с флеш картой в которых есть, допустим, 5 цифровых входов и один аудиовыход. При подаче логического 1 на один из входов плеера проигрывается соответствующая номеру контакта мелодия, которая на флешке. Вот только не помню, где их видел, вроде на алиеэкспресс.
Модуль, предложенный вам выше. У него есть режим эмуляции мп3-плеера (кнопки Play, Stop, Pouse и т.д.), но интересней использовать его возможности прямого проигрывания файлов. Только нужно учитывать, что он не все карточки понимает - не больше 2 Гб., а их сейчас не просто найти. Ножет последние реализации и не имеют этого ограничения.
Вот фото датчика - первое фото - это пластина, перекрывающая во время удара датчик - внизу, а второе фото - наверху. Получается, программа считаем время прожиждения платины через датчик. То есть это должно выглядеть так:
- фиксация времени начала прохождения пластины
- фиксация времени окончания пластины
- подсчет времени прохождения пластины ( то есть общее время затемнения датчика )
Причем, когда пластина идет обратно, программа считать уже не должна. Время прохождения пластины - десятые доли секунды.
Ну если так - то все просто. Главное оставить возможность подстройки.
Там три четырехсегментных индикатора, оказывается. Со своими контроллерами на плате. Но физически можно контроллеры отключить и подсоединить напрямую к led - индикаторам. Диоды яркие, питание на них - 24 вольта.
на контроллерах есть опознавательные знаки?
А как? Я видел где то модули плееров мп3 с флеш картой в которых есть, допустим, 5 цифровых входов и один аудиовыход. При подаче логического 1 на один из входов плеера проигрывается соответствующая номеру контакта мелодия, которая на флешке. Вот только не помню, где их видел, вроде на алиеэкспресс.
Модуль, предложенный вам выше. У него есть режим эмуляции мп3-плеера (кнопки Play, Stop, Pouse и т.д.), но интересней использовать его возможности прямого проигрывания файлов. Только нужно учитывать, что он не все карточки понимает - не больше 2 Гб., а их сейчас не просто найти. Ножет последние реализации и не имеют этого ограничения.
Заказал модули Мп 3 и плату Уно плюс датчики. Остается вопрос по индикаторам. Вон наша плата - можно ли её как то приспособить под управление системой Ардуино?
Номера микросхем:
- TD 62783 APG - драйвер вакуумных индикаторов
- MC 14094 BCP - регистры сдвига счетчика 8-bit, 3-18 V
- CD 4050 - шесть преобразователей уровня МОП-ТТЛ
Блок питания для всего этого есть, есть ли возможность подключения напрямую в плату Уно?
TD 62783 APG - драйвер вакуумных индикаторов
на УНО можно , если точно есть такие индикаторы , указанные выше
TD 62783 APG - драйвер вакуумных индикаторов
на УНО можно , если точно есть такие индикаторы , указанные выше
Там уже стоят и индикаторы и микросхемы - скорее всего там схема с динамической индикацией, ибо катоды всех индикаторов выведены в отдельную группу и уходят с платы индикации на микросхему ПЗУ.
Разьемы - CN1 - это катоды индикаторов.
CN2 - входы сегментов. Точнее разьем идет на CD 4050, там преобразуется в более мощный сингал и поступает на MC 14094 BCP а после на драйверы.
если все есть то все просто, как минимум индикация
если все есть то все просто, как минимум индикация
Не пойму что делать с катодами. Как реализовать подключение к ардуино .
а в чем проблема? высокое напряжение или ток?
а в чем проблема? высокое напряжение или ток?
схема подключения - не разобрался.
я не угадаю. нужна схема фото
я не угадаю. нужна схема фото
Спасибо за отклик, с индикаторами разобрались - там была применена схема динамической индикации.
Сейчас работаем с помощью библиотеки Ледконтрол.
возникли вопросы по ней, не подскажете русский мануал по этой библиотеке?
Теперь проблема в следующем:
У нас стоит оптопара, которая при затемнении посылает логический 1 на вход ардуино.
Нам нужно вычислить время нахождения входа в состоянии логического один и в зависимости от этого выводить по формуле цифры на табло.
Не знаем даже, куда ткнуться, чтобы почитать. Читаем сейчас всё подряд - но не находим что то такой функции или подобного(((...
при поступлении с датчика освещённости HIGH запоминаем текущее абсолютное время в системе контроллера в переменную
unsigned long timeON = millis();
boolean temno = 1;
или
boolean svetlo = 1; ( смотря что вам нужно )
в любое время после этого получаем время относительно выставления датчиком HIGH
if ( temno )
{
unsigned long timeONdelta = millis() - timeON; // timeONdelta - миллисекунды
}
далее - "в зависимости от этого timeONdelta выводить по формуле цифры на табло"
при поступлении с датчика освещённости LOW
boolean temno = 0;
...кататак :)
int switchPin = 5;
unsigned long timeON = millis();
void setup()
{
pinMode(switchPin, INPUT);
digitalWrite(switchPin, HIGH);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(switchPin) == LOW)
{
unsigned long timeONdelta = millis() - timeON;
Serial.print("Time: ");
Serial.println(timeONdelta);
}
if (digitalRead(switchPin) == HIGH)
{
unsigned long timeONdelta = millis() - timeON;
Serial.print("Time 2: ");
Serial.println(timeONdelta);
}
}
Собрал вот такой код - меняет значения как бешеный, при нажатии кнопки то же самое, только с "Time 2". Как можно сделать так, чтобы код второго условия включался только после того, как выполнится первое?
в первом условии поднять флаг , второе условие обрабатывать по этому флагу ( и опустить его после обработки условия )
смотри #14.....
"свернуть" код !!!!
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Спасибо большое.
Наткнулся на вот такой код - это то, что надо. На мониторе порта выводит время между импульсами. Как теперь вывести это дело на 4 разрядный семсегментный индикатор на микросхеме MAX7219. Подскажите библиотеку, пожалуйста.
29 строка в прерывании лишняя
Но тогда нужно альтернативу в виде светодиодных индикаторов, иначе как мы узнаем значения времени?
в лупе отправляй
а погуглить?
https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-...
в лупе отправляй
А это как?
Спасибо за ссылку, нашел библиотеку, делаю вот такой код - пытаюсь загрузить в ардуино, выдает ошибку, причем если последнюю строчку убрать - то все грузится и работает счетчик до 9, а с помощью else я хочу обнулить счетчик на ноль
почему не работает else?
это XP у тебя стоит? - почему не 95-я, как у всех продвинутых ползателей?
Пффффф....реальные труЪные кодеры пишут в 3.11, под ДОСом или запускают на АВРке линух и пишут там! но только в редакторе nano)
Компилят асм вручную и знают таблицы машинных слов всех АВРок.
Заливают прошивку кнопками.
Питают от батареи из кокоса или силой пальца.
Но к теме это не относится)
это XP у тебя стоит? - почему не 95-я, как у всех продвинутых ползателей?
Инсталлятор не могу найти...
Можете по теме что нибудь посоветовать?
это XP у тебя стоит? - почему не 95-я, как у всех продвинутых ползателей?
Инсталлятор не могу найти...
Можете по теме что нибудь посоветовать?
скачай
http://arduino.cc/download.php?f=/arduino-1.0.6-windows.zip
или
http://arduino.googlecode.com/files/arduino-1.0.5-r2-windows.zip
и забудь о новых версиях софта
---Спасибо за ссылку - всё работает, до кучи установил вин 7 на всякий случай)
Здравствуйте .нужна помощь у меня в аппарате всегда одно и тоже очков покзивает 1230 как бы не быть