Мазмұны:
- 1 -қадам: Биометриялық дауыс беру машинасын жасау үшін қажет компоненттер
- 2 -қадам: Arduino көмегімен биометриялық дауыс беру машинасының схемасы
- 3 -қадам: Бастапқы код және қадамдық кодты түсіндіру
- 4 -қадам: Arduino көмегімен саусақ ізі бойынша дауыс беру жүйесін тексеру
Бейне: Arduino көмегімен саусақ ізіне негізделген биометриялық дауыс беру машинасы: 4 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Біз барлығына электронды дауыс беру машинасы туралы білеміз, онда қолданушы дауыс беру үшін түймені басуы керек. Бірақ бұл машиналар басынан бері шыңдалғаны үшін сынға алынды. Сондықтан үкімет саусақ ізіне негізделген дауыс беру машинасын енгізуді жоспарлап отыр, онда қолданушылар оның саусақ ізінен алған әсеріне қарай дауыс бере алады. Бұл жүйе дауыстардың қайталануын болдырмайды, сонымен қатар кез келген манипуляцияның алдын алады.
Бұл жобада біз Arduino Uno, TFT дисплейі мен саусақ ізі сенсоры көмегімен биометриялық дауыс беру машинасының прототипін құрастырмақпыз. Біз бұрын NodeMCU көмегімен R305 саусақ ізі сенсорын биометрикалық келу жүйесін құру үшін қолдандық, бірақ біз мұнда Arduino-мен бірге GT-511C3 жетілдірілген саусақ ізі сенсорын қолданамыз.
1 -қадам: Биометриялық дауыс беру машинасын жасау үшін қажет компоненттер
- Ардуино Уно
- 2,4 дюймдік TFT СКД дисплей қалқаны
- GT-511C3 саусақ ізі сенсоры
Бұл 2,4 дюймдік TFT дисплейі Arduino -мен бұрын IoT негізіндегі мейрамхана мәзіріне тапсырыс беру жүйесін құру үшін қолданылған.
2 -қадам: Arduino көмегімен биометриялық дауыс беру машинасының схемасы
Бұл жобаның схемасы өте қарапайым, өйткені біз тек TFT дисплейі мен саусақ ізі сенсорының модулін Arduino Uno -мен байланыстырамыз. Саусақ ізі сенсорының VCC және GND түйреуіштері Arduino 5V және GND түйреуіштеріне, ал TX және RX түйреуіштері Arduino Uno 11 және 12 цифрлық түйреуіштеріне қосылады.
2.4 дюймдік TFT СКД экраны Arduino Shield болып табылады және оны төмендегі суретте көрсетілгендей Arduino Uno -ға тікелей орнатуға болады. TFT дисплейінде Arduino Uno -ға өте жақсы сәйкес келетін 28 түйреуіш бар, сондықтан саусақ ізі сенсорын Arduino -ның артқы жағына дәнекерлеуге тура келді.
3 -қадам: Бастапқы код және қадамдық кодты түсіндіру
Arduino қолданатын саусақ ізі бойынша дауыс беру жүйесі жобасының толық коды мақаланың соңында келтірілген; мұнда біз кодтың кейбір маңызды функцияларын түсіндіреміз.
Код SPFD5408, Software Serial және FPS_GT511C3 кітапханаларын қолданады. SPFD5408 кітапханасы - түпнұсқа Adafruit кітапханасының өзгертілген нұсқасы. Бұл кітапхана файлдарын төмендегі сілтемелерден жүктеуге болады:
- SPFD5408 кітапханасы
- Бағдарламалық қамтамасыз ету сериясы
- FPS_GT511C3
Кітапханаларды қосып, кейбір маңызды параметрлерді анықтағаннан кейін біз бағдарламалау бөлігіне кіре аламыз. Бұл бағдарламада үш бөлім бар. Бірі-дауыс беру машинасының интерфейсін жасау, екіншісі-түймелердің сенсорлық нүктелерін алу және сенсорға негізделген түймелерді анықтау, ақырында нәтижелерді есептеп, оларды Arduino жадына сақтау.
1. UI құру:
Мен үш түйме мен жобаның атауымен қарапайым 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 тіктөртбұрыштың бастапқы нүктесінің 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: «);
//Serial.print (p.x);
//Serial.print( Y: «);
//Serial.print (p.y);
Енді біз әр батырманың X және Y координаттарын білетіндіктен, 'if' операторының көмегімен пайдаланушының қай жерге тигенін болжай аламыз.
егер (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println («1 -үміткер»);
Сайлаушы кандидат батырмасын басқанда, саусақ ізі сенсорындағы саусақты сканерлеу сұралады. Егер саусақ идентификаторы рұқсат етілсе, онда сайлаушы дауыс беруге құқылы. Егер кез келген тіркелмеген қолданушы дауыс бергісі келсе, онда саусақ ізі модулі жүйеде оның идентификаторын анықтамайды және дисплейде «Кешіріңіз, сіз дауыс бере алмайсыз» жазуы көрсетіледі.
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);
voice2 = EEPROM.read (1);
voice3 = EEPROM.read (2);
егер (дауыс)
{
егер ((дауыс1> дауыс2 && дауыс1> дауыс3))
{
Serial.print («Can1 жеңеді»);
кешіктіру (2000);
}
4 -қадам: Arduino көмегімен саусақ ізі бойынша дауыс беру жүйесін тексеру
Жобаны тексеру үшін Arduino Uno -ны ноутбукке қосып, берілген кодты жүктеңіз. Код жүктелгеннен кейін TFT дисплейі үміткердің атын көрсетуі керек. Біреу кандидаттың атын түрткенде, құрылғы саусақ ізін сканерлеуді сұрайды. Егер саусақ ізі жарамды болса, онда пайдаланушылардың дауысы есептеледі, бірақ егер үлгі деректер базасының жазбаларына сәйкес келмесе, дауыс беруге рұқсат берілмейді. Әрбір кандидатқа берілген дауыстардың жалпы саны EEPROM -де сақталады және ең көп дауыс жинаған кандидат жеңіске жетеді.
Сізге оқулық ұнады және пайдалы нәрсе білдіңіз деп үміттенемін. Егер сізде қандай да бір сұрақтар туындаса, төмендегі түсініктеме бөлімінде бізге хабарлаңыз, сонымен қатар осындай қызықты жобалар үшін нұсқаулықта бізді қадағалаңыз.
Ұсынылған:
Дауыс беру: 3 қадам
Vootle: негіздеме/шабыт Google профилінің жарнама параметрлерін зерттей отырып, Google профильдері пайдаланушыларды қызығушылықтарына қарай белгілеу үшін іздеу тарихы мен шолу әрекетін бақылайтынын біле бастайды. Деректерді талдауға негізделген Google жеңілдетеді
Доктор Сейс Макей Макей Дауыс беру: 4 қадам
Макей Макей Доктор Сеусс кітабына дауыс беру: Америкада оқу апталығында біз студенттерді сүйікті доктор Сеусс кітабына дауыс бердік. Интерактивті дисплей біздің негізгі вестибюльде барлығына көрінді. Студенттер өз таңдауын басып, 1 -ші және 2 -ші нәрседен хабарлама алды
Саусақ ізі бойынша дауыс берудің онлайн жүйесі (FVOS): 5 қадам
Саусақ ізі бойынша дауыс берудің онлайн жүйесі (FVOS): саусақ ізі бойынша дауыс беру жүйесі сайлаушыларға саусақ ізін құрылғы арқылы сканерлеу және деректерді серверге сақтау арқылы өз ақпаратын жинау және растау арқылы толық цифрландырылған түрде дауыс беруге мүмкіндік береді. Ол пайдаланушыға ыңғайлы G
NBIoT мәліметтерін беру BC95G модеміне негізделген қалқандарды қалай қолдануға болады - UDP тестісі және желі күйінің сигнализациясы: 4 қадам
NBIoT деректерді беру BC95G модем негізіндегі қалқандарды қалай қолдану керек - UDP тесті және желі күйінің сигнализациясы: Бұл жобалар туралы: Quectel BC95G модемімен жабдықталған itbrainpower.net қалқаны арқылы xyz -mIoT көмегімен NB IoT желісінің мүмкіндіктері мен шикізат UDP деректерін жіберуді тексеріңіз. 10-15 минут. Қиындық: орташа. Ремарк: дәнекерлеу дағдылары қажет
AIY дауыс жинағына негізделген сөйлейтін түс сенсоры: 4 қадам
AIY дауыстық жиынтығына негізделген сөйлейтін түс сенсоры: жақында Брайль шрифті туралы біраз білгеннен кейін, мен көру қабілеті нашар адамдарға нақты пайдасы тиетін Raspberry Pi үшін AIY дауыс жинағын қолдана отырып бірдеңе жасай аламын ба деп ойладым. . Төменде сипатталғандай, сіз прототип таба аласыз