====== Оптический сканер отпечатков пальцев: инструкция, подключение, примеры использования и документация ======
Используйте [[amp>product/fingerprint-reader-optical?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|оптический сканер]] для управления электроникой с помощью биометрических данных или создания системы учёта рабочего времени. Сенсор отпечатков пальцев подружит дактилоскопическую идентификацию пользователей с миром Arduino или Raspberry Pi.
{{ :products:fingerprint-reader-optical:fingerprint-reader-optical.3.jpg?nolink |}}
===== Подключение к Arduino =====
Сканер общается с управляющей платой по протоколу [[видеоуроки:6-serial-и-processing|UART]]. В зависимости от управляющей платформы выберите вариант подключения.
==== HardwareSerial ====
На управляющей плате [[amp>product/iskra-js?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki |Iskra JS]] и Arduino платах с микроконтроллером ''ATmega32U4 / ATSAMD21G18'', интерфейс UART выведен на контактные пины, а данные по USB переедаются через виртуальный COM-порт. Это даёт возможность одновременно подключить модуль к аппаратному UART и выполнять отладку по USB.
Список поддерживаемых плат:
* [[amp>product/iskra-js?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki | Iskra JS]]
* [[amp>product/iskra-neo?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki | Iskra Neo]]
* [[amp>product/arduino-leonardo?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki | Arduino Leonardo]]
=== Схема подключения ===
При подключении к платам формата Arduino R3 удобно использовать [[amp>/product/arduino-troyka-shield?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|Troyka Shield]].
{{ :products:fingerprint-reader-optical:fingerprint-reader-optical-arduino-hardwareserial.png?nolink |}}
=== Исходный код ===
В качестве примера все сканированные штрихкоды выведем в консоль.
// 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("Barcode init is OK");
// печатаем строку
Serial.print("GPS 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 и общение со сканером отпечатков пальцев. Решение проблемы — программный 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-optical:fingerprint-reader-optical-arduino-softwareserial.png?nolink |}}
=== Исходный код ===
В качестве примера все сканированные штрихкоды выведем в консоль.
// библиотека для работы программного 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("Barcode init is OK");
// печатаем строку
Serial.print("GPS 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 и общение со сканером отпечатков.
Но на платах такого форм-фактора есть ещё дополнительно три аппаратных 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-optical&utm_medium=wiki | Arduino Mega 2560]]
* [[amp>product/iskra-mega?utm_source=man&utm_campaign=fingerprint-reader-optical&utm_medium=wiki | Iskra Mega]]
* [[amp>product/arduino-adk?utm_source=man&utm_campaign=fingerprint-reader-optical&utm_medium=wiki | Arduino ADK]]
* [[amp>product/arduino-due?utm_source=man&utm_campaign=fingerprint-reader-optical&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-optical&utm_medium=wiki|Troyka Mega Tail Shield]].
{{ :products:fingerprint-reader-optical:fingerprint-reader-optical-arduino-hardwareserial-mega.png?nolink |}}
=== Исходный код ===
В качестве примера все сканированные штрихкоды выведем в консоль.
// 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("Barcode init is OK");
// печатаем строку
Serial.print("GPS 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());
}
}
===== Габаритный чертёж =====
==== Габариты платы управления =====
{{ :products:fingerprint-reader-optical:fingerprint-reader-optical-board-mechanical-drawing.png?nolink |}}
==== Габариты сенсора =====
{{ :products:fingerprint-reader-optical:fingerprint-reader-optical-sensor-mechanical-drawing.png?nolink |}}
===== Характеристики =====
* Микроконтроллер: STM32F205
* Сенсор: оптический
* Разрешение отпечатка: 248×296
* Кол-во сохранённых отпечатков: до 1000
* Кол-во уровней доступа пользователей: 10
* Ложные положительные срабатывания: <0,001%
* Ложные отрицательные срабатывания: <0,1%
* Время считывания отпечатка: <0,5 с
* Время сравнения отпечатка: <0,5 с
* Формат представления отпечатков: ISO19794-2
* Интерфейс: UART
* Скорость передачи данных: 9600–57600 бит/с
* Напряжение питания: 3,3–5 В
* Ток потребления: <50 мА
* Габариты модуля управления: 46×28 мм
* Габариты считывателя: 48×21×25 мм
===== Ресурсы =====
* [[amp>product/fingerprint-reader-optical?utm_source=man&utm_campaign=fingerprint-reader&utm_medium=wiki|Оптический сканер отпечатков]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/fingerprint-reader-optical.svg|Векторное изображение сканера]]
* {{ :products:fingerprint-reader-optical:fingerprint-reader-optical-user-manual.pdf |User Manual на оптический модуль отпечатков пальца}}