Sisukord:

Automaatne kaardijaotus: 7 sammu
Automaatne kaardijaotus: 7 sammu

Video: Automaatne kaardijaotus: 7 sammu

Video: Automaatne kaardijaotus: 7 sammu
Video: Automaatne puulõhkuja 2024, November
Anonim
Automaatne kaardijaotus
Automaatne kaardijaotus

Olen oma esimeseks projektiks valinud kiipkaardi levitaja, sest mulle meeldib mängida kaardimängu. Kõige rohkem ei meeldi mulle kaartide jagamine. Iga mängu puhul tuleb meeles pidada, kui palju kaarte iga inimene saab. See tekitab segadust, kui teate palju kaardimänge. Minu projekt aitab ka inimesi, kellel on probleeme kaartide levitamisega, nagu vanemad inimesed ja Parkinsoni tõve all kannatavad inimesed.

Tarvikud

  • 1 Raspberry Pi (ma kasutasin Raspberry Pi 4)
  • SD -kaart (soovitatav 16 GB)
  • 1 leivaosa Raspberry Pi jaoks (T-tükk)
  • 2 leivaplaati
  • 1 Toiteallikamoodul leivaplaadile, 5V ja 3V3
  • 1 LCD ekraan
  • 1 potentsiomeeter
  • 1 MPU6050 (kiirendusmõõtur ja güroskoop)
  • 1 NPN transistor
  • 1 PCF8574N I/O laiendaja
  • 1 samm -mootor
  • 1 ULN2003 katkestusplaat samm -mootori juhtimiseks
  • 1 ultraheli andur HC-SR04
  • 1 5V alalisvoolumootorid
  • 1 diood
  • 6 470 oomi takistid
  • 4 10K oomi takistit
  • Elektrijuhe kõige ühendamiseks

Kasulik valmistamisel:

  • Jootekolb
  • Jootma
  • Dremeli või jigisaag (midagi puidu ja abs plastiku lõikamiseks)

Tarkvara:

  • Pahtel
  • MySQL töölaud
  • Win32 kettapildistaja
  • Koodiredaktor (soovitan Visual Studio koodi)
  • WinSCP
  • Raspian pilt

Samm: Rasperry Pi ettevalmistamine

Kõigepealt peame enne midagi muud ette valmistama Raspberry Pi. Kuna kõik hakkab pi toimima, on see üks kaardilevitaja kõige olulisemaid osi.

Paigaldamine:

Laadige Raspbiani pilt alla aadressilt

  1. Laadige alla ZIP-fail
  2. Eemaldage ZIP-fail, kust leiate selle hõlpsalt
  3. Avage Win32 Disk Imager ja valige ekstraheeritud pilt
  4. Valige rippmenüüst SD -kaart ja klõpsake nuppu kirjuta
  5. Kui kirjutamisprotsess on lõpule jõudnud, saate Win32 Disk Imager sulgeda

Nüüd peame enne Pi -ga ühenduse loomist veel mõned asjad ära tegema

  1. Liikuge SD -kaardi alglaadimiskausta
  2. Avage fail cmdline.txt
  3. Lisage tühikuga eraldatud rea lõppu „ip = 169.254.10.1”
  4. Salvestage ja väljuge failist
  5. Looge samas kataloogis fail nimega ssh ja eemaldage laiend (see lubab ssh esimesel käivitamisel, et saaksime Pi -ga ühenduse luua)
  6. Eemaldage SD -kaart turvaliselt ja pange see Pi -sse

Nüüd saame Pi -ga ühenduse luua:

  1. Haarake Etherneti kaabel ja sisestage üks ots pi ja teine ots arvutisse
  2. Avage Putty
  3. Sisestage väljale Hosti nimi 169.254.10.1
  4. Veenduge, et SSH on valitud ja port on 22
  5. Klõpsake nuppu Ava
  6. Kui saate hoiatuse, võite lihtsalt jätkata ja seda ignoreerida
  7. Kasutajanimi on pi ja parool on vaarikas

Tarkvara konfigureerimine ja installimine:

Avage raspi-config järgmise käsuga:

sudo raspi-config

Valige viies võimalus: liidesevalikud

Luba SPI ja I2C

3. valikus keelake järgmised asjad: Alglaadimisvalikud:

  • Pritsmeekraan
  • Valige käivitamiseks cli ja mitte töölaud

Wifi seadistamine:

Wifi on kasulik veebisaidile hõlpsaks navigeerimiseks. Veenduge, et teie WiFi -mandaat oleks lähedal.

Wifi seadistamiseks vajame mõnda asja:

Lisage oma wifi selle käsu abil ja muutke SSID ja PASSWORD oma andmeteks:

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

Wifi uuesti konfigureerimiseks täitke see käsk:

sudo wpa_cli

Valige õige liides:

liides wlan0

Liidese uuesti konfigureerimine:

uuesti seadistada

Selle käsuga kontrollige, kas ümberseadistamine õnnestus:

ip a

Kui näete wlan0 liidesel IP-aadressi, on kõik seadistatud.

Operatsioonisüsteemi värskendamine

Värskendage operatsioonisüsteemi nende kahe käsuga:

sudo apt värskendus

sudo apt täielik uuendamine

MariaDB seadistamine:

Apache veebiserveri installimine:

sudo apt install apache2 -y

MariaDB serveri installimine:

sudo apt install mariadb -server -y

Nüüd peame taaskäivitama:

sudo taaskäivitamine

Soovitatav on MariaDB installi turvalisus. Seda saate teha, käivitades selle käsu:

sudo mysql_secure_installation

Esmalt küsitakse teilt praegust juurparooli, kuid vaikimisi installimisel seda pole, nii et vajutage sisestusklahvi.

Järgmisena küsitakse teilt, kas soovite määrata juurparooli, tippige y. Veenduge, et mäletate parooli!

  • Anonüümsete kasutajate eemaldamiseks sisestage y
  • Sisestage y, et kaugjuurdepääsu keelata
  • Testandmebaaside eemaldamiseks ja sellele juurdepääsuks sisestage y
  • Privileegide uuesti laadimiseks sisestage y

Teie MariaDB install peaks olema turvaline!

Nüüd saame luua uue kasutaja:

Sisestage mysql shell selle käsuga:

sudo mysql

Looge kasutaja kasutajanimega mysql ja parooliga (teie_parool) järgmised käsud:

luua kasutaja mysql@localhost, mis on identifitseeritud 'your_password' abil;

anda kõik privileegid *. * aadressile mysql@localhost;

FLUSHI privileegid;

Väljuge mysql shellist selle käsuga:

väljumine;

Pythoni paketid:

Python tuleks juba installida, kui te ei valinud Lite versiooni:

sudo apt install python3-pip

Vajame palju Pythoni pakette, saate need kõik installida järgmise käsuga:

pip3 install mysql-konnektor-python-kolb-pistikupesa-kolvid-cors gevent gevent-websocket

Nüüd peame uuesti taaskäivitama

sudo taaskäivitamine

2. samm: Visual Studio koodi ja MySQL Workbenchi seadistamine

Pi -ga ühenduse loomine MySQL Workbenchi abil:

Avage MySQL Workbench

Looge Pi -ga uus ühendus järgmise teabe abil:

  • Ühenduse nimi: Raspi
  • Ühendusmeetod: standardne TCP/IP SSH kaudu
  • SSH hostinimi: Pi IP-aadress

IP-aadressi saate selle käsuga:

ip a

  • SSH kasutajanimi: pi
  • MySQL -i hostinimi: 127.0.0.1
  • MySQL serveri port: 3306
  • Kasutajanimi: mysql

Klõpsake nuppu OK ja sisestage kasutaja pi parool ning seejärel sisestage kasutaja mysql parool.

Visual Studio koodi seadistamine:

Avage Visual Studio kood

Installige need 2 laiendust:

  • Kaugjuhtimispult - SSH
  • Kaugjuhtimine - SSH: konfiguratsioonifailide redigeerimine

Vajutage Visual Studio koodi F1 ja sisestage ssh

Valige Kaug -SSH: lisage uus SSH -hosti

Sisestage ssh pi@IP-aadress

Järgmises etapis vajutage sisestusklahvi

Ühendus on nüüd loodud Pi -ga. Pi -ga saate ühenduse luua, vajutades klahvi F1 ja valides Ühenda kaughostiga.

Sisestage parool, et Visual Studio Code saaks juurdepääsu Pi -le.

Veel üks asi: installige Pythoni laiendus kaugarvutisse, et saaksite koodi hõlpsalt käivitada ja siluda.

3. samm: Fritzing diagramm

Fritzingu diagramm
Fritzingu diagramm
Fritzingu diagramm
Fritzingu diagramm
Fritzingu diagramm
Fritzingu diagramm

Selles etapis selgitan ahelat.

Ülaltoodud skeemid on tehtud Fritzingi abil.

Alalisvoolumootor:

Ühendage GPIO 18 kollektori alusega, npn -transistori keskmine tihvt. Ühendage mootori maandus transistorist kollektoriga ja mootori toide 5 V -ga. Ühendage transistori maandus maandusjuhtmega. Ühendage diood tõkkega üle mootori, nii et see blokeerib voolu voolamise otse transistorile.

Sammumootor:

Ühendage samm -mootor juhtpaneeliga. Juhtpaneelil on ühel küljel 5V ja maanduse ühendamiseks tihvtid. Teised tihvtid on kontrollnõelad. Need tihvtid juhivad mootori sees olevaid magneteid, nii et see saab pöörduda. Ühendage need tihvtid Raspberry Pi GPIO 12, 16, 20 ja 21 -ga.

Ultraheli HC-SR04:

See andur suudab heli abil mõõta kaugust umbes 4,5 meetrini.

Ühendage VCC tihvt 5 V -ga, päästiku tihvt GPIO 25 -ga, 470 oomi takistiga kajapinge GPIO 24 -ga ja maandus 470 oomi takistiga maapinnaga.

MPU6050:

Ühendage VCC tihvt 3V3 -ga, maapind maapinnaga, scl Pi -s oleva scl -iga ja sda sda -ga Pi -l. Selle anduri puhul kasutan selle juhtimiseks I2C -d. Selle kohta saate rohkem lugeda siit. Siin on põhiline seletus: Pi on kapten ja MPU6050 on ori. Pi kontrollib scl -liini kaudu ajastusi ja sda -rida kasutatakse andmete saatmiseks kaptenilt orjale või orjast kaptenile. Andmeedastust saab algatada ainult kapten.

Valgusõltuv takisti:

LDR -i õigete näitude saamiseks kasutan MCP3008 kiipi. See tagab, et LDR -i näidud on stabiilsed ja õigesti teisendatud analoogsignaalidest digitaalsignaalideks.

Ühendage 3V3 ldr ühele küljele 10K oomi takistiga. Ühendage ldr ja takisti vahel traat MCP3008 kanaliga 0. Seejärel ühendage ldr teine pool maapinnaga.

LCD ekraan:

Saate kasutada LCD -ekraani ilma PCF8574 -ta, kuid kuna Pi GPIO -tihvtid on piiratud, kasutan mõningate GPIO -kontaktide salvestamiseks PCF8574 -d. Võite kasutada ka vahetusregistrit, kuid ma eelistan PCF8574. Saate PCF8574 juhtida SMbus -protokolliga, kuid ma kirjutasin selle juhtimiseks oma klassi. Potentsiomeeter kontrollib kontrastsust.

LCD -ekraani tihvtid:

  • VSS maapinnale
  • VDD kuni 5V
  • V0 potentsiomeetri muutuva tihvtiga
  • RS GPIO -le 13
  • R/W maandamiseks, sest ma kirjutan ainult kuvarile ja ei loe
  • E kuni GPIO 19
  • PCF -i DB0 kuni P0
  • DB1 kuni P1
  • DB2 kuni P2
  • DB3 kuni P3
  • DB4 kuni P4
  • DB5 kuni P5
  • DB6 kuni P6
  • DB7 kuni P7
  • LED+ kuni 5V
  • LED- maapinnale

PCF8574 tihvtid:

  • A0 maapinnale
  • A1 maapinnale
  • A2 maapinnale
  • Maapinnast maapinnale
  • VCC kuni 5V
  • SDA kuni GPIO 27
  • SCL kuni GPIO 22 takistiga 330 oomi

Sõltuvalt sellest, millist tüüpi ekraani saate, ei pruugi teil olla LED+ ja LED-. LED+ ja LED- on mõeldud taustvalgustuseks.

Ühendage potentsiomeetri positiivne külg 5 V ja maapind maandusega.

Kasutage kindlasti tõmbetakistusi!

Samm: kood Githubis

Kogu vajaliku koodi leiate minu Githubist.

Kausta projekt1:

See kaust sisaldab kogu taustaprogrammi koodi. Kaustas Klasses on kõik klassid riistvara juhtimiseks.

Kaustade hoidlad sisaldavad 2 faili: Database.py ja DataRepository.py. Database.py säilitab ühenduse andmebaasiga ja tegeleb päringutega. DataRepository.py sisaldab kõiki saidi jaoks vajalikke päringuid.

App.py on taustaprogrammi põhifail. See fail käivitub automaatselt Pi käivitamisel.

Config.py sisaldab andmebaasiga ühenduse loomiseks mõningaid sätteid. Täitke need failid kindlasti oma andmetega.

Selle kausta saate paigutada ükskõik kuhu oma kodukataloogis.

Kausta html:

See kaust sisaldab kõiki saidi, kasutajaliidese faile.

  • Kaust sisaldab saidi paigutuse faile.
  • Fondid sisaldavad saidil kasutatavaid fonte.
  • Skript sisaldab kõiki Javascripti faile, et muuta sait dünaamiliseks

See kaust peab olema kaustas/var/www/html

Faili või kausta saate kopeerida selle käsuga:

sudo mv/tee//praegune/kataloog/tee/sihtkohta/kataloogi

Brauseris saiditüübile navigeerimiseks LCD-ekraanil kuvatav IP-aadress.

5. samm: andmebaasi normaliseeritud struktuur

Normaliseeritud andmebaasi struktuur
Normaliseeritud andmebaasi struktuur

Selles etapis impordime andmebaasi.

  1. Ühendage oma Raspberry Pi -ga MySQL Workbenchi abil
  2. Klõpsake nuppu Server -> Andmete importimine
  3. Valige Import iseseisvat faili
  4. Kaustas Andmebaas-eksport Githubist on sql-fail nimega dump_project1.sql
  5. Sirvige seda faili ja klõpsake nuppu Alusta importimist

See on kõik. Pi saab nüüd andmebaasile juurde pääseda, kui sellel on õige teave.

Samm 6: Kaardi levitaja juhtum

Kaardi levitaja juhtum
Kaardi levitaja juhtum
Kaardi levitaja juhtum
Kaardi levitaja juhtum
Kaardi levitaja juhtum
Kaardi levitaja juhtum

Selles etapis selgitan, mida ma korpuse jaoks kasutasin ja kuidas kõike paigaldasin.

Korpuse jaoks kasutasin 2 ABS -kasti:

- 265 x 185 x 95 mm

- 171 x 121 x 80 mm

Avad, mis ma kastidesse tegin

Auk LCD -ekraani jaoks, 3 auku toitekaablite jaoks, üks samm -mootori, alalisvoolumootori ja ultrahelianduri juhtmete jaoks.

Väikseimasse kasti tegin komponentidest juhtmete jaoks augu ja kaartide läbimiseks augu. Üles tegin suurima augu, et saaksite mängukaardid seadmesse paigutada.

Paigaldasin alalisvoolumootori klambri ja mõne kahepoolse teibiga. Tegin puidust tahvli, kuhu kaardid panna, rattaauguga, et kaart maha lasta.

Olen valinud ABS -plastiku, kuna see on kerge, nii et samm -mootor saab seda hõlpsalt pöörata. Puit võib olla tõesti raske ja samm -mootoril võib sellega probleeme olla. Aukude lõikamiseks kasutasin metalli jaoks mõeldud puurvardadega puurit ja Dremeli. Suuremate aukude lõikamine võttis palju rohkem tööd ja jigsaag oleks parem.

Samm: programm teenusena

On tõesti kasulik, kui kood algab pärast Pi käivitamist. Selleks teeme teenuse.

Looge uus fail nimega smartcard.service järgmise käsuga:

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

See peab faili minema:

[Ühik]

Kirjeldus = Kiipkaardi taustaprogramm Pärast = network.target [Teenus] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = pärida StandardError = pärida Taaskäivita = alati Kasutaja = pi [Install] WantedBy = mitme kasutaja sihtmärk WorkingDirectory on tee kausta, kus programm asub

Nüüd on teil oma kiipkaart!

Soovitan: