Агуулгын хүснэгт:

Arduino ашиглан хурууны хээнд суурилсан биометрийн санал өгөх машин: 4 алхам (зурагтай)
Arduino ашиглан хурууны хээнд суурилсан биометрийн санал өгөх машин: 4 алхам (зурагтай)

Видео: Arduino ашиглан хурууны хээнд суурилсан биометрийн санал өгөх машин: 4 алхам (зурагтай)

Видео: Arduino ашиглан хурууны хээнд суурилсан биометрийн санал өгөх машин: 4 алхам (зурагтай)
Видео: Arduino - Анхан шатны сургалт элсэлтээ авч эхэллээ 2024, Долдугаар сарын
Anonim
Arduino ашиглан хурууны хээ дээр суурилсан биометрийн санал өгөх машин
Arduino ашиглан хурууны хээ дээр суурилсан биометрийн санал өгөх машин

Хэрэглэгч санал өгөхийн тулд товчлуур дарах шаардлагатай байгаа одоо байгаа цахим машиныг бид бүгд мэднэ. Гэхдээ эдгээр машинууд анхнаасаа л уур уцаартай байна гэж шүүмжилдэг. Тиймээс Засгийн газар хурууны хээнд суурилсан санал өгөх машиныг нэвтрүүлэхээр төлөвлөж байна. Энэхүү систем нь саналын давхардал гарах боломжийг хасаад зогсохгүй аливаа төрлийн залилан мэхлэхээс урьдчилан сэргийлэх болно.

Тиймээс энэ төсөлд бид Arduino Uno, TFT дэлгэц, хурууны хээ мэдрэгч ашиглан биометрийн санал өгөх машины загварыг бүтээх гэж байна. Би өмнө нь NodeMCU-тай R305 хурууны хээ мэдрэгчийг ашиглан биометрик дээр суурилсан ирц бүрдүүлэх системийг бүтээсэн боловч энд бид Arduino-тэй GT-511C3 дэвшилтэт хурууны хээ мэдрэгчийг ашиглах болно.

Алхам 1: Биометрийн санал өгөх машин бүтээхэд шаардлагатай бүрэлдэхүүн хэсгүүд

  • Ардуино Уно
  • 2.4 инчийн TFT LCD дэлгэцийн бамбай
  • GT-511C3 хурууны хээ мэдрэгч

Энэхүү 2.4 инчийн TFT дэлгэцийг өмнө нь IoT дээр суурилсан рестораны цэс захиалах системийг бий болгохын тулд Arduino -т ашиглаж байсан.

Алхам 2: Arduino ашиглан биометрийн санал өгөх машины схем

Arduino ашиглан биометрийн санал өгөх машины схем
Arduino ашиглан биометрийн санал өгөх машины схем

Энэхүү төслийн схем нь маш энгийн, учир нь бид зөвхөн TFT дэлгэц болон хурууны хээ мэдрэгч модулийг Arduino Uno -той холбож байна. Хурууны хээ мэдрэгчийн VCC ба GND зүү нь Arduino -ийн 5V ба GND зүүтэй, TX ба RX зүү нь Arduino Uno -ийн 11 ба 12 дижитал зүүтэй холбогдсон байна.

2.4 инчийн TFT LCD дэлгэц нь Arduino Shield бөгөөд доорх зурагт үзүүлсэн шиг Arduino Uno дээр шууд суурилуулж болно. TFT дэлгэц нь 28 зүүтэй бөгөөд Arduino Uno -д бүрэн нийцдэг тул хурууны хээ мэдрэгчийг Arduino -ийн ар талд гагнах шаардлагатай болсон.

Алхам 3: Эх код ба алхам алхмаар кодын тайлбар

Arduino ашиглан хурууны хээгээр санал өгөх системийн төслийн бүрэн кодыг нийтлэлийн төгсгөлд өгсөн болно; Энд бид кодын зарим чухал үүргийг тайлбарлаж байна.

Код нь SPFD5408, Програм хангамжийн цуваа, FPS_GT511C3 номын санг ашигладаг. SPFD5408 номын сан нь анхны Adafruit номын сангийн өөрчлөгдсөн хувилбар юм. Эдгээр номын сангийн файлуудыг доорх линкүүдээс татаж авах боломжтой.

  • SPFD5408 номын сан
  • Програм хангамжийн цуваа
  • FPS_GT511C3

Номын санг оруулаад зарим чухал параметрүүдийг тодорхойлсны дараа бид програмчлалын хэсэгт орж болно. Энэхүү хөтөлбөрт гурван хэсэг хамрагдсан болно. Нэг нь санал өгөх машины UI үүсгэх, хоёрдугаарт товчлуурыг дарах цэгүүдийг олж авах, товчлуурыг мэдрэхэд үндэслэн илрүүлэх, үр дүнг тооцоолж Arduino-ийн санах ойд хадгалах явдал юм.

1. UI үүсгэх:

Би гурван товчлуур, төслийн нэр бүхий энгийн UI үүсгэсэн. TFT дэлгэцийн номын сан нь шугам, тэгш өнцөгт, тойрог, тэмдэгт, тэмдэгт мөр болон бусад хүссэн өнгө, хэмжээгээр зурах боломжийг олгодог. Энд fillRoundRect ба drawRoundRect функцуудыг ашиглан хоёр тэгш өнцөгт товчлуурыг үүсгэнэ. Tft.drawRoundRect функцын синтаксийг доор өгөв.

tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t радиус, uint16_t өнгө)

Хаана:

x0 = X тэгш өнцөгтийн эхлэх цэгийн координат

y0 = Y тэгш өнцөгтийн эхлэлийн цэгийн координат

w = Тэгш өнцөгтийн өргөн

h = Тэгш өнцөгтийн өндөр

радиус = Дугуй булангийн радиус

өнгө = Шулууны өнгө.

void drawHome ()

{

tft.fillScreen (ЦАГААН);

tft.drawRoundRect (0, 0, 319, 240, 8, ЦАГААН); // хуудасны хил

tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);

tft.drawRoundRect (10, 70, 220, 50, 8, ЦАГААН); // Санал өгөөрэй

tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);

tft.drawRoundRect (10, 160, 220, 50, 8, ЦАГААН); // Бүртгүүлэх

tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Үр дүн

tft.drawRoundRect (10, 250, 220, 50, 8, ЦАГААН);

tft.setCursor (65, 5);

tft.setTextSize (3);

tft.setTextColor (CYAN);

tft.print ("Санал өгөх");

tft.setCursor (57, 29);

tft.print ("Машин");

tft.setTextSize (3);

tft.setTextColor (ЦАГААН);

tft.setCursor (25, 82);

tft.print ("Нэр дэвшигч 1");

tft.setCursor (25, 172);

tft.print ("Нэр дэвшигч 2");

tft.setCursor (25, 262);

tft.print ("Нэр дэвшигч 3");

}

2. Мэдрэх цэгүүд болон илрүүлэх товчлууруудыг авах:

Одоо кодын хоёр дахь хэсэгт бид товчлуурын хүрэх цэгүүдийг илрүүлж дараа нь эдгээр цэгүүдийг ашиглан товчлуурыг урьдчилан таамаглах болно. ts.getPoint () функцийг TFT дэлгэц дээр хэрэглэгчийн мэдрэгчийг илрүүлэхэд ашигладаг. ts.getPoint нь хүрч буй хэсгийн Raw ADC утгыг өгдөг. Эдгээр RAW ADC утгуудыг газрын зургийн функцийг ашиглан Pixel Coordinates болгон хөрвүүлнэ.

TSPoint p = ts.getPoint ();

хэрэв (p.z> ts.pressureThreshhold)

{

p.x = газрын зураг (p.x, TS_MAXX, TS_MINX, 0, 320);

p.y = газрын зураг (p.y, TS_MAXY, TS_MINY, 0, 240);

//Serial.print("X: ");

// Цуврал.хэвлэх (p.x);

//Serial.print("Y: ");

// Цуврал.хэвлэх (p.y);

Одоо бид товчлуур бүрийн X ба Y координатыг мэддэг тул 'if' мэдэгдлийг ашиглан хэрэглэгч хаана хүрч байгааг урьдчилан таамаглах боломжтой болно.

хэрэв (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)

{

Serial.println ("Нэр дэвшигч 1");

Сонгогч нэр дэвшигчийн товчлуурыг дарахад хурууны хээ мэдрэгч дээр хуруугаа сканнердахыг хүсэх болно. Хэрэв хурууны үнэмлэх зөвшөөрөгдсөн бол сонгогч санал өгөх эрхтэй болно. Хэрэв бүртгэлгүй хэрэглэгч санал өгөхийг хүсч байвал хурууны хээний модуль нь түүний ID-г системд илрүүлэхгүй бөгөөд дэлгэц дээр "Уучлаарай, та санал өгөх боломжгүй байна" гэсэн гарчигтай байна.

if (fps. IsPressFinger ())

{

fps. CaptureFinger (хуурамч);

int id = fps. Identify1_N ();

хэрэв (id <200)

{

msg = "Нэр дэвшигч 1";

санал өгөх1 ++;

EEPROM.write (0, санал1);

tft.setCursor (42, 170);

tft.print ("Баярлалаа");

саатал (3000);

drawHome ();

3. Үр дүн:

Эцсийн алхам бол EEPROM санах ойгоос авсан санал тооллогыг авах, гурван нэр дэвшигчийн саналыг харьцуулах явдал юм. Хамгийн өндөр санал авсан нэр дэвшигч ялна. Үр дүнг зөвхөн цуваа дэлгэцээс үзэх боломжтой бөгөөд TFT дэлгэц дээр харагдахгүй болно.

санал1 = EEPROM.read (0);

санал2 = EEPROM.read (1);

voice3 = EEPROM.read (2);

хэрэв (санал өгөх)

{

хэрэв ((санал1> санал2 && санал1> санал3))

{

Serial.print ("Can1 ялна");

саатал (2000);

}

Алхам 4: Arduino ашиглан хурууны хээгээр санал өгөх системийг турших

Төслийг туршихын тулд Arduino Uno -г зөөврийн компьютерт холбоод өгөгдсөн кодыг байршуулна уу. Кодыг байршуулсны дараа TFT дэлгэц нь нэр дэвшигчийн нэрийг харуулах ёстой. Хэн нэгэн нэр дэвшигчийн нэрийг дарахад машин хурууны хээ скан хийгчийг сканнердахыг хүсэх болно. Хэрэв хурууны хээ хүчинтэй бол хэрэглэгчийн саналыг тоолох болно, гэхдээ энэ загвар нь мэдээллийн сангийн бүртгэлтэй таарахгүй байвал санал өгөх эрхийг хасах болно. Нэр дэвшигч бүрийн саналын нийт дүнг EEPROM -д хадгалах бөгөөд хамгийн өндөр санал авсан нэр дэвшигч ялах болно.

Энэ хичээл танд таалагдаж, хэрэгтэй зүйл сурсан гэж найдаж байна. Хэрэв танд ямар нэгэн асуулт байвал доорх тайлбар хэсэгт бидэнд мэдэгдээрэй, мөн ийм сонирхолтой төслүүдийн талаар зааварчилгаанд биднийг дагана уу.

Зөвлөмж болгож буй: