Professional Documents
Culture Documents
Person Counter - Uređaj Za Brojanje Osoba
Person Counter - Uređaj Za Brojanje Osoba
ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ
Мај 2018.
Инфрацрвени сензор удаљености
Садржај
1. УВОД......................................................................................................................................3
2. Микроконтролери.................................................................................................................4
2.1 О микроконтролерима.....................................................................................................4
2.2 PIC Микроконтролери – основне карактеристике.......................................................4
2.3 Основне карактеристике PIC16F877A микроконтролера............................................5
3. Инфрацрвени сензори удаљености....................................................................................6
3.1 Основне карактеристике инфрацрвених сензора удаљености....................................6
3.2 Логика инфрацрвених сензора.......................................................................................6
3.3 Области кориштења инфрацрвених сензора.................................................................7
4. Анализа принципа рада инфрацрвеног сензора.................................................................8
4.1 Основне карактеристике инрацрвеног сензора удаљености Infrared proximity
sensor SHARP GP2Y0A21YK0F...........................................................................................8
4.2 Приказ производа............................................................................................................9
4.3 Спецификације и ограничења производа....................................................................10
4.4 Рад...................................................................................................................................10
4.4 Примјер излазне карактеристике и блок дијаграм.....................................................11
5. Комуникациони стандард RS 232 и MAX 232 коло.........................................................12
5.1 RS 232 стандард.............................................................................................................12
5.2 MAX 232 коло................................................................................................................12
6. Практична реализација.......................................................................................................15
6.1 Опис задатка..................................................................................................................15
6.2. Реализација...................................................................................................................16
6. Закључак..............................................................................................................................23
Драгутин Авдаловић
2
Инфрацрвени сензор удаљености
1. УВОД
Драгутин Авдаловић
3
Инфрацрвени сензор удаљености
2. Микроконтролери
2.1 О микроконтролерима
Микроконтролер у суштини представља минијатурни „рачунар“ интегрисан у виду
чипа, који садржи све градивне блокове CPU-a (ALU, PC, SP, регистре, тајмере и др.).
Осим тога садржи и RAM, ROM, паралелне и серијске U/I портове, генераторе такта,
серијске и паралелне комуникационе модуле, A/D конверторе и др. Микроконтролер је
уређај опште намјене, oва функција подразумијева прибављање података, обављање
ограничене обраде над тим подацима, те управљање периферијама на основу резултата
обраде. Микроконтролери су пројектовани тако да обједине комплетан дигитални
рачунар на једном чипу, јер осим процесора садрже и меморијске и периферне
јединице. Тако се постиже да жељени систем има минималан број компоненти, чиме се
штеди простор и вријеме потребно за конструисање уређаја. Блок дијаграм
микроконтролера je приказан на слици 2.1.1.
Драгутин Авдаловић
5
Инфрацрвени сензор удаљености
Драгутин Авдаловић
7
Инфрацрвени сензор удаљености
Драгутин Авдаловић
8
Инфрацрвени сензор удаљености
Драгутин Авдаловић
9
Инфрацрвени сензор удаљености
Мјерење удаљености 10 - 80 cm
4.4 Рад
IR сензор користи принцип триангулације и CCD сензора за мерење удаљености и
одређивање присуства објекта у видном пољу.
Драгутин Авдаловић
11
Инфрацрвени сензор удаљености
Драгутин Авдаловић
12
Инфрацрвени сензор удаљености
Драгутин Авдаловић
13
Инфрацрвени сензор удаљености
Драгутин Авдаловић
14
Инфрацрвени сензор удаљености
6. Практична реализација
6.1 Опис задатка
6.2. Реализација
Реализација овог задатка има неколико фаза:
- Израда шеме сензора и шеме за PCB у програмском окружењу Proteus,
- Штампање плочице помоћу CNC машине (CNC - Computer numerical control),
- Уграђивање и лемљење елемената на плочицу (потенциометар, дисплеј 16х2,
осцилатор 8MHz, RS232, USB, програматор, кондензатори, отпорници, диоде,
конектори...),
- Тестирање веза прије уградње интегрисаних кола,
- Уградња интегрисаних кола (микроконтролер PIC16F877A и MAX232),
- Писање програмског кода и убацивање кода у микроконтролер,
- Довођење напајања и повезивање система са рачунаром,
- Тестирање.
Шема овог задатка приказана је на слици 6.2.1. Инфрацрвени сензор типа SHARP
GP2Y0A21YK0F за улаз повезан је на уземљење пином 3, а пином број 1 на напон +5V,
чиме му је обезбјеђено напајање. Пин број 2 (V01) је излазни пин, који је повезан са
микроконтролером PIC16F877A преко порта RA0, који представља излазни пин за
аналогни сигнал. Инфрацрвени сензор за излаз повезан је на уземљење пином 3, а
пином број 1 на напон +5V, чиме му је обезбјеђено напајање. Пин број 2 (V02) је
излазни пин, који је повезан са микроконтролером PIC16F877A преко порта RA1, који
представља излазни пин за аналогни сигнал
Драгутин Авдаловић
16
Инфрацрвени сензор удаљености
преко USB-а (Universal Serial Bus). Програмски код који се убацује у микроконтролер је
веома једноставан и приложен је у наставку.
//Promjenljive
char sensorOne[7];
char sensorTwo[7];
char counterValue[7];
int ADC_sensor_one;
int ADC_sensor_two;
int counter;
int i=0;
Драгутин Авдаловић
17
Инфрацрвени сензор удаљености
Драгутин Авдаловић
18
Инфрацрвени сензор удаљености
/*
Nuliranje vrijednosti
Nuliranje se vrsi zbog neigurnosti senzora, odnosno zbog prevelikog broja citanja sa
analognog ulaza senzora u sekundi.
Zbog toga je za brojanje osoba ili predmeta najbolje uzeti da sve vrijednosti izvan
opsega mjerenja senzora odnosno izvan opsega 15-80cm udaljenosti od senzora budu
nulirane,tj. postavljene na integer vrijednost 0.
Vrijednosti koje su u opsegu senzora se stavljaju na integer 1 vrijednost što znači da je
senzor aktiviran.
Na ovaj način su greške eliminisane i brojač je relativno tačan.
*/
int setSensorValue(int sensorVal)
{
if(sensorVal > 50)
{
sensorVal = 1;
}
else if(sensorVal < 50)
{
sensorVal = 0;
}
return sensorVal;
}
/*Funkcija za brojanje pri ulazu
Ispituje se da li je prvi senzor aktiviran,ako jeste onda se ispituje stanje na drugom
senzoru u tom trenutku i ukoliko je drugi senzor na aktivnom stanju 1, na brojač osoba u
prostoriji se dodaje jedna osoba.
Isto vazi za obrnut smjer ali u tome slucaju neko je izasao iz sobe tako da se od brojaca
oduzima jedna osoba. */
void personEntering(int sensorOneProcesed)
{
if(sensorOneProcesed == 1)
{
i = 0;
/*Petlja koja traje 1s od trenutka kada je prvi senzor aktiviran te prati stanje
drugog senzora*/
while(i < 20)
{
//Uzimanje vrijednosti senzora 2 i ispis na ekranu
ADC_sensor_two = ADC_Get_Sample(1);
ADC_sensor_two = setSensorValue(ADC_sensor_two);
IntToStr(ADC_sensor_two,sensorTwo);
Lcd_Out(1,10,sensorTwo);
/*Ako je senzor dva aktiviran, dodaj 1 na brojač osoba, ispiši na ekranu i
terminiraj funkciju naredbom return*/
Драгутин Авдаловић
19
Инфрацрвени сензор удаљености
if(ADC_sensor_two == 1)
{
counter += 1;
IntToStr(counter,counterValue);
Lcd_Out(2,1,"unutra: ");
Lcd_Out(2,8,counterValue);
return;
}
Delay_ms(50);
i++;
}
}
}
/*
Funkcija za brojanje pri izlazu
Ispituje se da li je drugi senzor aktiviran,ako jeste onda se ispituje stanje na prvom
senzoru u tom trenutku i ukoliko je prvi senzor na aktivnom stanju 1, od brojača osoba u
sobi se oduzima jedna osoba */
void personLeaving(int sensorTwoProcesed)
{
if(sensorTwoProcesed == 1)
{
i = 0;
while(i < 20)
{
ADC_sensor_one = ADC_Get_Sample(0);
ADC_sensor_one = setSensorValue(ADC_sensor_one);
IntToStr(ADC_sensor_one,sensorOne);
Lcd_Out(1,1,sensorOne);
if(ADC_sensor_one == 1)
{
counter -= 1;
IntToStr(counter,counterValue);
Lcd_Out(2,1,"unutra: ");
Lcd_Out(2,8,counterValue);
return;
}
Delay_ms(50);
i++;
}
}
}
Драгутин Авдаловић
20
Инфрацрвени сензор удаљености
Драгутин Авдаловић
21
Инфрацрвени сензор удаљености
Слика 6.2.3 Графички приказ алгоритма за бројање при улазу као подфункције главног
програма
Драгутин Авдаловић
22
Инфрацрвени сензор удаљености
6. Закључак
У овом раду детаљно је описан рад инфрацрвеног сензора за удаљеност и успјешно
је реализовано бројање особа у просторији помоћу два инфрацрвена сензора за
удаљеност SHARP GP2Y0A21YK0F са микроконтролером. Резултат бројања се, преко
програма који је написан у MikroC-у, обрађује и исписује на дисплеј. Овај пројекат је
изузетно користан и може се примјенити у разним другим пројектима и задацима који
имају сличне захтјеве.
Драгутин Авдаловић
23