Fui designado a um projeto para executar uma máquina de venda automática de lanches que usa o protocolo MDB para pagamento e concluí o projeto usando Pi Zero (laranja).
Eu tentei bibliotecas seriais de hardware e software de 9 bits e tive problemas de temporização no Pi Zero. A comunicação serial de 9 bits do MDB se tornou uma dor. O protocolo MDB diz que os periféricos devem ter tolerância de% 5 para o tempo de comunicação serial, no entanto, diferentes fornecedores de periféricos têm tolerâncias diferentes, não compatíveis com o protocolo MDB. Quando você pensa que concluiu a comunicação serial, mas tenta um periférico de pagamento de outro fornecedor, simplesmente não funciona. Portanto, não confie na folha de dados do protocolo MDB. Fiquei cansado de implementar o controlador MDB para fornecedores de buggy. Além disso, alguns periféricos podem drenar quantidades excessivas de corrente dos pinos uart durante o processo de inicialização interna e podem danificar a camada de comunicação serial. Então, é melhor você usar uma abstração. Os acopladores ópticos estão bem, mas eu ainda não Recomenda o manuseio da comunicação serial MDB usando o Pi Zero. A melhor maneira é usar uma abordagem de camada intermediária usando um AVR.
Em vez de usar o Uart no Pi Zero para comunicação MDB, usei um AVR Atmega328 para manipulação, pesquisa etc. do MDB. O Atmega328 controla os periféricos do MDB usando a biblioteca Serial de Software e envia dados legíveis para o Pi Zero na série de hardware. Todo esquema eletrônico, fontes e imagem Pi Zero Armbian, código Python para operações de venda automática estão disponíveis aqui:
http://eliverse.com/content/vendiverse/
Você pode verificar a página da wiki para obter mais detalhes sobre o controle de motores, sensores de entrega de produtos, resfriadores e displays LCD de caracteres. É um projeto completo de controlador de máquina de venda automática e está sendo usado por alguns produtores de máquinas de venda automática.