Site Tools


Vending machine

Vending jest to szaro bura, a tak naprawdę jasnoniebieska maszyna, która dostarcza szczęśliwcom przebywającym w HS:

  • nawilżacze organizmu z wysoką dawką kofeiny,
  • przeżuwalne składniki węglowadanowo-tluszczowe oraz
  • dobrze schłodzone części elektroniczne.

Operatorzy tej pięknej maszyny (kluczo-posiadacze) to:

  • enleth
  • nuke
  • q3k
  • inf

Podgląd na przepływ funduszy: google.docs

Jeżeli jakimś dziwnym cudem Vending wyjdzie na plus to(jest parę groszy na plusie) zarobki zostaną przeznaczone na (do edycji):

  • opłaty za prąd elektryczny w HS
  • fajne projekty

Aktualni operatorzy nie czerpią korzyści majątkowych z obsługi maszyny, ale istniej hipotetyczna możliwość by członek HS zarobkował na przyniesionych przez siebie produktach.

Kontakt w sprawie zjedzonych monet, powiększenie asortymentu, itd: nuke@hackerspace.pl

TODO

  1. obsługa bitcoin (patrz niżej)
  2. obsługa kart NFC
  3. wzbogacenie asortymentu
  4. przekablowanie
  5. obsługa banknotów fiat (nuke: aczkolwiek niechętnie widziana)

Dane od Q3k:

Stos technologiczny w vendingu wygląda następująco

VMC (vending management controller) który przyszedł z vendingiem (Vega). Sflashowany polskim firmwarem przez janusza który tym handluje. Gdzieś się wala dump firmware'u który zrobiłem.

Wrzutnik monet MEI CashFlow ileśtam, kupiony osobno na Allegro za grosze. Robi złotówki, ale tak sobie. Ma port serwisowy, do którego wpięty jest jakiś drut ktory teraz wystaje przez wrzutnik. Niewiele wiadomo o protokole serwisowym.

VMC i wrzutnik gadają po magistrali MDB (skrót od Multi-Drop Bus), w jakiejś starej wersji. To jest standardowy protokół i warstwa fizyczna używana m. in. w vendingach i maszynach arkadowych i kasynach. Chyba multimaster, na pewno multislave, w zasadzie UART tylko że z a) nietypową warstwą fizyczną b) ciasnymi timingami na komunikacji c) 9 bitami danych. Jak się okazuje, nasz VMC robi MDB tylko… w odwrotnej polaryzacji.

Customowe PCB: https://code.hackerspace.pl/q3k/vending-interface-hardware/ . W zamierzeniu miało odwaracać polaryzację na we/wy VMC ażeby było to standardowe MDB (i się dogadało z wrzutnikiem), ale też miało móc się na tej magistrali odzywać STM32Fcoś, które na tym PCB siedzi. Nie wyszło mi coś, i nie jestem w stanie widzieć ruchu MDB na STM32 - albo błąd w projekcie, albo w wykonaniu, nie debugowałem. (Został wymieniony rezystor i działa) Ale dzięki niemu VMC i wrzutnik są w stanie się dogadać.

Do mojego PCB siedzi podpięty SBC Olinuxino z jakimś SAM9, 64MB RAMu i jakimś Linuxem. Miało w zamerzeniu służyć jako interfejs mojego PCB do świata. Dodatkowo, jest podpiętych para rzeczy debugowych - RPi i programator JTAG, które miały mi pozwolić flashować STMa w trakcie działania vendingu. Ethernet od RPi wystaje sobie też przez wrzutnik wrzutnik, tak samo jak interfejs debugowy.(aktualnie wyjęte)

Stan na 2017/01/14

informatic usiadł i dostarczył. vuko debugował martwy tor nadawczy (również złe rezystory), Olinuxino znikło, pojawiło się raspi z jumperami z UART_RX/UART_TX wpiętymi do odpowiednio GPIO 4 i 17. Wszystko oparte jest na kawałku pythona z zaimplementowanym mdb. Do obsługi MDB/9-bit UART używane jest pigpiod. Działa niespodziewanie dobrze. Transakcje na adres BTC ustawiony w konfiguracji softu (w tym momencie adres pod kontrolą infa) są konwertowne na złotówki po aktualnym kursie BTC. Multivend jest w tym momencie wyłączony, więc jakiekolwiek nadmiary zostają w środku… (i prawdopodobnie służą do pokrycia wahań kursu).

Webówka z listą przykładowych produktów/cen i qrkodami dostępna na: http://vending.waw.hackerspace.pl/.

Zakupy w BTC są logowane wraz z hashem transakcji, kwotą, wartością produktu i numerem produktu. There is no privacy in the amazing world of bitcoin. Dodatkowo (bardzo na około) wykrywane są eventy wrzucenia monety oraz wydania produktu przy użyciu płatności fiatem. To wszystko logowane jest do spejsowego prometheusa, z (docelowo) ładnymi grafami w grafanie.

Po kod proszę bić na NICKNAME at hackerspace dot pl.

TODO v2

  • Nowy zaprojektowany adapter board. Możliwe że z STM32F1 + USB CDC-ACM (support w sofcie bitvend już jest :)), ewentualnie jakiś inny protokół.
  • Możliwość nadawania na linii master-to-slave oraz słuchania slave-to-master. (double the octocouplers)
projects/vending.txt · Last modified: 2017/11/03 22:17 by mpts