====== Ёмкостный сканер отпечатков пальцев (встраиваемый): инструкция, подключение, примеры использования и документация ====== Используйте [[amp>product/fingerprint-reader-capacitive-round?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|оптический сканер]] для управления электроникой с помощью биометрических данных или создания системы учёта рабочего времени. Сенсор отпечатков пальцев подружит дактилоскопическую идентификацию пользователей с миром Arduino или Raspberry Pi.  {{ :products:fingerprint-reader-capacitive-round:fingerprint-reader-capacitive-round.4.jpg?nolink |}} ===== Режим работы через COM-порт ===== Сканер общается с управляющей платой по протоколу [[видеоуроки:6-serial-и-processing|UART]]. В зависимости от управляющей платформы выберите вариант подключения. ==== HardwareSerial ==== На управляющей плате [[amp>product/iskra-js?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki |Iskra JS]] и Arduino платах с микроконтроллером ''ATmega32U4 / ATSAMD21G18'', интерфейс UART выведен на контактные пины, а данные по USB переедаются через виртуальный COM-порт. Это даёт возможность одновременно подключить Barcode-модуль к аппаратному UART и выполнять отладку по USB. Список поддерживаемых плат: * [[amp>product/iskra-js?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Iskra JS]] * [[amp>product/iskra-neo?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Iskra Neo]] * [[amp>product/arduino-leonardo?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Arduino Leonardo]] === Схема подключения === При подключении к платам формата Arduino R3 удобно использовать [[amp>/product/arduino-troyka-shield?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki|Troyka Shield]]. {{ :products:fingerprint-reader-capacitive-round:fingerprint-reader-capacitive-round-arduino-hardwareserial.png?nolink |}} В иллюстрации ошибка. Питание сенсора должно быть строго 3,3 вольта. === Исходный код === В качестве примера все сканированные штрихкоды выведем в консоль. // serial-порт к которому подключён Barcode-модуль #define BARCODE_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.println("Serial init OK"); // открываем Serial-соединение с Barcode-модулем на скорости 9600 бод BARCODE_SERIAL.begin(9600); // печатаем строку Serial.println("Init is OK"); // печатаем строку Serial.print("Init is OK on speed 9600"); } void loop() { // если приходят данные из Barcode-модуля - отправим их в порт компьютера if (BARCODE_SERIAL.available()) { Serial.write(BARCODE_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Barcode-модуль if (Serial.available()) { BARCODE_SERIAL.write(Serial.read()); } } ==== SoftwareSerial ==== На управляющих платформах Arduino с микроконтроллером ''ATmega328 / ATmega2560'', интерфейс UART выведен на контактные пины платы и он же используется для отладки по USB. Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Barcode-модулем. Решение проблемы — программный UART. Подключите пины ''TX'' и ''RX'' Barcode модуля к другим контактам управляющей платы и используйте библиотеку [[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-round:fingerprint-reader-capacitive-round-arduino-softwareserial.png?nolink |}} В иллюстрации ошибка. Питание сенсора должно быть строго 3,3 вольта. === Исходный код === В качестве примера все сканированные штрихкоды выведем в консоль. // библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и назначаем ему пины RX и TX SoftwareSerial mySerial(10, 11); // serial-порт к которому подключён Barcode-модуль #define BARCODE_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.print("Serial init OK"); // открываем Serial-соединение с Barcode-модулем на скорости 9600 бод BARCODE_SERIAL.begin(9600); // печатаем строку Serial.println("Init is OK"); // печатаем строку Serial.print("Init is OK on speed 9600"); } void loop() { // если приходят данные из Barcode-модуля - отправим их в порт компьютера if (BARCODE_SERIAL.available()) { Serial.write(BARCODE_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Barcode-модуль if (Serial.available()) { BARCODE_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 и общение с Barcode-модулем. Но на платах такого форм-фактора есть ещё дополнительно три аппаратных 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=barcode-scanner&utm_medium=wiki | Arduino Mega 2560]] * [[amp>product/iskra-mega?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Iskra Mega]] * [[amp>product/arduino-adk?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Arduino ADK]] * [[amp>product/arduino-due?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki | Arduino Due]] === Схема подключения === Для примера подключим управляющие пины сканера ''TX'' и ''RX'' к аппаратному интерфейсу UART ''Serial2'' — на ''17'' и ''16'' контакты управляющей платы. При подключении удобно использовать [[amp>/product/arduino-troyka-mega-tail-shield?utm_source=man&utm_campaign=barcode-scanner&utm_medium=wiki|Troyka Mega Tail Shield]]. {{ :products:fingerprint-reader-capacitive-round:fingerprint-reader-capacitive-round-arduino-hardwareserial-mega.png?nolink |}} В иллюстрации ошибка. Питание сенсора должно быть строго 3,3 вольта. === Исходный код === В качестве примера все сканированные штрихкоды выведем в консоль. // serial-порт к которому подключён Barcode-модуль #define BARCODE_SERIAL Serial2 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.println("Serial init OK"); // открываем Serial-соединение с Barcode-модулем на скорости 9600 бод BARCODE_SERIAL.begin(9600); // печатаем строку Serial.println("Init is OK"); // печатаем строку Serial.print("Init is OK on speed 9600"); } void loop() { // если приходят данные из Barcode-модуля - отправим их в порт компьютера if (BARCODE_SERIAL.available()) { Serial.write(BARCODE_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Barcode-модуль if (Serial.available()) { BARCODE_SERIAL.write(Serial.read()); } } ===== Характеристики ===== * Микроконтроллер: Anviz ANV401 * Сенсор: ёмкостный * Разрешение отпечатка: 192×192 * Плотность сканирования: 508 точек на дюйм * Кол-во сохранённых отпечатков: 500 * Кол-во уровней доступа пользователей: 10 * Ложные положительные срабатывания: 0,001% * Ложные отрицательные срабатывания: 0,1% * Время сравнения отпечатка: 0,5 с * Устойчивость к электростатическому разряду: 15 кВ (воздух), 8 кВ (контакт) * Интерфейсы: UART * Напряжение питания: 3,3 В * Ток потребления: <50 мА (рабочий режим), <16 мА (режим сна) * Габариты сканера: 19×19×6 мм ===== Ресурсы ===== * [[amp>product/fingerprint-reader-capacitive-round?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|Ёмкостный сканер отпечатков (встраиваемый)]] в магазине. * [[https://github.com/amperka/hardware-drawings/blob/master/fingerprint-reader-capacitive-round.svg|Векторное изображение сканера]] * {{ :products:fingerprint-reader-capacitive-round:fingerprint-reader-capacitive-round-user-manual.pdf |User Manual на оптический модуль отпечатков пальца}}