Სარჩევი:
- ნაბიჯი 1: კომპონენტები, რომლებიც საჭიროა ბიომეტრიული ხმის მიცემის შესაქმნელად
- ნაბიჯი 2: სქემატური დიაგრამა ბიომეტრული ხმის აპარატისთვის არდუინოს გამოყენებით
- ნაბიჯი 3: წყაროს კოდი და ეტაპობრივად კოდის ახსნა
- ნაბიჯი 4: თითის ანაბეჭდის ხმის მიცემის სისტემის ტესტირება არდუინოს გამოყენებით
ვიდეო: თითის ანაბეჭდზე დაფუძნებული ბიომეტრიული ხმის აპარატი Arduino– ს გამოყენებით: 4 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ჩვენ ყველამ ვიცით არსებული ელექტრონული ხმის მიცემის მანქანა, სადაც მომხმარებელმა უნდა დააჭიროს ღილაკს ხმის მისაცემად. მაგრამ ეს მანქანები თავიდანვე გააკრიტიკეს წრთობისთვის. ასე რომ, მთავრობა გეგმავს თითის ანაბეჭდზე დაფუძნებული კენჭისყრის აპარატის დანერგვას, სადაც მომხმარებლებს შეეძლებათ ხმის მიცემა მისი თითის ანაბეჭდის შთაბეჭდილების საფუძველზე. ეს სისტემა არა მხოლოდ ამოიღებს ხმების დუბლიკატის შესაძლებლობას, არამედ ხელს შეუშლის ყოველგვარ მანიპულირებას.
ამ პროექტში ჩვენ ვაპირებთ ავაშენოთ ბიომეტრიული ხმის აპარატის პროტოტიპი Arduino Uno– ს, TFT დისპლეის და თითის ანაბეჭდის სენსორის გამოყენებით. ჩვენ ადრე გამოვიყენეთ R305 თითის ანაბეჭდის სენსორი NodeMCU– სთან ბიომეტრზე დაფუძნებული დასწრების სისტემის შესაქმნელად, მაგრამ აქ ჩვენ გამოვიყენებთ მოწინავე GT-511C3 თითის ანაბეჭდის სენსორს Arduino– სთან ერთად.
ნაბიჯი 1: კომპონენტები, რომლებიც საჭიროა ბიომეტრიული ხმის მიცემის შესაქმნელად
- არდუინო უნო
- 2.4”TFT LCD ეკრანის ფარი
- GT-511C3 თითის ანაბეჭდის სენსორი
ეს 2.4 დიუმიანი TFT დისპლეი ადრე გამოიყენება Arduino– სთან IoT– ზე დაფუძნებული რესტორნის მენიუს შეკვეთის სისტემის შესაქმნელად.
ნაბიჯი 2: სქემატური დიაგრამა ბიომეტრული ხმის აპარატისთვის არდუინოს გამოყენებით
ამ პროექტისთვის სქემის დიაგრამა ძალიან მარტივია, რადგან ჩვენ მხოლოდ 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 ბიბლიოთეკა არის ორიგინალური ადაფრუტის ბიბლიოთეკის შეცვლილი ვერსია. ბიბლიოთეკის ფაილების გადმოწერა შესაძლებელია ქვემოთ მოცემული ბმულებიდან:
- ბიბლიოთეკა SPFD5408
- პროგრამული სერია
- FPS_GT511C3
ბიბლიოთეკების ჩართვისა და მნიშვნელოვანი პარამეტრების განსაზღვრის შემდეგ, ჩვენ შეგვიძლია შევიდეთ პროგრამირების ნაწილში. ამ პროგრამაში სამი განყოფილებაა ჩართული. ერთი არის კენჭისყრის აპარატის ინტერფეისის შექმნა, მეორე არის ღილაკების შეხების წერტილების მიღება და ღილაკების გამოვლენა შეხების საფუძველზე და ბოლოს გამოთვლა შედეგებით და მათი შენახვა არდუინოს მეხსიერებაში.
1. შექმენით UI:
მე შევქმენი მარტივი ინტერფეისი სამი ღილაკით და პროექტის სახელით. TFT ჩვენების ბიბლიოთეკა საშუალებას გაძლევთ დახაზოთ ხაზები, მართკუთხედი, წრეები, სიმბოლოები, სტრიქონები და ბევრად მეტი ნებისმიერი სასურველი ფერი და ზომა. აქ ორი მართკუთხა ღილაკი იქმნება fillRoundRect და drawRoundRect ფუნქციების გამოყენებით. სინტაქსი tft.drawRoundRect ფუნქციისთვის მოცემულია ქვემოთ:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t სთ, int16_t რადიუსი, uint16_t ფერი)
სად:
x0 = მართკუთხედის საწყისი წერტილის X კოორდინატი
y0 = მართკუთხედის საწყისი წერტილის Y კოორდინატი
w = მართკუთხედის სიგანე
h = მართკუთხედის სიმაღლე
რადიუსი = მრგვალი კუთხის რადიუსი
ფერი = ფერი რექტის.
void drawHome ()
{
tft.fillScreen (WHITE);
tft.drawRoundRect (0, 0, 319, 240, 8, WHITE); // გვერდის საზღვარი
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, WHITE); // ჩაწერა
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // შედეგი
tft.drawRoundRect (10, 250, 220, 50, 8, WHITE);
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 კოორდინატებად რუქის ფუნქციის გამოყენებით.
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: ");
//Serial.print(p.y);
ახლა, ვინაიდან ჩვენ ვიცით X და Y კოორდინატები თითოეული ღილაკისთვის, ჩვენ შეგვიძლია წინასწარ განვსაზღვროთ, თუ სად შეეხო მომხმარებელი "if" განცხადების გამოყენებით.
if (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("კანდიდატი 1");
როდესაც ამომრჩეველი დააჭერს კანდიდატის ღილაკს, მას სთხოვენ თითის ანაბეჭდის სენსორზე სკანირებას. თუ თითის ID უფლებამოსილია, ამომრჩეველს უფლება აქვს ხმის მიცემა. თუ რომელიმე დარეგისტრირებულ მომხმარებელს სურს ხმის მიცემა, მაშინ თითის ანაბეჭდის მოდული არ აღმოაჩენს მის პირადობის მოწმობას სისტემაში და ეკრანზე გამოჩნდება "უკაცრავად, ხმას ვერ იღებ".
თუ (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 ეკრანზე.
vote1 = EEPROM.read (0);
ხმა 2 = EEPROM.read (1);
vote3 = EEPROM.read (2);
თუ (ხმა)
{
თუ ((ხმა 1> ხმა 2 && ხმა 1> ხმა 3))
{
Serial.print ("Can1 იგებს");
დაგვიანება (2000);
}
ნაბიჯი 4: თითის ანაბეჭდის ხმის მიცემის სისტემის ტესტირება არდუინოს გამოყენებით
პროექტის შესამოწმებლად, დაუკავშირეთ Arduino Uno ლეპტოპს და ატვირთეთ მოცემული კოდი. როდესაც კოდი აიტვირთება, TFT ეკრანზე უნდა იყოს ნაჩვენები კანდიდატის სახელი. როდესაც ვინმე ირჩევს კანდიდატის სახელს, მანქანა ითხოვს თითის ანაბეჭდის სკანერის სკანირებას. თუ თითის ანაბეჭდი მართებულია, მაშინ მომხმარებლის ხმა ჩაითვლება, მაგრამ იმ შემთხვევაში, თუ ნიმუში არ ემთხვევა მონაცემთა ბაზის ჩანაწერებს, ხმის მიცემის უფლებაზე უარს იტყვიან. თითოეული კანდიდატის ხმების საერთო რაოდენობა ინახება EEPROM– ში და გაიმარჯვებს კანდიდატი, რომელსაც აქვს ყველაზე მეტი ხმა.
ვიმედოვნებ, რომ ისიამოვნეთ გაკვეთილით და ისწავლეთ რაიმე სასარგებლო. თუ თქვენ გაქვთ რაიმე შეკითხვები, გთხოვთ შეგვატყობინოთ ქვემოთ მოცემულ კომენტარებში და ასევე მოგვყევით Instructable– ზე უფრო საინტერესო პროექტებისთვის.
გირჩევთ:
თითის ანაბეჭდი და RFID დაფუძნებული დასწრების სისტემა Raspberry Pi და MySQL მონაცემთა ბაზის გამოყენებით: 5 ნაბიჯი
თითის ანაბეჭდი და RFID დაფუძნებული დასწრების სისტემა Raspberry Pi და MySQL მონაცემთა ბაზის გამოყენებით: ამ პროექტის ვიდეო
თითის ანაბეჭდის ხმის მიცემის ონლაინ სისტემა (FVOS): 5 ნაბიჯი
თითის ანაბეჭდის ხმის მიცემის ონლაინ სისტემა (FVOS): თითის ანაბეჭდის ხმის მიცემის ონლაინ სისტემა საშუალებას აძლევს ამომრჩეველს ხმის მიცემა სრულად ციფრული გზით, მისი ინფორმაციის შეგროვებითა და დადასტურებით მოწყობილობის მეშვეობით თითის ანაბეჭდის სკანირებისა და მონაცემების სერვერზე შენახვის გზით. მას აქვს მოსახერხებელი G
ბიომეტრიული პირადი დღიური: 5 ნაბიჯი (სურათებით)
ბიომეტრული პირადი დღიური: ამ სუფთა მოწყობილობას აქვს თითის ანაბეჭდის სენსორი, ასე რომ თქვენ შეგიძლიათ უზრუნველყოთ თქვენი მაგარი ნივთები პერსონალურ პორტატულ ჩანთაში. ვიყენებ დღიურს, კალამს და დიზაინს ჩემი ახალი პროექტებისთვის. აქვს 3D ბეჭდვის ქეისი და იყენებს Arduino ნანოს. დიდი საჩუქრის იდეა
ბანკომატის აპარატი Arduino– ს გამოყენებით (თითის ანაბეჭდი+RFID ბარათი): 4 ნაბიჯი (სურათებით)
ბანკომატის აპარატი Arduino– ს გამოყენებით (თითის ანაბეჭდი+RFID ბარათი): გამარჯობა მეგობრებო, მე დავბრუნდი Arduino– ს გამოყენებით ბანკომატის აპარატის ახალი იდეით. ეს შეიძლება იყოს სასარგებლო სოფლად, სადაც უნაღდო მომსახურება შეუძლებელია. ეს პატარა იდეაა. იმედი მაქვს თქვენ ისიამოვნეთ. დავიწყოთ
ტრიგერის დაწყების ხმის დამატება Google AIY ხმის ნაკრებში: 6 ნაბიჯი (სურათებით)
დაამატეთ Trigger Start Sound Google AIY Voice Kit- ში: ეს გაკვეთილი საკმაოდ მარტივია. მე ნამდვილად მსიამოვნებდა Google AIY ხმის ნაკრები, მაგრამ მე ნამდვილად მომწონს ჩემს ჩვეულებრივ Google Home– ში ის ხმაური, რომელსაც ისინი აკეთებენ იმის დასადასტურებლად, რომ ისინი აქტიურად უსმენენ. ეს არ არის ნაგულისხმევი დაყენებული არცერთ მაგალითში, ვიდრე