Tartalomjegyzék:

Automatikus kártyaelosztó: 7 lépés
Automatikus kártyaelosztó: 7 lépés

Videó: Automatikus kártyaelosztó: 7 lépés

Videó: Automatikus kártyaelosztó: 7 lépés
Videó: win7 autómatikus frissités kikapcsolása 2024, November
Anonim
Automatikus kártyaforgalmazó
Automatikus kártyaforgalmazó

Az intelligens kártya forgalmazót választottam első projektemnek, mert szeretek kártyázni. A legjobban nem szeretem a kártyaosztást. Emlékeznie kell minden játékra, hogy hány kártyát kap minden ember. Zavarba ejtő, ha sok kártyajátékot ismersz. A projektem segítséget nyújt azoknak az embereknek is, akiknek nehézségeik vannak a kártyák terjesztésével, mint például az idősek és a Parkinson -kórban szenvedők.

Kellékek

  • 1 Raspberry Pi (én egy Raspberry Pi 4 -et használtam)
  • SD kártya (16 GB ajánlott)
  • 1 kenyér darab Raspberry Pi-hez (T-darab)
  • 2 kenyérsütő
  • 1 Tápegység modul 5V és 3V3 kenyértáblához
  • 1 LCD kijelző
  • 1 potenciométer
  • 1 MPU6050 (gyorsulásmérő és giroszkóp)
  • 1 NPN tranzisztor
  • 1 PCF8574N I/O bővítő
  • 1 léptetőmotor
  • 1 ULN2003 törőlap a léptetőmotor vezérléséhez
  • 1 HC-SR04 ultrahangos érzékelő
  • 1 5V egyenáramú motor
  • 1 dióda
  • 6 470 Ohm ellenállás
  • 4 db 10K ohmos ellenállás
  • Elektromos vezeték mindenhez

Hasznos a készítés során:

  • Forrasztópáka
  • Forrasztó
  • Dremel vagy szúrófűrész (valami fa és abs műanyag vágásához)

Szoftver:

  • Gitt
  • MySQL munkaasztal
  • Win32 lemezképalkotó
  • Kódszerkesztő (a Visual Studio Code -ot javaslom)
  • WinSCP
  • Raspbian kép

1. lépés: A Rasperry Pi előkészítése

Először elő kell készítenünk a Raspberry Pi -t, mielőtt bármi mást tennénk. Mivel minden a Pi -n fog futni, ez a kártyaosztó egyik legfontosabb darabja.

Telepítés:

Töltse le a Raspbian képet a https://www.raspberrypi.org/downloads/raspberry-pi-os/ webhelyről

  1. Töltse le a ZIP-fájlt
  2. Bontsa ki a ZIP-fájlt, ahol könnyen megtalálhatja
  3. Nyissa meg a Win32 Disk Imager alkalmazást, és válassza ki a kibontott képet
  4. Válassza ki az SD -kártyát a legördülő menüből, és kattintson az írásra
  5. Az írás befejezése után bezárhatja a Win32 Disk Imager alkalmazást

Most még néhány dolgot el kell végeznünk, mielőtt csatlakoznánk a Pi -hez

  1. Keresse meg a rendszerindító mappát az SD -kártyán
  2. Nyissa meg a cmdline.txt fájlt
  3. Adja hozzá az „ip = 169.254.10.1” szót a szóközökkel elválasztott sor végéhez
  4. Mentse el és lépjen ki a fájlból
  5. Hozzon létre ugyanabban a könyvtárban egy ssh nevű fájlt, és távolítsa el a kiterjesztést (ez engedélyezi az ssh -t az első indításkor, hogy csatlakozhassunk a Pi -hez)
  6. Biztonságosan vegye ki az SD -kártyát, és tegye a Pi -be

Most csatlakozhatunk a Pi -hez:

  1. Fogja meg az Ethernet -kábelt, és helyezze be egyik végét a Pi -be, másik végét a számítógépbe
  2. Nyissa meg a Putty -t
  3. Írja be a 169.254.10.1 parancsot a Gazdagép neve mezőbe
  4. Győződjön meg arról, hogy az SSH van kiválasztva, és a port 22
  5. Kattintson a Megnyitás gombra
  6. Ha figyelmeztetést kap, folytathatja és figyelmen kívül hagyhatja
  7. A felhasználónév pi, a jelszó pedig málna

A szoftver konfigurálása és telepítése:

Nyissa meg a raspi-config parancsot a következő paranccsal:

sudo raspi-config

Válassza ki az ötödik opciót: Interfész opciók

Engedélyezze az SPI -t és az I2C -t

A 3. opcióban tiltsa le a következőket: Indítási lehetőségek:

  • Splash képernyő
  • Indításkor válassza a cli -t, és ne az asztalt

Wifi beállítás:

A Wifi hasznos a webhely könnyű navigálásához. Győződjön meg arról, hogy közel vannak a wifi hitelesítő adatokhoz.

A wifi beállításához néhány dologra szükségünk van:

Adja hozzá wifi -jét ezzel a paranccsal, és módosítsa az SSID -t és a JELSZÓT az Ön adataira:

sudo wpa_passphrase "SSID" "JELSZÓ" >> /etc/wpa_supplicant/wpa_supplicant.conf

A wifi újrakonfigurálásához hajtsa végre ezt a parancsot:

sudo wpa_cli

Válassza ki a megfelelő felületet:

wlan0 interfész

Konfigurálja újra a felületet:

konfigurálja újra

Ellenőrizze, hogy az újrakonfigurálás sikeres volt -e ezzel a paranccsal:

ip a

Ha lát egy IP-címet a wlan0 interfészen, akkor minden be van állítva.

Operációs rendszer frissítése

Frissítse az operációs rendszert a következő két paranccsal:

sudo apt frissítés

sudo apt teljes frissítés

A MariaDB beállítása:

Az Apache webszerver telepítése:

sudo apt install apache2 -y

A MariaDB szerver telepítése:

sudo apt install mariadb -server -y

Most újra kell indítanunk:

sudo újraindítás

Javasoljuk, hogy biztosítsa a MariaDB telepítését. Ezt a parancs futtatásával teheti meg:

sudo mysql_secure_installation

Először meg kell adnia az aktuális root jelszót, de az alapértelmezett telepítésben nincs, ezért nyomja meg az enter billentyűt.

Ezután megkérdezi, hogy szeretne -e root jelszót beállítani, írja be az y billentyűt. Ügyeljen arra, hogy emlékezzen a jelszóra!

  • Írja be az y gombot a névtelen felhasználók eltávolításához
  • Írja be az y billentyűt a root bejelentkezés távoli letiltásához
  • Írja be az y billentyűt a tesztadatbázisok eltávolításához és azok eléréséhez
  • Írja be az y gombot a privát jogosultságok újratöltéséhez

A MariaDB telepítésének biztonságosnak kell lennie!

Most létrehozhatunk egy új felhasználót:

Írja be a mysql shellt ezzel a paranccsal:

sudo mysql

Hozzon létre egy felhasználót a mysql felhasználónévvel és egy jelszóval (your_password) a következő parancsokkal:

hozzon létre mysql@localhost felhasználót, amelyet a 'your_password' azonosít;

adjon meg minden jogosultságot a *. * címen a mysql@localhost számára;

FLUSH PRIVILEGES;

Lépjen ki a mysql shellből ezzel a paranccsal:

kijárat;

Python csomagok:

A Python -ot már telepíteni kell, hacsak nem a Lite verziót választja:

sudo apt install python3-pip

Jó mennyiségű Python csomagra van szükségünk, mindegyiket a következő paranccsal telepítheti:

pip3 install mysql-connector-python flask-socketio flask-cors gevent gevent-websocket

Most újra kell indítanunk

sudo újraindítás

2. lépés: A Visual Studio Code és a MySQL Workbench beállítása

Csatlakozás a Pi -hez MySQL Workbench segítségével:

Nyissa meg a MySQL Workbench -t

Hozzon létre új kapcsolatot a Pi -vel a következő információkkal:

  • Kapcsolat neve: Raspi
  • Csatlakozási módszer: Standard TCP/IP SSH -n keresztül
  • SSH gazdagépnév: a Pi IP-címe

Ezzel a paranccsal kaphatja meg az IP-címet:

ip a

  • SSH felhasználónév: pi
  • MySQL gazdagépnév: 127.0.0.1
  • MySQL szerver port: 3306
  • Felhasználónév: mysql

Kattintson az OK gombra, és írja be a pi felhasználó jelszavát, majd írja be a mysql felhasználói jelszavát.

A Visual Studio kód beállítása:

Nyissa meg a Visual Studio Code -ot

Telepítse ezt a 2 bővítményt:

  • Távirányító - SSH
  • Távoli - SSH: A konfigurációs fájlok szerkesztése

Nyomja meg a Visual Studio F1 kódot, és írja be az ssh parancsot

Válassza a Távoli SSH lehetőséget: Új SSH -gazdagép hozzáadása

Töltse ki az ssh pi@IP-címet

A következő lépésben nyomja meg az enter billentyűt

A kapcsolat most létrejött a Pi -vel. Csatlakozhat a Pi -hez az F1 megnyomásával, és válassza a Csatlakozás a távoli gazdagéphez lehetőséget.

Adja meg a jelszót, hogy a Visual Studio Code hozzáférjen a Pi -hez.

Még egy dolog: Telepítse a Python kiterjesztést a távoli gépre, hogy könnyen futtassa és hibakeresést végezzen.

3. lépés: Fritzing diagram

Fritzing diagram
Fritzing diagram
Fritzing diagram
Fritzing diagram
Fritzing diagram
Fritzing diagram

Ebben a lépésben elmagyarázom az áramkört.

A fenti vázlatok Fritzing segítségével készültek.

DC motor:

Csatlakoztassa a GPIO 18 -at a kollektor bázisához, az npn tranzisztor középső csapjához. Csatlakoztassa a motor földjét a tranzisztor kollektorához, és a motor tápellátását 5 V -ra. Csatlakoztassa a tranzisztor földjét a földhöz. Csatlakoztassa a diódát a sorompóba a motor fölé, hogy megakadályozza, hogy az áram közvetlenül a tranzisztorba áramoljon.

Léptetőmotor:

Csatlakoztassa a léptetőmotort a vezérlőpulthoz. A vezérlőpanelen az egyik oldalon vannak 5V -os és földelő csatlakozók. A többi csap vezérlőcsap. Ezek a csapok szabályozzák a motor belsejében lévő mágneseket, hogy elfordulhassanak. Csatlakoztassa ezeket a csapokat a GPIO 12, 16, 20 és 21 -hez a Raspberry Pi -n.

HC-SR04 ultrahangos:

Ez az érzékelő hang segítségével 4,5 méteres távolságot képes mérni.

Csatlakoztassa a VCC csapot az 5V -hoz, a triggercsapot a GPIO 25 -höz, a visszhangcsapot 470 ohmos ellenállással a GPIO 24 -hez és a földet 470 ohmos ellenállással a földhöz.

MPU6050:

Csatlakoztassa a VCC csapot a 3V3 -hoz, a földet a földhöz, scl -t a Pi -n lévő scl -hez és az sda -t az Pi -hez. Ennek az érzékelőnek az I2C vezérlését használom. Bővebben itt olvashat róla. Íme egy alapvető magyarázat: A Pi a mester, az MPU6050 pedig a szolga. Az scl vonalon keresztül a Pi vezérli az időzítést, és az sda vonal adatküldésre szolgál a mestertől a slave -hez vagy a slave -től a masterhez. Csak a mester kezdeményezheti az adatátvitelt.

Fényfüggő ellenállás:

Az LDR helyes leolvasásához MCP3008 chipet használok. Ez biztosítja, hogy az ldr leolvasása stabil és helyesen legyen konvertálva analógból digitális jelekké.

Csatlakoztassa a 3V3 -at az ldr egyik oldalához 10K ohmos ellenállással. Az ldr és az ellenállás között csatlakoztasson egy vezetéket az MCP3008 0 csatornájához. Ezután csatlakoztassa az ldr másik oldalát a talajhoz.

LCD kijelzö:

Az LCD kijelzőt PCF8574 nélkül is használhatja, de mivel a Pi GPIO csapjai korlátozottak, PCF8574 -et használok néhány GPIO tű mentésére. Használhat műszakregisztert is, de én a PCF8574 -et részesítem előnyben. A PCF8574 -et az SMbus protokollal vezérelheti, de saját osztályt írtam a vezérléséhez. A potenciométer szabályozza a kontrasztot.

LCD kijelző csapok:

  • VSS a földre
  • VDD - 5V
  • V0 a potenciométer változó csapjához
  • RS a GPIO 13 -hoz
  • R/W földelni, mert csak a kijelzőre írok és nem olvasok
  • E - GPIO 19
  • A PCF DB0 -tól P0 -ig
  • DB1 - P1
  • DB2 - P2
  • DB3 - P3
  • DB4 - P4
  • DB5 - P5
  • DB6 - P6
  • DB7 - P7
  • LED+ 5V
  • LED- a földhöz

PCF8574 csapok:

  • A0 a földhöz
  • A1 a földre
  • A2 a földre
  • Földtől földig
  • VCC 5V -ig
  • SDA - GPIO 27
  • SCL - GPIO 22, 330 ohmos ellenállással

Lehet, hogy nem rendelkezik LED+ és LED- típusokkal, attól függően, hogy milyen típusú kijelzőt kapott. A LED+ és a LED- a háttérvilágítás.

Csatlakoztassa a potenciométer pozitív oldalát 5V -ra, a földet pedig a földre.

Ügyeljen arra, hogy felhúzó ellenállásokat használjon!

4. lépés: Kód a Githubon

Az összes szükséges kódot megtalálod a Githubomon.

Mappaprojekt1:

Ez a mappa tartalmazza a háttérrendszer összes kódját. A mappában a Klasses tartalmazza a hardver vezérlésére szolgáló összes osztályt.

A mappatárak 2 fájlt tartalmaznak: Database.py és DataRepository.py. A Database.py fenntartja a kapcsolatot az adatbázissal és kezeli a lekérdezéseket. A DataRepository.py tartalmazza a webhelyhez szükséges összes lekérdezést.

Az App.py a háttérrendszer fő fájlja. Ez a fájl automatikusan elindul, amikor a Pi elindul.

A Config.py néhány beállítást tartalmaz az adatbázishoz való csatlakozáshoz. Feltétlenül töltse ki ezeket a fájlokat saját adataival.

Ezt a mappát bárhol elhelyezheti a saját könyvtárában.

Mappa html:

Ez a mappa tartalmazza a webhely, a kezelőfelület összes fájlját.

  • A mappa tartalmazza a webhely elrendezéséhez szükséges fájlokat.
  • A Betűtípusok a webhelyen használt betűtípusokat tartalmazza.
  • A szkript tartalmazza az összes Javascript fájlt, hogy dinamikus legyen a webhely

Ennek a mappának a/var/www/html mappában kell lennie

Fájlt vagy mappát másolhat ezzel a paranccsal:

sudo mv/elérési út//aktuális/könyvtár/útvonal/célállomás/könyvtár

A böngészőben a webhely típusához való navigáláshoz az LCD-kijelzőn megjelenő IP-cím.

5. lépés: Normalizált adatbázis -struktúra

Normalizált adatbázis -szerkezet
Normalizált adatbázis -szerkezet

Ebben a lépésben importáljuk az adatbázist.

  1. Csatlakozzon Raspberry Pi készülékéhez a MySQL Workbench segítségével
  2. Kattintson a Szerver -> Adatok importálása elemre
  3. Válassza az Önálló fájl importálása lehetőséget
  4. A Github adatbázis-export mappájában van egy dump fájl, dump_project1.sql
  5. Keresse meg ezt a fájlt, és kattintson az importálás indítása gombra

Ez az. A Pi most hozzáférhet az adatbázishoz, ha rendelkezik a megfelelő információkkal.

6. lépés: A kártyaforgalmazó ügye

Ügy a Kártyaforgalmazó számára
Ügy a Kártyaforgalmazó számára
Ügy a Kártyaforgalmazó számára
Ügy a Kártyaforgalmazó számára
Ügy a Kártyaforgalmazó számára
Ügy a Kártyaforgalmazó számára

Ebben a lépésben elmagyarázom, hogy mit használtam a tokhoz, és hogyan szereltem fel mindent.

Ebben az esetben 2 ABS dobozt használtam:

- 265 x 185 x 95 mm

- 171 x 121 x 80 mm

A lyukakat, amelyeket a dobozokban csináltam

Lyuk az LCD kijelzőhöz, 3 lyuk a tápkábelekhez, egy a léptetőmotor, a DC motor és az ultrahangos érzékelő vezetékeihez.

A legkisebb dobozban lyukat készítettem a vezetékekhez az alkatrészekből és egy lyukat a kártyák áthaladásához. A tetején csináltam a legnagyobb lyukat, így játékkártyákat helyezhetsz a készülékbe.

Felszereltem az egyenáramú motort egy konzolral és néhány kétoldalas szalaggal. Készítettem egy fából készült táblát, amelyre a kártyákat fektettem, és egy lyukat a keréknek, hogy lőhessen egy kártyát.

Azért választottam az ABS műanyagot, mert könnyű, így a léptetőmotor könnyen el tudja forgatni. A fa nagyon nehéz lehet, és a léptetőmotornak problémái lehetnek ezzel. A lyukak kivágásához fémet használtam, fémhez és Dremelhez tervezett fúrószárral. A nagyobb lyukak kivágása sokkal több munkát igényelt, és a szúrófűrész jobb lenne.

7. lépés: Programozás szolgáltatásként

Nagyon hasznos, ha a kód a Pi indítása után kezdődik. Ehhez szolgáltatást fogunk nyújtani.

Hozzon létre egy új fájlt smartcard.service néven a következő paranccsal:

sudo nano /etc/systemd/system/smartcard.service

Ennek be kell mennie a fájlba:

[Mértékegység]

Leírás = Intelligens kártya háttérkép = After.net = többfelhasználós.cél A WorkingDirectory a mappa elérési útja, ahol a program található

Most megvan a saját intelligens kártyája!

Ajánlott: