Mundarija:
- 1 -qadam: Biometrik ovoz berish mashinasini yaratish uchun zarur bo'lgan komponentlar
- 2 -qadam: Arduino yordamida biometrik ovoz berish mashinasining sxemasi
- 3 -qadam: Manba kodi va bosqichma -bosqich kodni tushuntirish
- 4 -qadam: Arduino yordamida barmoq izlari bilan ovoz berish tizimini tekshirish
Video: Arduino yordamida barmoq iziga asoslangan biometrik ovoz berish mashinasi: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Biz hammamiz bilamizki, foydalanuvchi ovoz berish uchun tugmani bosishi kerak bo'lgan elektron ovoz berish mashinasi. Ammo bu mashinalar boshidanoq temperament uchun tanqid qilingan. Shunday qilib, hukumat barmoq izlariga asoslangan ovoz berish mashinasini joriy etishni rejalashtirmoqda, bunda foydalanuvchilar uning barmoq izlari taassurotiga ko'ra ovoz berishlari mumkin. Bu tizim nafaqat takroriy ovoz berish ehtimolini yo'q qiladi, balki har qanday manipulyatsiyani oldini oladi.
Shunday qilib, ushbu loyihada biz Arduino Uno, TFT displeyi va barmoq izi sensori yordamida biometrik ovoz berish mashinasining prototipini qurmoqchimiz. Biz ilgari NodeMCU bilan R305 barmoq izi sensori yordamida biometrik tashriflar tizimini qurganmiz, lekin bu erda biz Arduino bilan birgalikda rivojlangan GT-511C3 barmoq izi sensoridan foydalanamiz.
1 -qadam: Biometrik ovoz berish mashinasini yaratish uchun zarur bo'lgan komponentlar
- Arduino Uno
- 2,4 dyuymli TFT LCD displeyli ekran
- GT-511C3 barmoq izi sensori
Bu 2,4 dyuymli TFT displeyi ilgari Arduino bilan IoT asosidagi restoran menyusiga buyurtma berish tizimini yaratish uchun ishlatilgan.
2 -qadam: Arduino yordamida biometrik ovoz berish mashinasining sxemasi
Ushbu loyihaning sxemasi juda oddiy, chunki biz faqat TFT displeyi va barmoq izlari sensori modulini Arduino Uno bilan bog'laymiz. Barmoq izi sensori VCC va GND pinlari Arduino -ning 5V va GND pinlariga, TX va RX pinlari esa Arduino Uno -ning 11 va 12 raqamli pinlariga ulangan.
2,4 dyuymli TFT LCD displey Arduino qalqoni bo'lib, uni quyidagi rasmda ko'rsatilgandek to'g'ridan -to'g'ri Arduino Uno -ga o'rnatish mumkin. TFT displeyida 28 ta pin bor, ular Arduino Uno -ga juda mos keladi, shuning uchun men barmoq izlari sensorini Arduino -ning orqa tomoniga lehimlashga majbur bo'ldim.
3 -qadam: Manba kodi va bosqichma -bosqich kodni tushuntirish
Arduino yordamida barmoq izlari bilan ovoz berish tizimi loyihasining to'liq kodi maqolaning oxirida berilgan; bu erda biz kodning ba'zi muhim funktsiyalarini tushuntiramiz.
Kod SPFD5408, Software Serial va FPS_GT511C3 kutubxonalaridan foydalanadi. SPFD5408 kutubxonasi - bu asl Adafruit kutubxonasining o'zgartirilgan versiyasi. Bu kutubxona fayllarini quyidagi havolalardan yuklab olish mumkin:
- SPFD5408 kutubxonasi
- Dasturiy ta'minot seriyasi
- FPS_GT511C3
Kutubxonalarni qo'shib, ba'zi muhim parametrlarni aniqlagandan so'ng, dasturlash qismiga o'tishimiz mumkin. Ushbu dasturda uchta bo'lim mavjud. Ulardan biri-ovoz berish mashinasining UI-ni yaratish, ikkinchisi-tugmachalarga tegish nuqtalarini olish va sensorli tugmalarni aniqlash va natijalarini hisoblash va ularni Arduino xotirasida saqlash.
1. UI yaratish:
Men uchta tugma va loyihaning nomi bilan oddiy UI yaratdim. TFT displey kutubxonasi sizga chiziqlar, to'rtburchaklar, doiralar, belgilar, satrlar va boshqa rang va o'lchamdagi boshqa narsalarni chizish imkonini beradi. Bu erda fillRoundRect va drawRoundRect funktsiyalari yordamida ikkita to'rtburchaklar tugmalar yaratiladi. Tft.drawRoundRect funktsiyasining sintaksisi quyida keltirilgan:
tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t soat, int16_t radiusi, uint16_t rang)
Qaerda:
x0 = X to'rtburchaklar boshlanish nuqtasining koordinatasi
y0 = Y to'rtburchakning boshlang'ich nuqtasining Y koordinatasi
w = To'rtburchak kengligi
h = To'rtburchak balandligi
radius = dumaloq burchak radiusi
color = Rect rangi.
void drawHome ()
{
tft.fillScreen (oq);
tft.drawRoundRect (0, 0, 319, 240, 8, oq); // Sahifa chegarasi
tft.fillRoundRect (10, 70, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 70, 220, 50, 8, oq); // Ovoz bering
tft.fillRoundRect (10, 160, 220, 50, 8, GOLD);
tft.drawRoundRect (10, 160, 220, 50, 8, oq); // Ro'yxatdan o'tish
tft.fillRoundRect (10, 250, 220, 50, 8, GOLD); // Natija
tft.drawRoundRect (10, 250, 220, 50, 8, oq);
tft.setCursor (65, 5);
tft.setTextSize (3);
tft.setTextColor (CYAN);
tft.print ("Ovoz berish");
tft.setCursor (57, 29);
tft.print ("Mashina");
tft.setTextSize (3);
tft.setTextColor (oq);
tft.setCursor (25, 82);
tft.print ("1 -nomzod");
tft.setCursor (25, 172);
tft.print ("2 -nomzod");
tft.setCursor (25, 262);
tft.print ("3 -nomzod");
}
2. Sensorli nuqtalarni olish va aniqlash tugmalari:
Endi kodning ikkinchi bo'limida biz tugmachaning tegish nuqtalarini aniqlaymiz va keyin tugmachani bashorat qilish uchun shu nuqtalardan foydalanamiz. ts.getPoint () funktsiyasi TFT displeyida foydalanuvchi tegishini aniqlash uchun ishlatiladi. ts.getPoint tegilgan maydon uchun Raw ADC qiymatlarini beradi. Bu RAW ADC qiymatlari keyinchalik xarita funksiyasi yordamida piksel koordinatalariga aylantiriladi.
TSPoint p = ts.getPoint ();
agar (p.z> ts.pressureThreshhold)
{
p.x = xarita (p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = xarita (p.y, TS_MAXY, TS_MINY, 0, 240);
//Serial.print("X: ");
//Serial.print(p.x);
//Serial.print("Y: ");
//Serial.print (p.y);
Endi, biz har bir tugma uchun X va Y koordinatalarini bilganimiz uchun, 'if' iborasi yordamida foydalanuvchi qaerga tegganligini taxmin qilishimiz mumkin.
agar (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)
{
Serial.println ("1 -nomzod");
Saylovchi nomzod tugmachasini bosganda, undan barmoq izi skanerida barmog'ini skanerlash so'raladi. Agar barmoq identifikatori tasdiqlangan bo'lsa, u holda ovoz beruvchi ovoz beradi. Agar biron bir ro'yxatdan o'tmagan foydalanuvchi ovoz berishni xohlasa, barmoq izi moduli uning identifikatorini tizimda aniqlamaydi va displeyda "Kechirasiz, ovoz berolmaysiz" yozuvi paydo bo'ladi.
agar (fps. IsPressFinger ())
{
fps. CaptureFinger (noto'g'ri);
int id = fps. Identify1_N ();
agar (id <200)
{
msg = "1 -nomzod";
ovoz berish1 ++;
EEPROM.write (0, ovoz1);
tft.setCursor (42, 170);
tft.print ("Rahmat");
kechikish (3000);
drawHome ();
3. Natija:
Oxirgi qadam - EEPROM xotirasidan ovozlarni hisoblash va har uch nomzodning ovozlarini solishtirish. Eng ko'p ovoz to'plagan nomzod g'alaba qozonadi. Natijaga faqat ketma -ket monitor orqali kirish mumkin va TFT ekranida ko'rsatilmaydi.
ovoz1 = EEPROM.read (0);
ovoz2 = EEPROM.read (1);
ovoz3 = EEPROM.read (2);
agar (ovoz berish)
{
agar ((ovoz1> ovoz2 && ovoz1> ovoz3))
{
Serial.print ("Can1 yutadi");
kechikish (2000);
}
4 -qadam: Arduino yordamida barmoq izlari bilan ovoz berish tizimini tekshirish
Loyihani sinab ko'rish uchun Arduino Uno -ni noutbukga ulang va berilgan kodni yuklang. Kod yuklanganidan so'ng, TFT displeyida nomzodning ismi ko'rsatilishi kerak. Kimdir nomzodning nomiga tegsa, mashina barmoq izlari skanerini skanerlashni so'raydi. Agar barmoq izi haqiqiy bo'lsa, foydalanuvchining ovozi hisobga olinadi, lekin agar ma'lumotlar bazasi yozuvlari mos kelmasa, ovoz berishga ruxsat berilmaydi. Har bir nomzod uchun ovozlarning umumiy soni EEPROMda saqlanadi va eng ko'p ovoz to'plagan nomzod g'alaba qozonadi.
Umid qilamanki, sizga darslik yoqdi va foydali narsalarni bilib oldingiz. Agar sizda biron bir savol bo'lsa, iltimos, quyida sharhlar bo'limida bizga xabar bering va boshqa qiziqarli loyihalar uchun "Instructable" da bizni kuzatib boring.
Tavsiya:
O'zgaruvchan tezlik bilan ishlov berish mashinasi: 9 qadam
O'zgaruvchan tezlik bilan ishlov berish mashinasi: Bu mavzuda biz shaxsiy foydalanish uchun qoliplash mashinasini qanday tayyorlash haqida gaplashmoqchimiz. Biz ATMega328p uchun minimal tizimni yaratmoqchi bo'lganimizda shunday fikrga keldik. Biz chizish bosqichini bajarganimizda PCB sxemasini chop etishdagi eng zerikarli qadam. Bu behuda ketmoqda
Barmoq izi bilan ovoz berishning onlayn tizimi (FVOS): 5 qadam
Barmoq izi bilan ovoz berishning onlayn tizimi (FVOS): barmoq izlari orqali ovoz berishning onlayn tizimi, saylovchilarga barmoq izlarini skanerlash va ma'lumotlarni serverga saqlash orqali o'z ma'lumotlarini to'plash va tasdiqlash orqali to'liq raqamli shaklda ovoz berish imkoniyatini beradi. U foydalanuvchilar uchun qulay G
Arduino yordamida bankomat (barmoq izi+RFID kartasi): 4 qadam (rasmlar bilan)
Arduino-dan foydalanadigan bankomat (barmoq izi+RFID kartasi): Salom do'stlar, men Arduino-dan foydalangan holda bankomat haqida yangi g'oya bilan qaytdim. Bu naqd pulsiz xizmat ko'rsatish mumkin bo'lmagan qishloq joylarida foydali bo'lishi mumkin. Sizga yoqdi. Ishni boshlaylik
Kir yuvish mashinasi xabar berish sensori: 6 qadam (rasmlar bilan)
Kir yuvish mashinasi bildirish sensori: kir yuvish mashinasi sensori kir yuvish mashinamning tepasida joylashgan va mashinadan tebranishni aniqlash uchun akselerometrdan foydalanadi. Yuvish tugaganini sezganda, u menga telefonimga bildirishnoma yuboradi. Men buni qurdim, chunki mashinaning o'zi
PCB bilan ishlov berish mashinasi. Pul va vaqtni tejang .: 8 qadam
PCB bilan ishlov berish mashinasi. Pul va vaqtni tejang ….: Rasmda ko'rib turganingizdek. Bu mening DIY o'yma mashinam. Men bu o'yma mashinasini qariyb 10 yil oldin qurganman (1998) … Keyingi qadam - qurilish detallari ….. Bahramand bo'ling