Ödeme için MDB protokolünü kullanan bir atıştırmalık otomatı çalıştırmak için bir projeye atandım ve projeyi Pi Zero (Orange) kullanarak tamamladım.
9 bit donanım seri ve yazılım seri kütüphanelerini denedim ve Pi Zero'da zamanlama sorunları yaşadım. MDB'nin 9 bit seri iletişimi bir acı haline geldi. MDB protokolü, çevre birimlerinin seri iletişim zamanlaması için% 5 toleransa sahip olması gerektiğini, ancak farklı çevre satıcılarının MDB protokolüne uygun olmayan farklı toleranslara sahip olduğunu söylüyor. Seri iletişimi tamamladığınızı ancak farklı bir satıcının ödeme çevre birimini denediğinizi düşünüyorsanız, işe yaramaz. Bu yüzden MDB protokolü veri sayfasına güvenmeyin. Buggy satıcıları için MDB denetleyicisi uygulamaktan bıktım ve bıktım. Ayrıca, bazı çevre birimleri dahili önyükleme işlemleri sırasında uart pinlerinden aşırı akım miktarlarını boşaltabilir ve seri iletişim katmanınıza zarar verebilir. Yani, bir soyutlama kullansan iyi olur. Optokuplörler iyi ama yine de yapmam t Pi Zero kullanarak MDB seri iletişimini kullanmanızı öneririz. Daha iyi bir yol, bir AVR kullanarak orta katman yaklaşımı kullanmaktır.
Daha ziyade MDB iletişimi için Pi Zero'da Uart kullanarak MDB kullanımı, yoklama vb. İçin bir Atmega328 AVR kullandım. Atmega328, Yazılım Seri kütüphanesi kullanarak MDB çevre birimlerini kontrol eder ve donanım seri üzerinde Pi Zero'ya insan tarafından okunabilir veriler gönderir. Tüm elektronik şema, kaynaklar ve Pi Zero Armbian imajı, Otomat işlemleri için Python kodu burada mevcuttur:
http://eliverse.com/content/vendiverse/
Motorların kontrolü, ürün teslimat sensörleri, soğutucular ve karakter LCD ekranlar hakkında daha fazla bilgi için wiki sayfasını kontrol edebilirsiniz. Tam bir satış makinesi kontrolörü projesidir ve birkaç satış makinesi üreticisi tarafından kullanılmaktadır.