Задача Разработка технического устройства, ведущего счет вошедших и вышедших посетителей супермаркета,
Работа добавлена на сайт bukvasha.net: 2015-10-29Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Содержание
Введение. 3
1 Обзор литературы (имеющихся решений по аналогичным устройствам) 4
2 Основная часть. 6
2.1 Описание предметной области. 6
2.2 Постановка задачи. 8
2.3 Функциональное требование. 9
2.4 Используемые инструменты. 10
2.5 Функциональная схема. 11
2.6 Алгоритм обработки информации микроконтроллером.. 12
3. Экспериментальные результаты.. 13
3.1 Выбор типа микроконтроллера. 13
3.2.Выбор среды программирования микроконтроллера. 14
4. Заключение. 15
5. Список используемой литературы.. 16
Приложение 1. Текст программы.. 17
Приложение 2. Принципиальные схемы.. 20
Введение
Темой дипломного проекта, является разработка технического устройства, ведущего счет вошедших и вышедших посетителей супермаркета, на основе микроконтроллера ATtiny2313.
Применение микропроцессорного проектирования в нынешнее время очень важно. Эта предметная область значительно упрощает нашу жизнь, повышает производительность и точность работ, снижая их стоимость.
Задача заключается в следующем: необходимо учитывать число людей прошедших через турникет, фиксируя это число с привязкой к реальному времени. Баланс, прибывших/убывших в здание. Разработать алгоритм учета, исключающий ошибки. Выдача результата на центральный ПК по запросу.
Счетчики посетителей обеспечивают сбор и анализ информации о количестве посетителей, находящихся в торговой точке в текущий момент и за прошедшие периоды. Этот тип статистической информации может быть использован для:
· оценки дизайна здания и инженерных сооружений с точки зрения удобства и безопасности посетителей;
· анализа тенденций посещений торгового центра;
· распределения персонала по "горячим" зонам в часы пик;
· принятия решений об открытии/закрытии дополнительных кассовых проходов и входов/выходов;
· проведения маркетинговых кампаний.
Эта задача может быть как автономного характера, так и подзадачей системы. Данная работа может послужить хорошим помощником системы безопасности какой-либо организации. К примеру, в момент чрезвычайного происшествия, можно узнать какое количество людей осталось в здании, которым нужна помощь. Или по завершению рабочего дня кто-то остался в цехе, заплутал в здании, на важном объекте. Таким образом, это программно техническое устройство может быть как спасателем, так и сторожем.
Система представляет собой комплекс подсчета из датчиков, которые крепятся на входную группу и отслеживают количество посещений.
Прибор основан на ИК светодиодах и фототранзисторах – это элементы с низким энергопотреблением, у которых сохраняется высокая чувствительность, и быстродействие до долей секунд.
1 Обзор литературы (имеющихся решений по аналогичным устройствам)
Ⅰ. Счётчики посещаемости УМУП(П)
Модули учета УМУП-П предназначены для учета, контроля и индикации количества продукции (ящики, коробки мешки и другие виды тары и упаковки), проходящие по конвейерам, транспортерам и другим устройствам, через которые проходит контролируемая продукция, а также для подсчета посетителей магазинов, торговых центров и других объектов, там где нужно иметь статистику о количестве посетителей.
Конструктивно УМУП–П представляет из себя счетчик, состоящий из управляющего модуля и разнесенных оптических датчиков. В качестве датчиков используются двулучевой излучатель и инфракрасный приемник.
Технические характеристики:
· режим индикации счетчика посетителей с возможностью в любой момент начать счет с нуля (режим сменной индикаций - «С»);
· режим индикации накопительного счетчика посетителей без возможности обнуления показаний счетчика с энергонезависимой памятью (накопительный режим - «Н»);
· счет в одном направлении;
· расстояние между датчиком инфракрасного излучения, м, не боле 10
· максимальная скорость счета, (посетителей), шт/сек 10
· режим работы круглосуточный, необслуживаемый
· полный срок службы не менее, лет 10
· максимальное количество подсчитываемых проходов 9.999.999
· остальные характеристики такие же, как и у УМУП-А
Ⅱ.OdexPro Light - горизонтальный счетчик посетителей с дисплеем.
Работа счетчиков посетителей основана на двойном прерывании инфракрасного луча, что позволяет определить направление движения посетителя. Информация со счетчиков посетителей передается на компьютер ( на расстояние до
Технические характеристики:
· подсчет в двух направлениях: "вход" или "выход" (по выбору);
· отображение результатов подсчета на табло;
· регистрация до 10 000 проходов;
· кнопка сброса данных подсчета;
· компактные размеры (9 Х 2 Х
· возможность установки на сервисной стойке.
Ⅲ. C
истема подсчета Detex Line (имеет две версии Easy, Standard)
Сенсоры системы подсчета устанавливаются во всех проходах, где необходим подсчет посетителей, на расстоянии не более
Технические характеристики:
· двунаправленный подсчет посетителей;
· возможность подсчета в двух проходах;
· память статистики на 1 год (аппаратная память);
· просмотр статистики на экране счетчика посетителей;
· просмотр статистики входов и выходов из магазина раздельно на экране счетчика;
· сохранение статистики при отсутствии электропитания.
· блокировка кнопок счетчика посетителей и выключение его дисплея;
· просмотр отчетов и графиков на экране ПК;
· просмотр детализированных отчетов (по часам, дням, неделям, месяцам) за любой период;
· ручной и автоматический экспорт статистики в файл;
· печать отчетов и графиков;
2 Основная часть
2.1 Описание предметной области
В торговых предприятиях сенсоры систем подсчета посетителей устанавливают на входах в торговый зал, на входах в бутики, расположенные внутри торгового зала, на различных проходах и в зонах, где требуется производить подсчет посетителей и получать статистику посещений.
Счетчики, установленные на входах, позволяют выяснить общее количество посещений магазина за день (за неделю, за месяц и т.д.), и получить отчет, иллюстрирующий динамику этих посещений. Сравнивая полученные результаты посещений с отчетностью о совершенных покупках и анализируя полученную информацию, можно спланировать рекламную кампанию торгового предприятия так, чтобы она охватила как можно большее количество потенциальных покупателей. Вместе с тем при использовании систем подсчета можно достоверно, а не «на глаз» оценить эффективность уже проведенной рекламной кампании, а также выявить негативные моменты в оформлении торгового зала, способствующие снижению покупательской активности.
Для этого, имея установленные на входах счетчики посетителей, достаточно задаться простыми вопросами:
· как изменилось количество посетителей во время проведения рекламной кампании?
· как изменилось количество посетителей после изменений в оформлении торгового зала или после введения новой схемы расположения товаров внутри торгового зала?
· Как изменилось отношение количества посетителей к количеству совершенных покупок во время рекламной кампании или после нововведений?
Системы подсчета посетителей это:
· подробная статистика посещаемости магазина и количества проходов покупателей к определенным зонам торгового зала;
· анализ факторов, влияющих на посещаемость магазина;
· планирование стратегии развития бизнеса на основании данных о динамике посещаемости;
· прогнозирование посещаемости магазина;
· повышение качества обслуживания покупателей за счет организованной подготовки к прогнозируемому повышению посещаемости;
· безошибочные расчеты параметров рекламных кампаний и других мероприятий;
· оценка эффективности проводимых рекламных кампаний;
· оценка качества работы магазина;
· повышение эффективности работы магазина;
· безошибочное планирование рабочего времени персонала;
· оценка целесообразности открытия и закрытия дополнительных входов в торговый зал.
Счетчики посетителей, установленные внутри торгового зала, помогают определить направления движения покупателей и выявить наиболее популярные у покупателей маршруты, а значит, расположить товар внутри магазина таким образом, чтобы представить его покупателю в наиболее выгодном свете.
Системы подсчета посетителей помогают точно отладить работу торгового предприятия, направить работу на получение наибольшей прибыли и уменьшение затрат - оптимизировать распределение потоков посетителей по площади предприятия, направлять потоки в наиболее прибыльные зоны (к ресторанам, кафе).
Используя данные накопленной статистики, можно с высокой степенью точности предсказать количество посещений в тот или иной день и избежать лишних затрат на заработную плату сотрудникам, а также избежать их чрезмерной загруженности, неизбежно ведущей к ухудшению качества обслуживания покупателей.
Это особенно важно для крупных супермаркетов, где часто из-за неправильного распределения рабочего времени кассиров происходит либо настоящее столпотворение на кассовых узлах из-за недостатка работающих терминалов, либо кассиров оказывается гораздо больше, чем это необходимо для качественного обслуживания покупателей.
2.2 Постановка задачи
Проект состоит из следующих частей:
· Разработка модели функциональной схемы;
· Алгоритм работы схемы;
· Расчет основных параметров;
· Разработка узлов/блоков системы:
Ø обеспечивающей работу приема ИК излучений;
Ø интерфейса USART, обеспечивающего связь с персональным компьютером;
Ø часов реального времени, взяв за основу микросхему DS
1307;
Ø
· Программирование микроконтроллера, который принимает входные данные, считает и сохраняет их с учетом реального времени. И выдает выходные данные, по запросу, на персональный компьютер;
· Макетирование с использованием конструкторских приложений (ExpressPCB, Electronics Workbench Multisim, sPlan 6.0 );
· Изготовление и отладка макетов , как можно меньше в размерах, для того чтобы изготовление обошлось дешевле.
2.3 Функциональное требование
Функции, по средству которых пользователь данного технического устройства мог бы выполнить свои задачи.
«Фиксирующая часть» представляет собой следующие требования:
· Работоспособности системы;
· Настройки ИК – излучателей и приемников;
· Правильной фиксации входа/выхода;
· Хода часов реального времени;
· Регулярное сохранение полученных данных;
· Компактность;
· Помехоустойчивость;
«Пользовательская часть» состоит из следующих функций:
· Отклик с фиксирующего центра;
· Предоставление отчетности контроллером с учетом времени;
· Просмотр отчетности;
· Изменение статей информации;
2.4 Используемые инструменты.
Для выполнения данной работы использованы такие инструменты и программное обеспечение как:
· Windows7
· AVRStudio
· Adobe Reader 9.0
· WinDjView
· Mozilla Firefox
· Electronics Workbench Multisim
· sPlan 6.0
· ExpressPCB
2.5 Функциональная схема
Прибор может работать без персонального компьютера, так как основные функции выполняет микроконтроллер. Программой выполняются: анализ, счет и преобразования входных данных, накопление, а также осуществляется передача данных по запросу с персонального компьютера.
Функциональная схема
2.6 Алгоритм обработки информации микроконтроллером
3. Экспериментальные результаты
3.1 Выбор типа микроконтроллера
Исходя из структурной схемы, рассмотрим необходимые технические характеристики микроконтроллера:
· Встроенной программируемой памяти Flash (2Кбайт);
· Встроенной программируемой энергозависимой памяти данных EEPROM (128байт);
· Внутреннего ОЗУ SRAM (128байт);
· Один 8-разрядный таймер/счетчик с программируемым предделителем и режимом совпадения;
· Один 16-разрядный таймер/счетчик с программируемым предделителем и режимом совпадения и режимом захвата;
· Встроенный аналоговый компаратор;
· Программируемый сторожевой таймер и встроенный тактовый генератор;
· USART;
· Напряжение питания 2,7-5,5В.
Выбор микроконтроллера осуществлялся из семейства AVR, производимого фирмой Atmel. Эти микроконтроллеры позволяют решать множество задач . Они отличаются от других распространенных в настоящее время микроконтроллеров большей скоростью работы, большей универсальностью. Быстродействие данных микроконтроллеров позволяет в ряде случаев применять их в устройствах, для реализации которых ранее можно было применять только 16-разрядные микроконтроллеры, что позволяет ощутимо удешевить готовую систему.
3.2.Выбор среды программирования микроконтроллера.
Для микроконтроллеров семейства AVR существует множество компиляторов. Исходя из специфики задачи и сжатых сроков выполнения проекта, для реализации программы обработки сигналов, для микроконтроллера был выбран мощный язык программирования С (СИ).
Из существующих СИ компиляторов, был выбран AVR Studio 4.
AVR Studio — интегрированная среда разработки (IDE) для разработки 8-битных AVR приложений от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7. AVR Studio содержит ассемблер и симулятор, позволяющий отследить выполнение программы. Текущая версия поддерживает все выпускаемые на сегодняшний день контроллеры AVR и средства разработки. AVR Studio содержит в себе менеджер проектов, редактор исходного кода, инструменты виртуальной симуляции и внутрисхемной отладки, позволяет писать программы на ассемблере или на C/C++. В силу перечисленных достоинств AVR Studio может считаться удобной средой разработки приложений для микроконтроллеров AVR.
4. Заключение
Для реализации технического средства на данном этапе проделаны следующие виды работ:
· Изучены микросхемы и микроэлементы, входящие в техническое устройство;
· Изучено программное обеспечение AVRStudio;
· Совершенствование языков программирования ассемблер и С;
· Разработка алгоритма программного обеспечения для технического устройства;
В этот комплекс входят:
v Программы, ответственные за соединение оборудования с компьютером.
v Прикладная программа — обеспечивают работу с уже поступившими данными.
· Программирование на микроконтроллере серии ATtiny2313;
· Изучены общие принципы работы микроконтроллеров;
· Прочтение научной литературы и различных статей.
Далее планирую реализовать сборку самого технического устройства. Провести отладку всех модулей и связать с программой. Довести до рабочего состояния для представления демонстрации комиссии.
5. Список используемой литературы
1. «Самоучитель по микропроцессорной технике». Белов А. В.2003
2. «Программирование на языке С для AVR и PIC микроконтроллеров».
Сост. Ю.А. Шпак – К: «МК-Пресс», 2006 - 400стр.
3. «Микроконтроллеры AVR в радиолюбительской технике». Белов А. В. - СПб.: Наука и Техника, 2007 - 352стр.
4. Интернет-ресурс: [Электрон.ресурс].- http://robozone.su/, http://infrared.h1.ru/, http://fi-com.ru/mcu/rc5 .
5. «Применение микроконтроллеров AVR: схемы, алгоритмы, программы». – М.: Издательский дом «Додэка - XXI», 2004 - 288стр.
Приложение 1. Текст программы
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <avr/interrupt.h>
/*===========================Инициализация USART и его настройка==================*/
#define Fosc 8000000L
#define Baud 9600L
#define Ubrr (Fosc/(16*Baud)-1)
/* UART Buffer Defines */
#define USART_RX_BUFFER_SIZE 32 /* 2,4,8,16,32,64,128 or 256 bytes */
#define USART_TX_BUFFER_SIZE 32 /* 2,4,8,16,32,64,128 or 256 bytes */
#define USART_RX_BUFFER_MASK ( USART_RX_BUFFER_SIZE - 1 )
#define USART_TX_BUFFER_MASK ( USART_TX_BUFFER_SIZE - 1 )
#if ( USART_RX_BUFFER_SIZE & USART_RX_BUFFER_MASK )
#error RX buffer size is not a power of 2
#endif
#if ( USART_TX_BUFFER_SIZE & USART_TX_BUFFER_MASK )
#error TX buffer size is not a power of 2
#endif
/* Static Variables */
static unsigned char USART_RxBuf[USART_RX_BUFFER_SIZE];
static volatile unsigned char USART_RxHead;
static volatile unsigned char USART_RxTail;
static unsigned char USART_TxBuf[USART_TX_BUFFER_SIZE];
static volatile unsigned char USART_TxHead;
static volatile unsigned char USART_TxTail;
/* Prototypes */
void USART_Init( unsigned int baudrate );
unsigned char USART_Receive( void );
void USART_Transmit( unsigned char data );
void USART_Init( unsigned int baud )
{
unsigned char x=0;
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0);
/* Flush receive buffer */
USART_RxTail = x;
USART_RxHead = x;
USART_TxTail = x;
USART_TxHead = x;
}
/* Initialize USART */
/*void USART0_Init( unsigned int baudrate )
{
unsigned char x=0
*/
/* Enable UART receiver and transmitter */
/* UCSRB = ( ( 1 << RXCIE ) | ( 1 << RXEN ) | ( 1 << TXEN ) );*/
/* Set frame format: 8 data 2stop */
//UCSRC = (1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0); //For devices with Extended IO
/* UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0);//For devices without Extended IO
*/
/* Flush receive buffer */
/* USART0_RxTail = x;
USART0_RxHead = x;
USART0_TxTail = x;
USART0_TxHead = x;
}*/
/* Interrupt handlers */
ISR (SIG_UART_RECV)
{
unsigned char data;
unsigned char tmphead;
/* Read the received data */
data = UDR;
/* Calculate buffer index */
tmphead = ( USART_RxHead + 1 ) & USART_RX_BUFFER_MASK;
USART_RxHead = tmphead; /* Store new index */
if ( tmphead == USART_RxTail )
{
/* ERROR! Receive buffer overflow */
}
USART_RxBuf[tmphead] = data; /* Store received data in buffer */
}
ISR (USART_UDRE_vect)
{
unsigned char tmptail,un_volatile=USART_TxHead;
/* Check if all data is transmitted */
if ( un_volatile != USART_TxTail )
{
/* Calculate buffer index */
tmptail = ( USART_TxTail + 1 ) & USART_TX_BUFFER_MASK;
USART_TxTail = tmptail; /* Store new index */
UDR = USART_TxBuf[tmptail]; /* Start transmition */
}
else
{
UCSRB &= ~(1<<UDRIE); /* Disable UDRE interrupt */
}
}
/* Read and write functions */
unsigned char USART_Receive( void )
{
unsigned char tmptail, un_volatile = USART_RxTail;
while ( un_volatile == USART_RxHead ) /* Wait for incomming data */
;
tmptail = ( USART_RxTail + 1 ) & USART_RX_BUFFER_MASK;/* Calculate buffer index */
USART_RxTail = tmptail; /* Store new index */
return USART_RxBuf[tmptail]; /* Return data */
}
void USART_Transmit( unsigned char data )
{
unsigned char tmphead;
/* Calculate buffer index */
tmphead = ( USART_TxHead + 1 ) & USART_TX_BUFFER_MASK;
/* Wait for free space in buffer */
while ( tmphead == USART_TxTail );
USART_TxBuf[tmphead] = data; /* Store data in buffer */
USART_TxHead = tmphead; /* Store new index */
UCSRB |= (1<<UDRIE); /* Enable UDRE interrupt */
}
unsigned char DataInReceiveBuffer0( void )
{
unsigned char un_volatile = USART_RxHead;
return ( un_volatile != USART_RxTail ); /* Return 0 (FALSE) if the receive buffer is empty */
}
unsigned char DataInTransmiterBuffer0( void )
{
unsigned char un_volatile = USART_TxHead;
return ( un_volatile != USART_TxTail ); /* Return 0 (FALSE) if the transmit buffer is empty */
}
int main(void)
{
DDRB = 0x00;
int counter=0;
int retime=0;
while(1)
{
counter = PINB;
retime = PIND;
}
USART_Init(Ubrr);
DDRB = 0xFF;
PORTB = 0xFF;
sei();
while(1)
{
if (DataInReceiveBuffer0())
{
PORTB = ~USART_Receive();
USART_Transmit(~PINB);
}
}
Приложение 2. Принципиальные схемы
Рис 1.
Блока фиксации. Где изображено, ИК излучатель и приемник. Впоследствии сигнал переходит на контроллер.
Рис 2.
Блок часов реального времени.