Me asignaron un proyecto para ejecutar una máquina expendedora de bocadillos que utiliza el protocolo MDB para el pago y he completado el proyecto con Pi Zero (naranja).
He intentado bibliotecas de serie de hardware y software de 9 bits y tuve problemas de sincronización en Pi Zero. La comunicación serial de 9 bits de MDB se convirtió en una molestia. El protocolo MDB dice que los periféricos deben tener un% 5 de tolerancia para el tiempo de comunicación en serie, sin embargo, los diferentes proveedores de periféricos tienen diferentes tolerancias, no cumplen con el protocolo MDB. Cuando cree que ha logrado la comunicación en serie pero prueba con un periférico de pago de otro proveedor, simplemente no funciona. Por lo tanto, no confíe en la hoja de datos del protocolo MDB. Me cansé y cansé de implementar el controlador MDB para vendedores con errores. Además, algunos periféricos pueden drenar cantidades excesivas de corriente de los pines uart durante su proceso de arranque interno y pueden dañar su capa de comunicación en serie. Entonces, es mejor que uses una abstracción. Los optoacopladores están bien, pero aún así no lo haría No recomiendo manejar la comunicación serial MDB usando Pi Zero. La mejor manera es usar un enfoque de capa media usando un AVR.
En lugar de usar Uart en Pi Zero para la comunicación MDB, utilicé un AVR Atmega328 para el manejo, sondeo, etc. de Atmga328. Atmega328 controla los periféricos MDB usando la biblioteca de serie de software y envía datos legibles por humanos a Pi Zero en serie de hardware. Todos los esquemas electrónicos, las fuentes y la imagen Pi Zero Armbian, el código Python para las operaciones de Vending están disponibles aquí:
http://eliverse.com/content/vendiverse/
Puede consultar la página wiki para obtener más detalles sobre el control de motores, sensores de entrega de productos, refrigeradores y pantallas LCD de caracteres. Es un proyecto completo de controlador de máquinas expendedoras y está siendo utilizado por un par de productores de máquinas expendedoras.