Sisällysluettelo:

Automaattinen kortinjakelija: 7 vaihetta
Automaattinen kortinjakelija: 7 vaihetta

Video: Automaattinen kortinjakelija: 7 vaihetta

Video: Automaattinen kortinjakelija: 7 vaihetta
Video: Kortinjakaja.wmv 2024, Marraskuu
Anonim
Automaattinen kortinjakelija
Automaattinen kortinjakelija

Olen valinnut älykortin jakelijan ensimmäiseksi projektikseni, koska pidän pelaamisesta. Eniten en pidä korttien jakamisesta. Sinun on muistettava jokaisesta pelistä, kuinka monta korttia jokainen saa. Se hämmentää, kun tiedät paljon korttipelejä. Projektini auttaa myös ihmisiä, joilla on vaikeuksia jakaa kortteja, kuten vanhukset ja Parkinsonin tautia sairastavat ihmiset.

Tarvikkeet

  • 1 Vadelma Pi (käytin Raspberry Pi 4)
  • SD -kortti (suositus 16 Gt)
  • 1 Leipäleipä Raspberry Pi: lle (T-kappale)
  • 2 leipälautaa
  • 1 Virtalähdemoduuli leipälevylle, 5V ja 3V3
  • 1 LCD -näyttö
  • 1 Potentiometri
  • 1 MPU6050 (kiihtyvyysmittari ja gyroskooppi)
  • 1 NPN -transistori
  • 1 PCF8574N I/O -laajennin
  • 1 askelmoottori
  • 1 ULN2003 -katkaisulauta askelmoottorin ohjaamiseen
  • 1 HC-SR04-ultraäänianturi
  • 1 5V DC -moottorit
  • 1 diodia
  • 6470 ohmin vastukset
  • 4 10 K ohmin vastusta
  • Sähköjohto kaiken yhdistämiseen

Hyödyllinen valmistuksen aikana:

  • Juotin
  • Juottaa
  • Dremel- tai jig -saha (jotain puun ja abs -muovin leikkaamiseen)

Ohjelmisto:

  • Kitti
  • MySQL -työpöytä
  • Win32 levynkuvaus
  • Koodieditori (suosittelen Visual Studio Code)
  • WinSCP
  • Raspian kuva

Vaihe 1: Rasperry Pi: n valmistelu

Ensin meidän on valmisteltava Raspberry Pi ennen kuin teemme mitään muuta. Koska kaikki toimii Pi: llä, tämä on yksi kortinjakelijan tärkeimmistä osista.

Asennus:

Lataa Raspbian-kuva osoitteesta

  1. Lataa ZIP-tiedosto
  2. Pura ZIP-tiedosto, josta löydät sen helposti
  3. Avaa Win32 Disk Imager ja valitse purettu kuva
  4. Valitse SD -kortti avattavasta valikosta ja napsauta Kirjoita
  5. Kun kirjoitusprosessi on valmis, voit sulkea Win32 Disk Imager -ohjelman

Nyt meidän on tehtävä muutama asia ennen kuin voimme muodostaa yhteyden Pi: hen

  1. Siirry SD -kortin käynnistyskansioon
  2. Avaa tiedosto cmdline.txt
  3. Lisää 'ip = 169.254.10.1' rivin loppuun välilyönnillä erotettuna
  4. Tallenna ja sulje tiedosto
  5. Luo samaan hakemistoon tiedosto nimeltä ssh ja poista laajennus (tämä ottaa ssh: n käyttöön ensimmäisellä käynnistyksellä, jotta voimme muodostaa yhteyden Pi: hen)
  6. Poista SD -kortti turvallisesti ja aseta se Piin

Nyt voimme muodostaa yhteyden Pi: hen:

  1. Tartu Ethernet -kaapeliin ja työnnä toinen pää Pi: hen ja toinen pää tietokoneeseen
  2. Avaa Putty
  3. Kirjoita Isäntänimi -kenttään 169.254.10.1
  4. Varmista, että SSH on valittu ja portti on 22
  5. Napsauta Avaa
  6. Jos saat varoituksen, voit jatkaa ja sivuuttaa sen
  7. Käyttäjätunnus on pi ja salasana on vadelma

Ohjelmiston määritys ja asennus:

Avaa raspi-config seuraavalla komennolla:

sudo raspi-config

Valitse viides vaihtoehto: Liitäntävaihtoehdot

Ota SPI ja I2C käyttöön

Poista seuraavat asiat käytöstä kolmannesta vaihtoehdosta: Käynnistysvaihtoehdot:

  • Aloitusruutu
  • Valitse käynnistyksen yhteydessä cli eikä työpöytä

Wifi -asetukset:

Wifi on kätevä navigoida verkkosivustolle. Varmista, että wifi -tunnuksesi ovat lähellä.

Wifi -yhteyden määrittämiseksi tarvitsemme muutamia asioita:

Lisää wifi tämän komennon avulla ja vaihda SSID ja SALASANA tietoihisi:

sudo wpa_passphrase "SSID" "SALASANA" >> /etc/wpa_supplicant/wpa_supplicant.conf

Suorita tämä komento konfiguroidaksesi wifi uudelleen:

sudo wpa_cli

Valitse oikea käyttöliittymä:

käyttöliittymä wlan0

Määritä käyttöliittymä uudelleen:

määritä uudelleen

Tarkista, onko uudelleenkonfigurointi onnistunut tällä komennolla:

ip a

Jos näet IP-osoitteen wlan0-käyttöliittymässä, kaikki on asetettu.

Päivitetään käyttöjärjestelmää

Päivitä käyttöjärjestelmä seuraavilla kahdella komennolla:

sudo apt päivitys

sudo apt täysi päivitys

MariaDB: n käyttöönotto:

Apache -verkkopalvelimen asentaminen:

sudo apt install apache2 -y

MariaDB -palvelimen asentaminen:

sudo apt install mariadb -server -y

Nyt meidän on käynnistettävä uudelleen:

sudo uudelleenkäynnistys

On suositeltavaa suojata MariaDB -asennus. Voit tehdä sen suorittamalla tämän komennon:

sudo mysql_secure_installation

Ensin sinulta kysytään nykyistä pääsalasanaa, mutta oletusasennuksessa ei ole sitä, joten paina enter.

Seuraavaksi sinulta kysytään, haluatko asettaa pääsalasanan, kirjoita y. Varmista, että muistat salasanan!

  • Kirjoita y poistaaksesi nimettömiä käyttäjiä
  • Kirjoita y, jos haluat poistaa pääkäyttäjän kirjautumisen käytöstä etänä
  • Kirjoita y, jos haluat poistaa testitietokannat ja käyttää niitä
  • Syötä y ladataksesi etuoikeudet uudelleen

MariaDB -asennuksesi tulee olla suojattu!

Nyt voimme luoda uuden käyttäjän:

Anna mysql -kuori tällä komennolla:

sudo mysql

Luo käyttäjä käyttäjänimellä mysql ja salasanalla (your_password) seuraavilla komennoilla:

luo käyttäjä mysql@localhost, jonka tunniste on "your_password";

myöntää kaikki etuoikeudet *. * osoitteessa mysql@localhost;

Huuhteluoikeudet;

Poistu mysql -kuorista tällä komennolla:

poistua;

Python -paketit:

Python on jo asennettava, ellet valitse Lite -versiota:

sudo apt asentaa python3-pip

Tarvitsemme hyvän määrän Python -paketteja, voit asentaa ne kaikki seuraavalla komennolla:

pip3 asentaa mysql-liitin-python-pullo-socketio-pullo-cors gevent gevent-websocket

Nyt meidän on käynnistettävä uudelleen

sudo uudelleenkäynnistys

Vaihe 2: Visual Studio Coden ja MySQL Workbenchin asentaminen

Yhdistäminen Pi: hen MySQL Workbenchin avulla:

Avaa MySQL Workbench

Muodosta uusi yhteys Pi -laitteeseen seuraavien tietojen avulla:

  • Yhteyden nimi: Raspi
  • Yhteystapa: Vakio TCP/IP SSH: n kautta
  • SSH-isäntänimi: Pi: n IP-osoite

Voit saada IP-osoitteen tällä komennolla:

ip a

  • SSH Käyttäjätunnus: pi
  • MySQL -isäntänimi: 127.0.0.1
  • MySQL -palvelinportti: 3306
  • Käyttäjätunnus: mysql

Napsauta ok ja kirjoita käyttäjän pi salasana ja kirjoita sitten käyttäjän mysql: n salasana.

Visual Studio -koodin määrittäminen:

Avaa Visual Studio Code

Asenna nämä kaksi laajennusta:

  • Kaukosäädin - SSH
  • Etä - SSH: Asetustiedostojen muokkaaminen

Paina Visual Studio Code F1 ja kirjoita ssh

Valitse Etä SSH: Lisää uusi SSH -isäntä

Täytä ssh pi@IP-osoite

Paina seuraavassa vaiheessa enter

Yhteys on nyt muodostettu Pi: hen. Voit muodostaa yhteyden Pi -laitteeseen painamalla F1 -näppäintä ja valitsemalla Connect to Remote host.

Anna salasana, jotta Visual Studio Code voi käyttää Pi: tä.

Vielä yksi asia: Asenna Python -laajennus etäkoneeseen, jotta voit suorittaa koodin helposti ja korjata sen.

Vaihe 3: Fritzing -kaavio

Fritzing -kaavio
Fritzing -kaavio
Fritzing -kaavio
Fritzing -kaavio
Fritzing -kaavio
Fritzing -kaavio

Tässä vaiheessa selitän piirin.

Yllä olevat kaaviot on tehty Fritzingillä.

DC -moottori:

Liitä GPIO 18 keräimen pohjaan, npn -transistorin keskitappi. Kytke moottorin maa transistorin keräimeen ja moottorin teho 5 V. Liitä transistorin maa maadoitusjohtoon. Kytke diodi esteeseen moottorin päälle niin, että se estää kulun virtaamisen suoraan transistoriin.

Askelmoottori:

Liitä askelmoottori ohjauskorttiin. Ohjauskortilla on toisella puolella nastat 5V: n ja maan liittämiseksi. Muut tapit ovat ohjaustappeja. Nämä nastat ohjaavat moottorin sisällä olevia magneetteja, jotta se voi kääntyä. Liitä nämä nastat Raspberry Pi: n GPIO 12: een, 16: een, 20: een ja 21: een.

HC-SR04 Ultraääni:

Tämä anturi voi mitata etäisyyden noin 4,5 metriin äänen avulla.

Kytke VCC -nasta 5 V: iin, liipaisintappi GPIO 25: een, kaiutintappi, jonka vastus on 470 ohmia, GPIO 24: een ja maa 470 ohmin vastuksella maahan.

MPU6050:

Liitä VCC -nasta 3V3: een, maa maahan, scl Pi: n scl: ään ja sda sdaan Pi: ssä. Tämän anturin ohjaamiseen käytän I2C: tä. Voit lukea siitä lisää täältä. Tässä on perus selitys: Pi on isäntä ja MPU6050 on orja. Scl -linjan kautta Pi ohjaa ajoituksia ja sda -linjaa käytetään lähettämään tietoja isännältä orjalle tai orjalta isännälle. Vain isäntä voi aloittaa tiedonsiirron.

Valosta riippuvainen vastus:

Saadaksesi oikeat lukemat LDR: stä käytän MCP3008 -sirua. Tämä varmistaa, että ldr: n lukemat ovat vakaita ja oikein muunnettuna analogisista digitaalisiin signaaleihin.

Liitä 3V3 ldr: n toiselle puolelle, jonka välissä on 10 K ohmin vastus. Liitä ldr: n ja vastuksen välille johto MCP3008: n kanavaan 0. Liitä sitten ldr: n toinen puoli maahan.

LCD -näyttö:

Voit käyttää nestekidenäyttöä ilman PCF8574: tä, mutta koska Pi: n GPIO -nastat ovat rajalliset, käytän PCF8574: ää joidenkin GPIO -nastojen tallentamiseen. Voit myös käyttää vuororekisteriä, mutta mieluummin PCF8574. Voit ohjata PCF8574: ää SMbus -protokollalla, mutta kirjoitin oman luokan ohjaamaan sitä. Potentiometri säätää kontrastia.

LCD -näytön nastat:

  • VSS maahan
  • VDD - 5V
  • V0 potentiometrin muuttuvaan tappiin
  • Lähetä GPIO: lle 13
  • R/W maahan, koska kirjoitan vain näyttöön enkä lue
  • E - GPIO 19
  • PCF: n DB0 - P0
  • DB1 - P1
  • DB2 - P2
  • DB3 - P3
  • DB4 - P4
  • DB5 - P5
  • DB6 - P6
  • DB7 - P7
  • LED+ - 5V
  • LED- maahan

PCF8574 nastat:

  • A0 maahan
  • A1 maahan
  • A2 maahan
  • Maasta maahan
  • VCC - 5V
  • SDA - GPIO 27
  • SCL - GPIO 22, vastus 330 ohmia

Sinulla ei ehkä ole LED+ ja LED-- riippuen siitä, minkä tyyppinen näyttö sinulla on. LED+ ja LED- ovat taustavaloa varten.

Kytke potentiometrin positiivinen puoli 5 V: iin ja maa maahan.

Varmista, että käytät vetovoimia!

Vaihe 4: Koodi Githubissa

Löydät kaikki tarvittavat koodit Githubistani.

Kansioprojekti1:

Tämä kansio sisältää kaikki taustaohjelman koodit. Kansiossa Klasses ovat kaikki laitteiston hallintaluokat.

Kansiovarastot sisältävät 2 tiedostoa: Database.py ja DataRepository.py. Database.py ylläpitää yhteyttä tietokantaan ja käsittelee kyselyt. DataRepository.py sisältää kaikki sivustolle tarvittavat kyselyt.

App.py on taustaohjelman päätiedosto. Tämä tiedosto käynnistyy automaattisesti, kun Pi käynnistyy.

Config.py sisältää muutamia asetuksia, joiden avulla voit muodostaa yhteyden tietokantaan. Varmista, että täytät nämä tiedostot omilla tiedoillasi.

Voit sijoittaa tämän kansion mihin tahansa kotihakemistoosi.

Kansion html:

Tämä kansio sisältää kaikki sivuston, käyttöliittymän tiedostot.

  • Kansio sisältää sivuston ulkoasun tiedostot.
  • Fontit sisältää sivustolla käytetyt fontit.
  • Skripti sisältää kaikki Javascript -tiedostot, jotka tekevät sivustosta dynaamisen

Tämän kansion on oltava kansiossa/var/www/html

Voit kopioida tiedoston tai kansion tällä komennolla:

sudo mv/polku//nykyinen/hakemisto/polku/kohteeseen/kohde/hakemisto

Navigoidaksesi selaimesi sivustotyyppiin LCD-näytössä näkyvä IP-osoite.

Vaihe 5: Normalisoitu tietokantarakenne

Normalisoitu tietokantarakenne
Normalisoitu tietokantarakenne

Tässä vaiheessa tuomme tietokannan.

  1. Yhdistä Raspberry Pi -laitteeseesi MySQL Workbenchin avulla
  2. Napsauta Palvelin -> Tietojen tuonti
  3. Valitse Tuo itsenäinen tiedosto
  4. Githubin Database-export-kansiossa on sql-tiedosto dump_project1.sql
  5. Selaa tähän tiedostoon ja napsauta Aloita tuonti

Se siitä. Pi voi nyt käyttää tietokantaa, jos sillä on oikeat tiedot.

Vaihe 6: Kortin jakelijan kotelo

Kotelo kortinjakelijalle
Kotelo kortinjakelijalle
Kotelo kortinjakelijalle
Kotelo kortinjakelijalle
Kotelo kortinjakelijalle
Kotelo kortinjakelijalle

Tässä vaiheessa selitän mitä käytin koteloon ja miten asennin kaiken.

Kotelossa käytin 2 ABS -laatikkoa:

- 265 x 185 x 95 mm

- 171 x 121 x 80 mm

Reiät, jotka tein laatikoihin

Reikä nestekidenäyttöä varten, 3 reikää virtakaapeleille, yksi askelmoottorin, tasavirtamoottorin ja ultraäänianturin johtimille.

Pienimmässä laatikossa tein komponenteista reiän johtoille ja reiän korttien läpi. Yläosaan tein suurimman reiän, jotta voit asettaa pelikortit laitteeseen.

Asensin tasavirtamoottorin kiinnikkeellä ja kaksipuolisella teipillä. Tein puulevyn korttien asettamiseksi ja reikä pyörälle kortin ampumista varten.

Olen valinnut ABS -muovin, koska se on kevyt, joten askelmoottori voi kääntää sitä helposti. Puu voi olla todella raskasta ja askelmoottorilla voi olla ongelmia tämän kanssa. Reikien leikkaamiseen käytin poraa, jossa oli metallille tarkoitetut poranterät ja Dremel. Suurempien reikien leikkaaminen vei paljon enemmän työtä ja jig -saha olisi parempi.

Vaihe 7: Ohjelmoi palveluna

On todella hyödyllistä, että koodi alkaa Pi: n käynnistyksen jälkeen. Tätä varten aiomme tehdä palvelun.

Luo uusi tiedosto nimeltä smartcard.service seuraavalla komennolla:

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

Tämän täytyy mennä tiedostoon:

[Yksikkö]

Kuvaus = Älykortin taustaohjelma Jälkeen = network.target [Palvelu] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = peri StandardError = peri Uudelleenkäynnistys = aina Käyttäjä = pi [Asenna] WantedBy = usean käyttäjän.target WorkingDirectory on polku kansioon, jossa ohjelma sijaitsee

Nyt sinulla on oma älykortti!

Suositeltava: