Czy zastanawiałeś się kiedyś jak działają automaty na napoje/snaksy? W jaki sposób są zaprogramowane? A może chciałbyś sam zaprogramować taki automat? W tym poradniku otrzymasz odpowiedzi na te pytania!
Automaty vendingowe
Dobrze znane nam automaty sprzedające napoje, batony, mleko, pizzę 😉 to inaczej automaty vendingowe (z ang. „vending machine”). Umożliwiają one bezobsługową sprzedaż towarów w dowolnej chwili – 7 dni w tygodniu.
Jak działa automat vendingowy
Maszyna vendingowa jest urządzeniem mechaniczno-elektronicznym. Przykładem takiej maszyny jest automat spiralowy, w którym wydanie produktu następuje poprzez obrót sprężyny, powodując wypchnięcie produktu do komory zrzutowej – grawitacyjnie lub poprzez zwolnienie specjalnych drzwiczek. Elementy elektroniczne pozwalają na usprawnienie obsługi dzięki wyświetlaniu pomocnych komunikatów na alfanumerycznych wyświetlaczach, rozpoznawaniu monet, banknotów oraz wydawaniu reszty.
Automaty samosprzedające składają się z półek na produkty, systemu wydawania produktów i sieci przewodów łączących elementy mechaniczne i elektroniczne z płytą sterującą, zawierającą oprogramowanie urządzenia. Całość usytuowana jest w obudowie (zazwyczaj blaszanej lub metalowej).
Bardzo istotnym elementem automatu vendingowego jest system płatności. Jest to przykładowo wrzutnik monet, czytnik banknotów, czytnik kart itp. W Polsce najczęściej stosowane są wrzutniki monet. Są to mechaniczno-elektroniczne urządzenia służące do przyjmowania płatności bilonem – rozpoznają one monety, eliminują fałszywki i umożliwiają zakup za określoną kwotę.
Zadanie
Dzisiejszym zadaniem będzie właśnie napisanie oprogramowania automatu vendingowego. Z przyczyn praktycznych nie dostaniesz do rąk prawdziwego automatu, a jedynie jego wizualizację napisaną w HTML + JS. Archiwum do ściągnięcia: automat.
Archiwum zawiera pliki html, js, css i obrazki. Ty będziesz pracował jedynie z plikiem backend.js. Ten plik odpowiada za logikę automatu i wszystko to czego “nie widać”. Jeśli chcesz lepiej zrozumieć jak działa ten automat to możesz oczywiście zaglądać do innych plików, ale wszystkie potrzebne funkcje i informacje znajdziesz właśnie w backend.js.
Jakie są zasady?
Nie jest bardzo ściśle narzucone jak automat ma działać, ale pewne wskazówki, które mogą ci pomóc przy pisaniu oprogramowania:
- Automat musi działać sensownie, czyli tak jak by klient od niego tego oczekiwał
- Wykorzystaj wszystkie dostępne przyciski/funkcje
- Poprawnie wydawaj resztę. Zauważ, że w zadaniu portfel jest nieograniczony, ale automat ma ograniczoną liczbę monet, którymi może wydawać resztę. Jeśli reszty nie uda się wydać, trzeba to jakoś zakomunikować i zablokować działanie automatu aż do przyjścia serwisanta 🙂
- Wszystkie monety i ceny obsługiwane są w groszach, żeby uniknąć typu zmiennoprzecinkowego.
- Nie dopuść do sytuacji, żeby produkt spadł na inny produkt, który nie został jeszcze odebrany.
- Cennik ustalasz sam, ale musi być on łatwy do zmiany. Możesz np. na początku pliku zadeklarować zmienne określające ceny kawy, herbaty i snickersa.
Jak zacząć?
Początek jest zawsze najtrudniejszy, więc żeby lepiej zrozumieć jak wszystko działa najlepiej najpierw zmień info wywołując Automat.zmienInfo(“tekst”) w inizcjalizuj(). Zobacz też jak działa Automat.wyrzucMonete(moneta) wywołując ją w funkcji wrzuconaMoneta(moneta) – klikając na monety w portfelu wrzucasz monety do automatu.
Powodzenia!
[caldera_form id=”CF5996dae48f6a0″]

Mateusz Wrzecionko
Ukończyłem studia inżynierskie na kierunku "Automatyka i Robotyka". Interesuję się robotyką, programowaniem sterowników PLC oraz sportem - piłka nożna, snowboard, hokej :). W wolnym czasie lubię bawić się Arduino i spędzać czas z przyjaciółmi.