Skip to content

sergomor/mdb-arduino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ MDB устройств Π½Π° Π±Π°Π·Π΅ Arduino UNO

Код основан на https://github.com/justintconroy/MdbBillValidator

ОписаниС

ΠšΡƒΠΏΡŽΡ€ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈ/ΠΈΠ»ΠΈ ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ согласования ΠΊ HardwareSerial Arduino. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ постоянно ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ MDB устройства ΠΈ транслируСт события Π² ΠΏΠΎΡ€Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ serial Π² Π²ΠΈΠ΄Π΅ тСкстовых сообщСний, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ этот.

Когда происходит ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ событиС Π² MDB устройствС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, принята ΠΌΠΎΠ½Π΅Ρ‚Π°), ΠΈΠ· SoftwareSerial ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ##12#10* - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΠΎΠ½Π΅Ρ‚Ρƒ Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π² 10Ρ€. ΠΈΠ»ΠΈ ##13#100* - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΡƒΠΏΡŽΡ€Ρƒ Π² 100Ρ€.

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ управляСм устройствами, посылая ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² SofwareSerial Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ##100#1* - ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ, ##100#2* - ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΡƒΠΏΡŽΡ€ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ, ##110#35* - Π²Ρ‹Π΄Π°Ρ‚ΡŒ сдачи 35Ρ€. ΠΈ Ρ‚.Π΄.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ осущСствляСтся согласно схСмС doc/MDB_interface.pdf ΠΊ HardwareSerial ΠΏΠΎΡ€Ρ‚Ρƒ Arduino (ΠΏΠΈΠ½Ρ‹ 0 ΠΈ 1) ΠœΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ RX(0) ΠΈ TX(1) ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π²Ρ…ΠΎΠ΄Ρ‹/Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ Π½Π° стронС Arduino (Π² скобках ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΈΠ½ΠΎΠ²).

Π’Π°ΠΆΠ½ΠΎ! ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΊ устройствам Ρ€Π°Π·ΡŠΠ΅ΠΌ USB Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΎΡ‚ Arduino, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ USB эти ΠΏΠΈΠ½Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ‹ согласования. Π’Π°ΠΊ ΠΊΠ°ΠΊ USB ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΏΠΎΡ€Ρ‚ Arduino для связи с ПК, Ρ‡Ρ‚ΠΎ ΠΈ наш ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ для связи с MDB устройствами.

Для ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ (SoftwareSerial Π² Arduino). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΠΈΠ½Π°ΠΌ 10(RX) ΠΈ 11(TX). НомСра ΠΏΠΈΠ½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ libraries/mdb-bridge/link-data.h:

#define LINK_CONTROLLER_RX_PIN 10
#define LINK_CONTROLLER_TX_PIN 11

Π’Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 9600 Π±ΠΎΠ΄):

#define LINK_BAUD_RATE 9600

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов. Команда всСгда начинаСтся с символов ##, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ заканчиваСтся *

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Π²ΠΈΠ΄Π΅ Ρ†ΠΈΡ„Ρ€, Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² нСсколько, Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символом #. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: ##100#1* - инициализация ΠΊΡƒΠΏΡŽΡ€ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° (ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 100 ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½ΠΎΠΌΠ΅Ρ€ устройства).

Π’ Ρ„Π°ΠΉΠ»Π΅ libraries/mdb-bridge/mdb-commands.h описаны ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для устройства. Как ΠΈΡ… Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ:

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

#define MDB_CMD_RESET                    (MDB_CMD_OFFSET + 0),1

это сброс устройства (MDB_CMD_OFFSET = 100)

число послС запятой ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ reset для для ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°: ##100#2* (Π΅Π΅ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ сСссии) Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π° enable (MDB_CMD_ENABLE): ##104#2* (2 - это ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ, 1 - ΠΊΡƒΠΏΡŽΡ€ΠΎΠΏΡ€Π΅ΠΌΠ½ΠΈΠΊ, 3 - Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»).

Устройства, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ Π½Π° сторонС ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°.

НапримСр, Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ##108* ΠΌΠΎΠ½Π΅Ρ‚Ρ€ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ состояниС Ρ‚Ρ€ΡƒΠ±ΠΎΠΊ (MDB_ANS_CHANGER_TUBE_STATUS) с восСмью ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Если ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΏΡ€Π΅ΠΌΠ½ΠΈΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΠΌΠΎΠ½Π΅Ρ‚Ρƒ, Ρ‚ΠΎ ΠΎΠ½ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ Π² ΠΏΠΎΡ€Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ##142#10*, Π³Π΄Π΅ 142 - это ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° (MDB_ANS_CHANGER_COIN_ACCEPTED), Π° 10 - Π½ΠΎΠΌΠΈΠ½Π°Π» ΠΌΠΎΠ½Π΅Ρ‚Ρ‹.

Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡƒΠΏΡŽΡ€ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈ ΠΌΠΎΠ½Π΅Ρ‚ΠΎΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ. Cashless Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π² ΠΊΠΎΠ΄Π΅ присутсвуСт ΠΊΠ°ΠΊ Π±ΠΎΠ»Π²Π°Π½ΠΊΠ°.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ минимальноС ΠΊΠΎΠ»-Π²ΠΎ количСство ΠΊΠΎΠΌΠΌΠ°Π½Π΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ для эксплуаатации ΠΊΠΎΠ΄ придСтся Π΄ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ Π²Π°ΠΌ самим.

Π‘ΠΊΠ΅Ρ‚Ρ‡ для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π² Ρ„Π°ΠΉΠ»Π΅ mdb-controller/mdb-controller.ino

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ mdb-client/mdb-client.ino (запускаСтся Π½Π° Π²ΠΎΡ‚ΠΎΡ€ΠΉ arduino которая ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· SofwareSerail).

About

MDB controller based on Arduino UNO board

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published