Mündəricat:

Avtomatik Kart Dağıtıcısı: 7 addım
Avtomatik Kart Dağıtıcısı: 7 addım

Video: Avtomatik Kart Dağıtıcısı: 7 addım

Video: Avtomatik Kart Dağıtıcısı: 7 addım
Video: Proqram Təminatı Software 1 ci hissə Süsən magistr 2024, Iyun
Anonim
Avtomatik Kart Dağıtıcısı
Avtomatik Kart Dağıtıcısı

Bir kart oyunu oynamağı sevdiyim üçün ilk layihəm olaraq ağıllı kart distribyutorunu seçdim. Ən çox bəyənmədiyim şey kart satmaqdır. Hər oyun üçün hər bir insanın neçə kart aldığını xatırlamalısan. Bir çox kart oyunu bildiyiniz zaman qarışıqlıq yaranır. Layihəm həm də yaşlı insanlar və Parkinsondan əziyyət çəkən insanlar kimi kart paylamaqda çətinlik çəkən insanlara kömək edəcək.

Təchizat

  • 1 Raspberry Pi (Raspberry Pi 4 istifadə etdim)
  • SD kart (16 GB tövsiyə olunur)
  • Raspberry Pi üçün 1 ədəd çörək parçası (T parçası)
  • 2 çörək taxtası
  • Çörək paneli, 5V və 3V3 üçün 1 enerji təchizatı modulu
  • 1 LCD ekran
  • 1 Potansiyometr
  • 1 MPU6050 (akselerometr və giroskop)
  • 1 NPN tranzistoru
  • 1 PCF8574N I/O genişləndiricisi
  • 1 pilləli motor
  • Step motorunu idarə etmək üçün 1 ULN2003 qırılma lövhəsi
  • 1 HC-SR04 ultrasəs sensoru
  • 1 5V DC mühərrikləri
  • 1 diod
  • 6 470 Ohm rezistorlar
  • 4 ədəd 10K Ohm müqavimət
  • Hər şeyi birləşdirmək üçün elektrik naqili

Hazırlayarkən faydalıdır:

  • Lehimleme dəmir
  • Lehim
  • Dremel və ya jig testerəsi (ağac və abs plastik kəsmək üçün bir şey)

Proqram təminatı:

  • Macun
  • MySQL iş masası
  • Win32 disk axtarıcısı
  • Kod redaktoru (Visual Studio Kodunu tövsiyə edirəm)
  • WinSCP
  • Raspbian şəkli

Addım 1: Rasperry Pi hazırlayın

Əvvəlcə başqa bir şey etməzdən əvvəl Raspberry Pi hazırlamalıyıq. Hər şey Pi ilə işləyəcəyi üçün bu, kart paylayıcısının ən vacib hissələrindən biridir.

Quraşdırma:

Raspbian görüntüsünü https://www.raspberrypi.org/downloads/raspberry-pi-os/ saytından yükləyin

  1. ZIP faylını yükləyin
  2. ZIP faylını asanlıqla tapa biləcəyiniz yerdən çıxarın
  3. Win32 Disk Imager proqramını açın və çıxarılan şəkli seçin
  4. Açılan menyudan SD kartı seçin və yazın
  5. Yazma prosesi başa çatdıqdan sonra Win32 Disk Imager proqramını bağlaya bilərsiniz

İndi Pi -yə qoşulmadan əvvəl daha bir neçə şey etməliyik

  1. SD kartın açılış qovluğuna gedin
  2. Cmdline.txt faylını açın
  3. Boşluqla ayrılmış xəttin sonuna 'ip = 169.254.10.1' əlavə edin
  4. Saxla və fayldan çıx
  5. Eyni qovluqda ssh adlı bir fayl yaradın və uzantını silin (bu, Pi -yə qoşula biləcəyimiz üçün ilk açılışda ssh -i işə salacaq)
  6. SD kartı etibarlı şəkildə çıxarın və Pi -yə qoyun

İndi Pi -yə qoşula bilərik:

  1. Ethernet kabelini götürün və bir ucunu Pi -yə, digər ucunu da kompüterinizə daxil edin
  2. Açıq macun
  3. Host adı sahəsinə 169.254.10.1 daxil edin
  4. SSH -nin seçildiyinə və portun 22 olduğuna əmin olun
  5. Aç düyməsini basın
  6. Bir xəbərdarlıq alsanız, davam edə və onu görməzdən gələ bilərsiniz
  7. İstifadəçi adı pi və parol moruqdur

Proqram təminatının konfiqurasiyası və quraşdırılması:

Aşağıdakı əmrlə raspi-config açın:

sudo raspi-config

5 -ci seçimi seçin: İnterfeys seçimləri

SPI və I2C -ni aktivləşdirin

3 -cü seçimdə aşağıdakıları deaktiv edin: Önyükləmə seçimləri:

  • Sıçrayış ekranı
  • Masaüstü üçün deyil, başlanğıc üçün cli seçin

Wifi qurulması:

Wifi veb sayta asanlıqla getmək üçün faydalıdır. WiFi etimadnamənizin yaxın olduğundan əmin olun.

WiFi qurmaq üçün bir neçə şeyə ehtiyacımız var:

Bu əmri istifadə edərək WiFi -ni əlavə edin və məlumatlarınıza SSID və PASSWORD -u dəyişdirin:

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

WiFi -ni yenidən konfiqurasiya etmək üçün bu əmri yerinə yetirin:

sudo wpa_cli

Doğru interfeysi seçin:

wlan0 interfeysi

İnterfeysi yenidən qurun:

yenidən qurmaq

Yenidən konfiqurasiyanın bu əmrlə müvəffəqiyyətli olub olmadığını yoxlayın:

ip a

Wlan0 interfeysində bir IP ünvanı görürsünüzsə, hər şey qurulub.

Əməliyyat sisteminin yenilənməsi

Əməliyyat sistemini bu 2 əmrlə yeniləyin:

sudo apt yeniləmə

sudo apt tam yeniləmə

MariaDB qurmaq:

Apache Web Server -in quraşdırılması:

sudo apt install apache2 -y

MariaDB serverinin quraşdırılması:

sudo apt install mariadb -server -y

İndi yenidən başlamalıyıq:

sudo yenidən başladın

MariaDB quraşdırılmasını təmin etmək tövsiyə olunur. Bu əmri işlədərək bunu edə bilərsiniz:

sudo mysql_secure_installation

Əvvəlcə mövcud kök şifrənizi soruşacaqsınız, ancaq standart quraşdırmada belə yoxdur, buna görə də enter düyməsini basın.

Sonra kök parol təyin etmək istədiyinizi soruşacaqsınız, y yazın. Şifrəni xatırlaya biləcəyinizə əmin olun!

  • Anonim istifadəçiləri silmək üçün y daxil edin
  • Kök girişini uzaqdan deaktiv etmək üçün y daxil edin
  • Test verilənlər bazasını silmək və ona daxil olmaq üçün y daxil edin
  • İmtiyazları yenidən yükləmək üçün y daxil edin

MariaDB qurğunuz etibarlı olmalıdır!

İndi yeni bir istifadəçi yarada bilərik:

Bu əmrlə mysql qabığını daxil edin:

sudo mysql

Aşağıdakı əmrləri istifadəçi adı mysql və parolla (your_password) yaradın:

'your_password' ilə təyin olunan mysql@localhost istifadəçisi yaratmaq;

mysql@localhost -a *. * üzərindəki bütün imtiyazları verin;

FLUSH İSTİFADƏLƏRİ;

Bu əmrlə mysql qabığından çıxın:

çıxmaq;

Python paketləri:

Lite versiyasını seçmədiyiniz halda Python artıq quraşdırılmalıdır:

sudo apt install python3-pip

Çox miqdarda Python paketinə ehtiyacımız var, hamısını aşağıdakı əmrlə quraşdıra bilərsiniz:

pip3 mysql-connector-python flask-socketio flask-cors gevent gevent-websocket quraşdırın

İndi bir daha yenidən başlamalıyıq

sudo yenidən başladın

Addım 2: Visual Studio Kodu və MySQL Workbench qurmaq

MySQL Workbench ilə Pi -yə qoşulma:

MySQL Workbench açın

Aşağıdakı məlumatlar ilə Pi ilə yeni bir əlaqə qurun:

  • Bağlantı adı: Raspi
  • Bağlantı metodu: SSH üzərindən standart TCP/IP
  • SSH Host Adı: Pi-nin IP ünvanı

Bu əmrlə IP ünvanını əldə edə bilərsiniz:

ip a

  • SSH İstifadəçi Adı: pi
  • MySQL Host Adı: 127.0.0.1
  • MySQL server portu: 3306
  • İstifadəçi adı: mysql

Tamam düyməsini basın və istifadəçi pi üçün şifrəni daxil edin və sonra mysql istifadəçisi üçün parol daxil edin.

Visual Studio Kodunun qurulması:

Visual Studio Kodunu açın

Bu 2 uzantını quraşdırın:

  • Uzaqdan - SSH
  • Uzaqdan - SSH: Konfiqurasiya fayllarını redaktə etmək

Visual Studio Code F1 düyməsini basın və ssh yazın

Uzaq SSH seçin: Yeni SSH ana əlavə edin

Ssh pi@IP ünvanını daxil edin

Növbəti addımda enter düyməsini basın

Əlaqə artıq Pi ilə əlaqələndirilir. F1 düyməsini basaraq və Uzaq ana ilə əlaqə quraraq Pi ilə əlaqə qura bilərsiniz.

Şifrəni daxil edin ki, Visual Studio Kodu Pi -yə daxil olsun.

Başqa bir şey: Python uzantısını uzaq bir maşına quraşdırın ki, kodu asanlıqla işlədib ayıklayasınız.

Addım 3: Doldurma diaqramı

Darıxdırıcı diaqram
Darıxdırıcı diaqram
Darıxdırıcı diaqram
Darıxdırıcı diaqram
Sıxılma diaqramı
Sıxılma diaqramı

Bu addımda dövrə izah edəcəyəm.

Yuxarıdakı sxemlər Fritzing ilə hazırlanmışdır.

DC mühərriki:

GPIO 18 -i kollektorun bazasına, npn tranzistorundakı orta pinə bağlayın. Motorun torpağını tranzistordan kollektora və motorun gücünü 5V -ə qoşun. Transistorun torpağını torpaq xəttinə qoşun. Mühərrikin üzərindəki maneəni bağlayın ki, cari birbaşa tranzistora keçsin.

Step motor:

Step motorunu idarəetmə lövhəsinə qoşun. Nəzarət lövhəsində bir tərəfdə 5V və şasi birləşdirən pinlər var. Digər sancaqlar nəzarət pinləridir. Bu sancaqlar mühərrikin içərisindəki maqnitləri idarə edir ki, dönə bilsin. Bu pinləri Raspberry Pi üzərindəki GPIO 12, 16, 20 və 21 -ə bağlayın.

HC-SR04 Ultrasonik:

Bu sensor səs istifadə edərək təxminən 4,5 metr məsafəni ölçə bilir.

VCC pinini 5V -ə, tetik pinini GPIO 25 -ə, 470 Ohm rezistoru olan echo pinini GPIO 24 -ə və torpağı 470 Ohm rezistoru ilə yerə bağlayın.

MPU6050:

VCC pinini 3V3 -ə, zəmini yerə bağlayın, Pi üzərindəki scl -ə və sda -nı Pi -də sda -ya bağlayın. Bu sensoru idarə etmək üçün I2C istifadə edirəm. Bu barədə daha ətraflı burada oxuya bilərsiniz. Burada əsas bir izahat var: Pi ustadır və MPU6050 kölədir. Scl xətti vasitəsilə Pi vaxtları idarə edir və sda xətti ustadan qula və ya köldən ustaya məlumat göndərmək üçün istifadə olunur. Məlumat ötürülməsinə yalnız usta başlaya bilər.

İşıqdan asılı olan rezistor:

LDR -dən düzgün oxunuşlar əldə etmək üçün MCP3008 çipindən istifadə edirəm. Bu, ldr -dən oxunuşların sabit olduğundan və analogdan rəqəmsal siqnallara düzgün çevrildiyindən əmin olur.

3V3 -ü ldr -in bir tərəfinə 10K Ohm rezistorla bağlayın. Ldr və rezistor arasında MCP3008 kanalına 0 tel bağlayın. Sonra ldr -in digər tərəfini yerə bağlayın.

LCD ekran:

LCD ekranı PCF8574 olmadan istifadə edə bilərsiniz, ancaq Pi üzərindəki GPIO pinləri məhdud olduğu üçün bəzi GPIO sancaqlarını saxlamaq üçün PCF8574 istifadə edirəm. Bir keçid qeydindən də istifadə edə bilərsiniz, amma PCF8574 -ə üstünlük verirəm. PCF8574 -ü SMbus protokolu ilə idarə edə bilərsiniz, amma nəzarət etmək üçün öz sinifimi yazdım. Potansiyometr kontrastı idarə edir.

LCD ekran pinləri:

  • VSS yerə
  • VDD -dən 5V -a qədər
  • V0 potensiometrin dəyişən pininə
  • RS -dən GPIO 13 -ə
  • Yalnız ekrana yazdığım üçün oxumadığım üçün R/W yerə
  • E -dən GPIO 19 -a
  • PCF -nin DB0 -dan P0 -a qədər
  • DB1 - P1
  • DB2 - P2
  • DB3 - P3
  • DB4 - P4
  • DB5 - P5
  • DB6 - P6
  • DB7 - P7
  • LED+ 5V -ə qədər
  • LED- yerə

PCF8574 sancaqlar:

  • A0 yerə
  • A1 yerə
  • A2 yerə
  • Yerdən yerə
  • VCC -dən 5V -ə qədər
  • SDA - GPIO 27
  • 330 Ohm müqavimət ilə GPIO 22 -ə SCL

Ekranın növündən asılı olaraq LED+ və LED-ləriniz olmaya bilər. LED+ və LED- arxa işıq üçün.

Potansiyometrenin müsbət tərəfini 5V -ə və torpağı yerə bağlayın.

Pull-up rezistorlarından istifadə etdiyinizə əmin olun!

Addım 4: Github -da kod yazın

Github -da lazım olan bütün kodları tapa bilərsiniz.

Qovluq layihəsi1:

Bu qovluq arxa ucun bütün kodlarını ehtiva edir. Klasses qovluğunda, avadanlığı idarə etmək üçün bütün siniflər var.

Qovluq anbarlarında 2 fayl var: Database.py və DataRepository.py. Database.py verilənlər bazası ilə əlaqəni saxlayır və sorğuları idarə edir. DataRepository.py sayt üçün lazım olan bütün sorğuları ehtiva edir.

App.py, arxa hissənin əsas sənədidir. Pi açıldıqda bu fayl avtomatik olaraq başlayır.

Config.py verilənlər bazasına qoşulmaq üçün bir neçə parametrdən ibarətdir. Bu məlumatları öz məlumatlarınızla doldurduğunuzdan əmin olun.

Bu qovluğu ev kataloqunuzun hər hansı bir yerinə yerləşdirə bilərsiniz.

Qovluq html:

Bu qovluq sayt üçün bütün faylları, ön ucu ehtiva edir.

  • Qovluq, saytın düzeni üçün sənədləri ehtiva edir.
  • Şriftlər saytda istifadə olunan şriftləri ehtiva edir.
  • Script, saytı dinamik etmək üçün bütün Javascript fayllarını ehtiva edir

Bu qovluq/var/www/html qovluğunda olmalıdır

Bu əmrlə bir fayl və ya qovluğu kopyalaya bilərsiniz:

sudo mv/path/to/current/directory/path/to/destination/directory

Sayta getmək üçün brauzerinizdə LCD ekranda göstərilən IP ünvanını yazın.

Addım 5: Normallaşdırılmış verilənlər bazası quruluşu

Verilənlər bazası normallaşdırılmışdır
Verilənlər bazası normallaşdırılmışdır

Bu addımda verilənlər bazasını idxal edəcəyik.

  1. MySQL Workbench ilə Raspberry Pi -yə qoşulun
  2. Server -> Məlumat İdxalına vurun
  3. Özünə aid olan faylı idxal et seçin
  4. Github-dan Database-export qovluğunda dump_project1.sql adlı bir sql faylı var.
  5. Bu fayla baxın və idxal etməyə başlayın

Bu belədir. Düzgün məlumat varsa Pi artıq verilənlər bazasına daxil ola bilər.

Addım 6: Kart Distribyutoru üçün qutu

Kart Distribyutoru üçün qutu
Kart Distribyutoru üçün qutu
Kart Distribyutoru üçün qutu
Kart Distribyutoru üçün qutu
Kart Distribyutoru üçün qutu
Kart Distribyutoru üçün qutu

Bu addımda dava üçün nələr istifadə etdiyimi və hər şeyi necə qurduğumu izah edəcəyəm.

Dava üçün 2 ABS qutusu istifadə etdim:

- 265 x 185 x 95 mm

- 171 x 121 x 80 mm

Qutularda etdiyim deliklər

LCD ekran üçün bir çuxur, elektrik kabelləri üçün 3 dəlik, biri step motorundan, DC motorundan və ultrasəs sensorundan olan tellər üçün.

Ən kiçik qutuda komponentlərdən olan tellər və kartların keçməsi üçün bir deşik etdim. Yuxarıda ən böyük çuxuru düzəltdim ki, cihaza oyun kartları yerləşdirə biləsiniz.

DC motorunu bir mötərizə və bir neçə tərəfli lentlə bağladım. Kartları taxmaq üçün təkərin bir kart çəkməsi üçün bir çuxur olan taxta lövhə düzəltdim.

Yüngül olması səbəbindən ABS plastikini seçdim, belə ki, step motoru asanlıqla çevirə bilər. Taxta həqiqətən ağır ola bilər və pilləli motorun bununla bağlı problemləri ola bilər. Delikləri kəsmək üçün metal və Dremel üçün hazırlanmış matkaplar olan bir qazma istifadə etdim. Daha böyük deliklərin kəsilməsi daha çox iş aparırdı və bir testere testerəsi daha yaxşı olardı.

Addım 7: Xidmət olaraq proqramlaşdırın

Pi açıldıqdan sonra başlayan kodun olması həqiqətən faydalıdır. Bunun üçün bir xidmət göstərəcəyik.

Aşağıdakı əmrlə smartcard.service adlı yeni bir fayl yaradın:

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

Bu fayla daxil olmalıdır:

[Bölmə]

Təsvir = Smart kart arxa tərəfi Sonra = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = miras StandartError = Yenidən Başlat = həmişə İstifadəçi = pi [Quraşdır] WantedBy = çox istifadəçi. hədəf WorkingDirectory, proqramın yerləşdiyi qovluğa gedən yoldur

İndi öz Smart Kartınız var!

Tövsiyə: