지불을 위해 MDB 프로토콜을 사용하는 스낵 자판기를 운영하는 프로젝트가 할당되었고 Pi Zero (주황색)를 사용하여 프로젝트를 완료했습니다.
9 비트 하드웨어 직렬 및 소프트웨어 직렬 라이브러리를 시도했지만 Pi Zero에서 타이밍 문제가있었습니다. MDB의 9 비트 직렬 통신은 어려움이되었습니다. MDB 프로토콜에 따르면 주변 장치는 직렬 통신 타이밍에 대해 5 %의 허용 오차를 가져야하지만 MDB 프로토콜과 호환되지 않는 다른 주변 장치 공급 업체의 허용 오차는 서로 다릅니다. 직렬 통신을 달성했다고 생각하지만 다른 공급 업체의 지불 주변 장치를 사용하려고하면 작동하지 않습니다. 따라서 MDB 프로토콜 데이터 시트에 의존하지 마십시오. 버그가 많은 공급 업체를 위해 MDB 컨트롤러를 구현하는 데 지쳤습니다. 또한 일부 주변 장치는 내부 부팅 프로세스 중에 uart 핀에서 과도한 전류를 방출하여 직렬 통신 계층을 손상시킬 수 있습니다. 따라서 추상화를 사용하는 것이 좋습니다. 광 커플러는 괜찮지 만 여전히 Pi Zero를 사용한 MDB 직렬 통신 처리를 권장하지 않습니다. 더 좋은 방법은 AVR을 사용하여 중간 계층 접근 방식을 사용하는 것입니다.
MDB 통신을 위해 Pi Zero에서 Uart를 사용하는 대신 MDB 처리, 폴링 등에 Atmega328 AVR을 사용했습니다. Atmega328은 소프트웨어 직렬 라이브러리를 사용하여 MDB 주변 장치를 제어하고 사람이 읽을 수있는 데이터를 하드웨어 직렬의 Pi Zero로 보냅니다. 모든 전자 구성표, 소스 및 자동 판매기 작업을위한 Pi Zero Armbian 이미지, Python 코드는 다음에서 사용할 수 있습니다.
http://eliverse.com/content/vendiverse/
모터, 제품 전달 센서, 냉각기 및 문자 LCD 디스플레이 제어에 대한 자세한 내용은 Wiki 페이지를 확인할 수 있습니다. 완전한 자동 판매기 컨트롤러 프로젝트이며 자동 판매기 생산 업체에서 사용하고 있습니다.