====== Ёмкостный сканер отпечатков пальцев: инструкция, подключение, примеры использования и документация ====== Используйте [[amp>product/fingerprint-reader-capacitive?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|оптический сканер]] для управления электроникой с помощью биометрических данных или создания системы учёта рабочего времени. Сенсор отпечатков пальцев подружит дактилоскопическую идентификацию пользователей с миром Arduino или Raspberry Pi.  {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive.4.jpg?nolink |}} ===== Режим работы через USB ===== Сканер штрихкодов работает напрямую с компьютером без всяких приложений: он притворяется типовой USB-клавиатурой и выдаёт считанные данные в виде строки текста. Именно такой режим работы задан по умолчанию. ===== Режим работы через COM-порт ===== Barcode сканер общается с управляющей платой по протоколу [[видеоуроки:6-serial-и-processing|UART]]. В зависимости от управляющей платформы выберите вариант подключения. ==== HardwareSerial ==== На управляющей плате [[amp>product/iskra-js?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki |Iskra JS]] и Arduino платах с микроконтроллером ''ATmega32U4 / ATSAMD21G18'', интерфейс UART выведен на контактные пины, а данные по USB переедаются через виртуальный COM-порт. Это даёт возможность одновременно подключить модуль к аппаратному UART и выполнять отладку по USB. Список поддерживаемых плат: * [[amp>product/iskra-js?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Iskra JS]] * [[amp>product/iskra-neo?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Iskra Neo]] * [[amp>product/arduino-leonardo?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Arduino Leonardo]] === Схема подключения === При подключении к платам формата Arduino R3 удобно использовать [[amp>/product/arduino-troyka-shield?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki|Troyka Shield]]. {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-arduino-hardwareserial.png?nolink |}} === Исходный код === В качестве примера все сканированные штрихкоды выведем в консоль. // serial-порт к которому подключён fingerprint scanner #define FINGER_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.println("Serial init OK"); // открываем Serial-соединение с fingerprint scanner на скорости 9600 бод FINGER_SERIAL.begin(9600); // печатаем строку Serial.println("Fingerprint scanner init is OK"); // печатаем строку Serial.print("Fingerprint scanner init is OK on speed 9600"); } void loop() { // если приходят данные из Barcode-модуля - отправим их в порт компьютера if (FINGER_SERIAL.available()) { Serial.write(FINGER_SERIAL.read()); } // если приходят данные из компьютера - отправим их в fingerprint scanner if (Serial.available()) { FINGER_SERIAL.write(Serial.read()); } } ==== SoftwareSerial ==== На управляющих платформах Arduino с микроконтроллером ''ATmega328 / ATmega2560'', интерфейс UART выведен на контактные пины платы и он же используется для отладки по USB. Это означает невозможность использовать одновременно прошивку/отладку по USB и общение со сканером отпечатков пальца. Решение проблемы — программный UART. Подключите пины ''TX'' и ''RX'' модуля к другим контактам управляющей платы и используйте библиотеку [[https://www.arduino.cc/en/Reference/SoftwareSerial|SoftwareSerial]]. === Схема подключения === Для примера подключим управляющие пины сканера ''TX'' и ''RX'' — на ''10'' и ''11'' контакты управляющей платы. При подключении удобно использовать [[amp>/product/arduino-troyka-shield?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki|Troyka Shield]]. {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-arduino-softwareserial.png?nolink |}} === Исходный код === В качестве примера все сканированные штрихкоды выведем в консоль. // библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и назначаем ему пины RX и TX SoftwareSerial mySerial(10, 11); // serial-порт к которому подключён fingerprint scanner #define FINGER_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.print("Serial init OK"); // открываем Serial-соединение с fingerprint scanner на скорости 9600 бод FINGER_SERIAL.begin(9600); // печатаем строку Serial.println("fingerprint scanner init is OK"); // печатаем строку Serial.print("fingerprint scanner init is OK on speed 9600"); } void loop() { // если приходят данные из fingerprint scanner - отправим их в порт компьютера if (FINGER_SERIAL.available()) { Serial.write(FINGER_SERIAL.read()); } // если приходят данные из компьютера - отправим их в fingerprint scanner if (Serial.available()) { FINGER_SERIAL.write(Serial.read()); } } ==== HardwareSerial Mega==== На платформах форм-фактора [[amp>product/arduino-mega-2560?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Arduino Mega 2560]] интерфейс UART выведен на контактные пины платы и он же используется для отладки по USB. Это означает невозможность использовать одновременно прошивку/отладку по USB и общение со сканером отпечатков пальцев. Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART: * ''Serial1:'' пины 19(RX1) и 18(TX1); * ''Serial2:'' пины 17(RX2) и 16(TX2); * ''Serial3:'' пины 15(RX3) и 14(TX3). Список поддерживаемых плат: * [[amp>product/arduino-mega-2560?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Arduino Mega 2560]] * [[amp>product/iskra-mega?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Iskra Mega]] * [[amp>product/arduino-adk?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Arduino ADK]] * [[amp>product/arduino-due?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki | Arduino Due]] === Схема подключения === Для примера подключим управляющие пины сканера ''TX'' и ''RX'' к аппаратному интерфейсу UART ''Serial2'' — на ''17'' и ''16'' контакты управляющей платы. При подключении удобно использовать [[amp>/product/arduino-troyka-mega-tail-shield?utm_source=man&utm_campaign=fingerprint-reader-capacitive&utm_medium=wiki|Troyka Mega Tail Shield]]. {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-arduino-hardwareserial-mega.png?nolink |}} === Исходный код === В качестве примера все сканированные штрихкоды выведем в консоль. // serial-порт к которому подключён fingerprint scanner #define FINGER_SERIAL Serial2 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.println("Serial init OK"); // открываем Serial-соединение с Barcode-модулем на скорости 9600 бод FINGER_SERIAL.begin(9600); // печатаем строку Serial.println("fingerprint scanner init is OK"); // печатаем строку Serial.print("fingerprint scanner init is OK on speed 9600"); } void loop() { // если приходят данные из fingerprint scanner - отправим их в порт компьютера if (FINGER_SERIAL.available()) { Serial.write(FINGER_SERIAL.read()); } // если приходят данные из компьютера - отправим их в fingerprint scanner if (Serial.available()) { FINGER_SERIAL.write(Serial.read()); } } ===== Габаритные чертежи ===== ==== Габариты платы управления ===== {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-board-mechanical-drawing.png?nolink |}} ==== Габариты сенсора ===== {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-sensor-mechanical-drawing.png?nolink |}} ===== Характеристики ===== * Микроконтроллер: STM32F205 * Сенсор: ёмкостный * Разрешение отпечатка: 192×256 * Плотность сканирования: 508 точек на дюйм * Кол-во сохранённых отпечатков: 1000 (с возможностью расширения до 4000) * Кол-во уровней доступа пользователей: 10 * Ложные положительные срабатывания: 0,0001% * Ложные отрицательные срабатывания: 0,01% * Время сравнения отпечатка: 1 с * Устойчивость к электростатическому разряду: 15 кВ (воздух), 8 кВ (контакт) * Интерфейсы: UART, USB * Напряжение питания: 3,3–5 В * Ток потребления: <40 мА * Габариты модуля управления: 45×30 мм * Габариты считывателя: 33×20 мм ===== Ресурсы ===== * [[amp>product/fingerprint-reader-capacitive?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|Ёмкостный сканер отпечатков]] в магазине. * [[https://github.com/amperka/hardware-drawings/blob/master/fingerprint-reader-capacitive.svg|Векторное изображение сканера]] * {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-user-manual.pdf |User Manual на оптический модуль отпечатков пальца}} * {{ :products:fingerprint-reader-capacitive:fingerprint-reader-capacitive-development-manual.pdf |Development Manual на оптический модуль отпечатков пальца}} * {{ :products:fingerprint-reader-capacitive:usb-fingerprint-sensor-demo.zip |Утилита для работы со сканером через ПК (USB, OS Windows)}}