This is an old revision of the document!


Automatic Car Wash

Autor: Cheșcheș Iulia-Ștefana

Grupă: 332CA

Email: iulia.chesches@stud.acs.upb.ro

Introducere

Obiectivul acestui proiect constă în realizarea unei spălătorii automate de mașini.

Aceasta este menită să fie o alternativă flexibilă pentru cei care nu doresc să fie restricționați de programul redus de funcționare al unei spălătorii convenționale, dar și o opțiune mult mai comodă față de spălătoriile self-wash, care, deși sunt deschise non-stop, implică un efort fizic din partea posesorului.

Încă de la început am gândit acest concept ca fiind asociat unui lanț de benzinării. Astfel, modalitatea de plată se poate baza pe puncte achiziționate sau acumulate în urma alimentării autovehiculului, pe care fiecare client le poate gestiona printr-un card de fidelitate.

Descriere generală

Interacțiunea cu sistemul este realizată prin intermediul unui display, care afișează instrucțiuni și opțiunile disponibile ale utilizatorului. Acesta poate introduce durata dorită a programului, după care urmează etapa de plată, unde se va folosi de cardul de fidelitate. Dacă plata este realizată cu succes, programul de spălare începe și periile rotative sunt puse în funcțiune de un servo motor.

Îmi propun să încorporez în proiectul meu întreruperi, timere și trei protocoale de comunicație: SPI pentru modulul RFID, I2C pentru display și PWM pentru servo motor.

Hardware Design

Componente folosite

Conexiunea pinilor

Modulul NFC/RFID PN532 dispune de interfețe I2C, UART și SPI. Eu am decis să folosesc SPI, pe care l-am selectat prin switch-urile de pe modul, primul pe HIGH, al doilea pe LOW. Acesta se ocupă de plata spălării în funcție de programul selectat prin consumarea creditului acumulat de client pe cardul de fidelitate. Tag-urile folosite sunt de tipul Mifare Classic, care au avantajul securizării datelor stocate prin autentificare. Eu voi folosi cheia de acces default, dar pe viitor se poate folosi o cheie specifică, astfel încât modificările cardurilor de fidelitate să poată fi făcute doar de personalul spălătoriei.

Conexiunile pinilor pentru modulul NFC/RFID PN532:

  • SCK – 13
  • MISO – 12
  • MOSI – 11
  • SS – 10
  • VCC – 5V
  • GND – GND

Motorul servo SG90 este folosit pentru mișcarea perilor rotative. Controlul este realizat cu ajutorul unui semnal de tip PWM. Pinii care pot genera acest tip de semnal de pe o placă de dezvoltare Arduino sunt 3, 5, 7, 9, 10, 11, A0 - A5, dintre care am ales să folosesc pinul 9.

Conexiunile pinilor pentru motorul servo SG90:

  • VCC – 5V
  • GND – GND
  • PWM – 9

Tastatura membrană pe care o folosesc are 12 taste conectate în formă matriceală 3×4, ceea ce reduce numărul de pini necesari de la 12 la 7. Primii 4 pini conectează liniile, iar următorii 3 conectează coloanele. Toți trebuie să fie pini digitali pe Arduino, așa că am ales să folosesc pinii de la 2 la 8. Cu ajutorul tastaturii, clienții pot selecta tipul programului de spălare a mașinii dorit.

Conexiunile pinilor pentru tastatură:

  • R1 – 8
  • R2 – 7
  • R3 – 6
  • R4 – 5
  • C1 – 4
  • C2 – 3
  • C3 – 2

LCD-ul are un adaptor pentru interfață I2C, care are nevoie doar de două conexiuni, SDA, SCL și conexiunea la masă. Acesta funcționează drept o interfață pentru utilizator: afișează instrucțiuni și oferă informații legate de starea automatului, cum ar fi prețul programului ales sau timpul rămas de funcționare.

Conexiunile pinilor pentru LCD:

  • SDA – A4
  • SCL – A5
  • VCC – 5V
  • GND – GND

Schema electrică

Am realizat simbolurile și footprint-urile componentelor pe care le folosesc în Fusion, după care am adăugat label-uri pentru a evidenția conexiunile dintre ele.

Testare individuală

Inițial, am conectat fizic fiecare componentă individual și am testat funcționalitatea prin câte un mic exemplu. Am făcut motorul servo să se rotească timp de 2 secunde, am afișat textul ‘Hello World’ pe ecran, am configurat cele două tag-uri să aibă câte un utilizator și un credit de 200 de puncte și am afișat în Serial Monitor fiecare tastă apăsată a tastaturii ca să mă asigur că liniile și coloanele sunt conectate corespunzător.

carwashdemolcdiuliachesches.jpeg

Mai apoi, le-am aranjat împreună astfel încât fiecare să poată folosi pinii necesari. Am avut nevoie și de un mini breadboard pentru a pune la dispoziție alimentarea de 5V de pe Arduino către toate componentele.

carwashdemoiuliachesches.jpeg

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/mdinica/iulia.chesches.1715630243.txt.gz · Last modified: 2024/05/13 22:57 by iulia.chesches
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0