цифровая электроника
вычислительная техника
встраиваемые системы

 

Код для взаимодействия микроконтроллера и сканера отпечатков пальцев

Автор: Mike(admin) от 23-07-2014, 06:53

В некоторых приложениях, требующих повышенной безопасности, желательно иметь некоторый модуль для аутентификации пользователя. Таким модулем может служить сканер отпечатков пальцев, например, SM-630.


сканер отпечатков пальцев

Встроенный DSP-процессор позволяет без особых проблем организовать взаимодействие между контроллером и сканером благодаря богатому набору управляющих команд. Ниже представлен пример кода такого взаимодействия.

4-битный режим передачи данных для ЖК-дисплея

Автор: Mike(admin) от 13-07-2014, 08:17

Обычно передачу данных на символьные ЖК-дисплеи осуществляют по 8 линиям. Но в целях экономии количества выводов микроконтроллера такую передачу можно осуществить всего лишь по четырем линиям.


MC21605A6W

Нижеприведенный код на языке C позволяет осуществить четырехпроводное подключение микроконтроллера ATMEGA328P к символьному дисплею MC21605A6W (16x2). При этом следует учесть, что выводы DB0:3 и RW должны быть заземлены.

Связываем акселерометр ADXL345 и микроконтроллер

Автор: Mike(admin) от 5-07-2014, 15:55

Акселерометр ADXL345 представляет собой 3-осевой датчик ускорения с возможностью связи как по интерфейсу SPI, так и по I2C. Он довольно дешев и прост в эксплуатации, поэтому хорошо подходит для несложных приложений инерциальной навигации.


акселерометр ADXL345

Представленный код позволяет наладить взаимодействие между ADXL345 и микроконтроллером (в данном случае код для PIC16 и компилятора CCS PICC, но при желании можно переделать под любой МК) по шине I2C. С помощью него можно инициализировать, настраивать акселерометр, записывая в него данные по определенному адресу, и считывать данные с самого акселерометра.

WiFinder – оповещение о присутствии устройства в сети WiFi

Автор: Mike(admin) от 30-06-2014, 07:39

Если вы живете в общежитии с сетью WiFi и хотели бы, чтобы нарушающее ваше одиночество возвращение соседей по комнате не было столь внезапным, то можно воспользоваться очень полезным в подобных случаях кодом WiFinder.


WiFinder

Этот довольно простой скрипт, написанный на Python, определяет появление в сети нового устройства, например, телефона соседа, если, конечно, на этом телефоне активирован модуль WiFi.

Вычисление CRC-16

Автор: Mike(admin) от 22-06-2014, 16:05

Представленный код позволяет реализовать основанный на полиномиальной арифметике алгоритм расчёта контрольной суммы CRC16.


CRC-16

Для выполнения функции алгоритма нужно сначала присвоить константе POLYNOM одно из перечисленных до этого значений CRC16.

Простой метод определения направления вращения вала инкрементального энкодера

Автор: Mike(admin) от 12-06-2014, 07:21

Определить направление вращения двухбитного инкрементального энкодера можно довольно простым способом. При этом не нужно организовывать ветвления из структур if-then, которые оценивают оба бита при каждом переходе.


инкрементальный энкодер

Здесь применяется операция исключающего ИЛИ над младшим битом новой выборки и старшим битом старой выборки.

Избавьтесь от Google Glass в своей сети

Автор: Mike(admin) от 8-06-2014, 07:11

Очки дополненной реальности Google Glass, не смотря на относительно высокую стоимость, набирают популярность. Впрочем, это нравится далеко не каждому. Люди, не желающие лишний раз попадать в объективы каких-либо видеокамер, далеко не в восторге от такой новинки. Энтузиаст по имени Julian, которого можно причислить к этой категории людей, разработал специальный скрипт glasshole, позволяющий выявить присутствие Google Glass в сети и «выпнуть» эти очки из нее.


Google Glass

Принцип работы скрипта прост и заключается в том, что каждый производитель сетевых интерфейсных устройств присваивает своей продукции собственный MAC-префикс. Это часть МАС-адреса, которая является уникальной для данного производителя. Программа с помощью утилиты arp-scan формирует список всех MAC-адресов устройств сети, которые потом сравнивает с MAC-адресом, характерным для Google Glass. При совпадении выдается предупреждающий звуковой сигнал, и затем запускается утилита aireplay-ng в режиме де-аутентификации. Это позволит отправить spoof-пакеты клиенту (очкам Google Glass), что заставит его отключиться от сети.

Библиотека арифметических операций для PIC16

Автор: Mike(admin) от 3-06-2014, 15:33

Микроконтроллеры серии PIC16 компании Microchip могут выполнять простые арифметические операции с 8-разрядными операндами, поскольку их ядро само 8-разрядное. Но в некоторых проектах требуется больше вычислительных возможностей, поэтому в таких случаях будет полезна специальная библиотека арифметических операций.


MiniPirate

Представленная библиотека позволяет осуществлять умножение, деление, сложение и вычитание 16-битных чисел, конвертировать числа в разные формы, проверять четность, возводить число в квадрат и еще несколько полезных мелочей.



Генератор аддитивного белого гауссовского шума

Автор: Mike(admin) от 22-05-2014, 11:20

Генерация гауссовского шума бывает необходима для задач моделирования и генерации случайных чисел в различных приложениях. И для этих целей полезно иметь универсальную и удобную функцию.


гауссовский шум

Представленная функция, написанная на языке C, генерирует сэмпл аддитивного белого гауссовского шума при каждом вызове. Ее красота заключается в простоте. Созданный сэмпл будет иметь нулевое среднее и стандартное отклонение, равное 1. Тем не менее, программист может масштабировать выходные сэмплы, изменяя стандартное отклонение для генерации различных профилей шума. Для того, чтобы осуществить такое масштабирование достаточно просто умножить сэмпл на выбранное стандартное отклонение.



Конвертер BCD-ASCII

Автор: Mike(admin) от 12-05-2014, 13:15

Двоично-десятичный формат кода (BCD) часто используется при работе с LCD-дисплеями и часами реального времени. В BCD-числе каждый десятичный разряд рационального числа записывается в виде его четырёхбитного двоичного кода.


Двоично-десятичный формат числа

Для преобразования DCD-формата в ASCII-код и обратно помогут две приведенные ниже функции bcdToAscii() и asciiToBcd().