Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… ·...

18
Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkala * 13 czerwca 2008 * Wizualizacja danych sensorycznych - Projekt. Prowadzący - Dr inż. Bogdan Kreczmer 1

Transcript of Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… ·...

Page 1: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Sprawozdanie z projektu:Dalmierz optyczny

Konrad Ćwiąkała ∗

13 czerwca 2008

∗Wizualizacja danych sensorycznych - Projekt.Prowadzący - Dr inż. Bogdan Kreczmer

1

Page 2: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

1 Wstęp

Celem projektu było stworzenie dalmierza optycznego, w oparciu o czu-jnik typu PSD (GP2Y0A02) firmy Sharp. Dodatkowo zrealizowano funkcjęskanowania otoczenia w zakresie (−90◦ : +90◦). Wizualizację wynikówpomiarów zrealizowano przy pomocy wyświetlacza graficznego opartego osterownik S1D15705. Zaimplementowano także prosty protokół komunikacjiz komputerem poprzez złącze RS232.

Rysunek 1: Zdjęcie wykonanego urządzenia

2

Page 3: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2 Elementy składowe urządzenia

Na poniższym schemacie blokowym, przedstawiono najważniejsze elementyskładające się na zrealizowany projekt. W kolejnych podpunktach zostanąprzedstawione poszczególne moduły urządzenia.

Rysunek 2: schemat blokowy urządzenia

Na następnej stronie przedstawiano schemat elektroniczny płyty głównejwykonanego urządzenia. Do płyty głównej poprzez oznaczone na schemaciezłącza zostały podłączone odpowiednie moduły. W kolejnych podpunktachzostaną omówione poszczególne elementy płyty głównej oraz moduły peryfer-yjne dalmierza.

3

Page 4: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

1

1

2

2

3

3

4

4

D D

C C

B B

A A

Title

Number RevisionSize

A4

Date: 2008-06-03 Sheet ofFile: D:\Work\..\Sheet1.SchDoc Drawn By:

PB0 (XCK/T0)1

PB1 (T1)2

PB2 (AIN0/INT2)3

PB3 (AIN1/OC0)4

PB4 (SS)5

PB5 (MOSI)6

PB6 (MISO)7

PB7 (SCK)8

RESET9

PD0 (RXD)14

PD1 (TXD)15

PD2 (INT0)16

PD3 (INT1)17

PD4 (OC1B)18

PD5 (OC1A)19

PD6 (ICP)20

PD7 (OC2)21

XTAL212

XTAL113

GND 11

PC0 (SCL) 22

PC1 (SDA) 23

PC2 (TCK) 24

PC3 (TMS) 25

PC4 (TDO) 26

PC5 (TDI) 27

PC6 (TOSC1) 28

PC7 (TOSC2) 29

AREF 32AVCC 30

GND 31

PA7 (ADC7) 33PA6 (ADC6) 34PA5 (ADC5) 35PA4 (ADC4) 36PA3 (ADC3) 37PA2 (ADC2) 38PA1 (ADC1) 39PA0 (ADC0) 40

VCC 10

U1

ATmega32-16PC12

Y116MHz

33pF

C1

33pF

C?R1

123

P4

Encoder

123

P3

Sensor

12345678910

P6

ISP

1 23 45 67 89 10

P7

Keyboard

1 23 45 67 89 1011 1213 1415 16

P8

LCD

1 2

P2

Switch

12

P1

Power

123456

P5

Motor

IN1

3

OUT 2

GND

U2

L7805 1000uF

C3

220uF

C4

GND

GND

IN1

3

OUT 2

GND

U3

78L33

+5 +3.3

GND

+5 +3.3

+5

GND

GND

R2

+5

+5

GND

R3

100uF

C5

+5

EN11

EN29

IN12

IN27

IN310

IN415 OUT1 3

OUT2 6

OUT3 11

OUT4 14

VC 8VCC 16

GND4

GND5

GND12

GND13

U4

L293D

+12

GND

+12 +5

PC0PC1PC2

PC4PC6

PC7PC5PC3

PA7PA6 PA5

PA3PA4

GND

+5

PB0PB1PB2PB3

PB4

GND

PA1PD4PD5PD6PD7

PA2

Dalmierz optyczny - płyta główna

Konrad Ćwiąkała

R4 R5 R6 R7 R8 R9

+5 R1, R2, ... , R9 = 100K

C1+ 1VDD2

C1- 3

C2+ 4

C2- 5

VEE6

T2OUT7

R2IN8 R2OUT 9

T2IN 10T1IN 11

R1OUT 12R1IN13

T1OUT14

GND 15

VCC16

U5

MAX232

123

P9

RS232

1uF

C9

1uFC10

1uF

C7

1uFC8

1uF

C6

Page 5: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2.1 Zasilanie

Do zasilania urządzenia zastosowano zasilacz sieciowy, dający na wyjściunapięcie 12V przy prądzie rzędu 500mA. Nieustabilizowany prąd z zasilaczazostał wykorzystany do sterowania silnikiem krokowym. Stabilizacji napię-cia podawanego na elementy cyfrowe dokonano na stabilizatorze liniowymL7805. Przy obniżaniu napięcia z 12V do 5V i stosunkowo dużym poborzeprądu przez układ, występowały znaczne straty mocy wydzielanej w postaciciepła. Dla zabezpieczenia stabilizatora przed przegrzaniem zastosowano ra-diator o powierzchni 0.25dm2. Drugi stabilizator widoczny na schemacie(78L33) był wykorzystywany tylko to do generowania napięcia odniesieniadla przetwornika ADC.

2.2 Mikrokontroler

W urządzeniu zastosowano mikokontroler ATmega32 należący do rodzinyAVR produkowanej przez firmę ATMEL. Jest to 8-bitowy procesor zbu-dowany w architekturze RISC. Poniżej przedstawiono niektóre własnościwybranego mikrokontrolera:

• 32 kB pamięci Flash

• 2 kB pamięci SRAM

• 1kB pamięci EEPROM

• 32 programowalne linie I/O

• 2 timery 8-bitowe i timer 16-bitowy

• 8-kanałowy, 10-bitowy przetwornik ADC

• port transmisji szeregowej USART

• interfejs SPI

Podobnie jak we wszystkich mikrokontrolerach z rodziny AVR, także w przy-padku ATmega32, możliwe jest programowanie pamięci Flash w systemie(In-System Programming). Mikrokontroler dostępny jest w kilku obudowach.Ze względu na spore rozmiary urządzenia, oraz jego prototypowy charakterpostanowiono wybrać obudowę PDIP-40.

5

Page 6: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2.3 Sterownik silnika krokowego L293D

Do sterowania silnikiem krokowym wybrano układ L293D produkowany przezfirmę STMicroelectronics. Układ jest dedykowany do sterowania silnikamiszczotkowymi przy częstotliwościach sygnałów sterujących dochodzących do5kHz. Ze względu na swoją architekturę może on zostać także wykorzystanydo sterowania unipolarnym silnikiem krokowym. W omawianym urządzeniukażdy kanał sterownika obsługiwał jedno uzwojenie silnika. W czasie pracyoba sygnały enable były ustawione na stałe (Sterowanie sygnałami enablepoprzez PWM mogło zapewnić pracę silnika w trybie mikrokrokowym).

Rysunek 3: Architektura sterownika L293D

Wykorzystany układ zapewnia możliwość sterowania prądami rzędu 600mAna kanał (1.2A w impulsie). Układ posiada dodatkowo wbudowane diodyzabezpieczające oraz zabezpieczenie temperaturowe. Na sterownik możnapodać napięcie dochodzące do 36V, przy obsłudze logiki na poziomach TTL.Do sterowania układem wykorzystano 6 linii wyjściowych mikrokontrolera (4na obsługę kanałów i 2 generujące sygnały enable).

6

Page 7: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2.4 MAX232 (transceiver RS232 - TTL)

Układ MAX232 został wykorzystany w standardowej konfiguracji jako dwukierunk-owy translator poziomów sygnałów RS232 i TTL. Zastosowanie układu byłokonieczne dla zapewnienia komunikacji urządzenia z komputerem przez portszeregowy.

Rysunek 4: Architektura transceivera MAX232

Na chwilę obecną w urządzeniu zaimplementowana została jedynie prostajednokierunkowa komunikacja z komputerem. Komunikacja odbywa się wtrybie tekstowym przy baud rate równym 19200. Jeden pakiet zawiera 8bitów danych, 1 bit stopu, oraz bit parzystości (even parity). Dla zabez-pieczenia przed utratą niektórych pakietów wysyłane paczki mają określonyformat. Zaimplementowano trzy formaty wysyłanych paczek danych:

• B %s;

• D %d,%d;

• S %d,%d;

Pierwsze formatowanie oznacza wystąpienie zdarzenia (np. naciśnięcie przy-cisku), drugie pracę w trybie dalmierza, a trzecie w trybie skanera. W dwóchostatnich formatowaniach wysyłane liczby oznaczają odpowiednio pozycjęwieżyczki i zmierzoną odległość (w centymetrach). Każda paczka zakońc-zona jest średnikiem.

7

Page 8: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2.5 Czujnik GP2Y0A02

W urządzeniu zastosowano czujnik typu PSD produkowany przez firmę Sharp.Wybrany czujnik ma następujące właściwości:

• efektywny zasięg pomiaru 20cm-150cm

• zasilanie napięciem 4.5-5.5V

• napięcie wyjściowe 0-3V

Rysunek 5: Wygląd zewnętrzny czujnika GP2Y0A02

Rysunek 6: Zależność napięcia wyjściowego od mierzonej odległości

8

Page 9: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2.6 Wyświetlacz LCD z kontrolerem S1D15705

W urządzeniu zamontowano wyświetlacz graficzny o rozdzielczości 162x64pikseli. Wyświetlacz posiada wbudowane podświetlenie diodowe. Całość(wyświetlacz z podświetleniem) jest zasilana napięciem 5V i pobiera w czasiepracy prąd rzędu 250mA.

Rysunek 7: Wygląd zastosowanego układu wyświetlacza

Do obsługi wyświetlacza konieczne było wykorzystanie 13 linii wyjściowychmikrokontrolera.

2.7 Klawiatura

Częścią interfejsu urządzenia jest 6-przyciskowa klawiatura. Wyjścia klaw-iszy niewciśniętych były zwarte do masy. Odcięcie od masy i podanie naodpowiadające przyciskowi wejście mikrokontrolera napięcia 5V następowałopo wciśnięciu przycisku.

9

Page 10: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

2.8 Silnik krokowy M42SP-4

Do zrealizowania ruchomej wieżyczki skanera wykorzystano unipolarny sil-nik krokowy M42SP-4 firmy Mitsumi. Silniki tego typu są stosowane wdrukarkach do poruszania karetki z tuszem. Wykorzystany silnik ma następu-jące parametry:

• Znamionowe napięcie zasilania 24V

• Pobór prądu przy napięciu znamionowym 646mA

• Rozdzielczość 3.75◦/step

W skonstruowanym urządzeniu sterowanie silnikiem odbywało się zawszew trybie półkrokowym, dzięki czemu uzyskano efektywną rozdzielczość skan-era równą 1.875◦. Do wykrycia skrajnych położeń wieżyczki skonstruowanoprosty czujnik krańcowy. Do spodniej części silnika doklejono 2 przełączniki,natomiast do wału silnika przyczepiono kawałek laminatu. Laminat w skra-jnych położeniach, włączając jeden z przełączników wywoływał przerwaniemikrokontrolera.

Rysunek 8: Wygląd silnika, oraz stworzonego czujnika położeń krańcowych

10

Page 11: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

3 Konstrukcja urządzenia

Do ostatecznego montażu elementów składowych wykorzystano dwie stan-dardowe obudowy plastikowe. Mniejsza stanowi obrotową wieżyczkę urządzeniawyposażoną w czujnik. Większa zawiera w sobie pozostałe moduły, łącznie zgniazdem zasilania i gniazdem DB9-F pozwalającym na podłączenie urządzeniado portu szeregowego komputera.

Rysunek 9: Mniejsza obudowa z okienkiem czujnika

Rysunek 10: Obie obudowy połączone za pomocą wału silnika

11

Page 12: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Dla ułatwienia obsługi urządzenia zbudowano interfejs składający się zwyświetlacza graficznego i rozmieszczonych wokół niego klawiszy. Rozmieszcze-nie klawiszy jest zgodne z menu, programu obsługującego urządzenie, dziękiczemu użytkowanie dalmierza jest bardzo proste.

Rysunek 11: Wygląd interfejsu urządzenia

4 Program wsadowy mikrokontrolera

Program obsługujący urządzenie napisano w języku C, w środowisku CodeVi-sion AVR. Największym problemem okazała się obsługa wyświetlacza, którawymagała napisania całej biblioteki funkcji pozwalającej na wygodną ob-sługę programową wyświetlania zarówno w trybie znakowym jak i w trybiegraficznym. Podstawowe funkcje obsługiwały:

inicjalizacja pracy wyświetlacza void lcd init();wyczyszczenie całego wyświetlacza void lcd clear();wypełnienie całego wyświetlacza void lcd fill();wysłanie komendy do wyświetlacza void lcd wrc(char data);wysłanie danych do wyświetlacza void lcd wrd(char data);wysłanie znaku do wyświetlacza void lcd wrw(char sign);wysłanie napisu do wyświetlacza void lcd prnt(char *string);przejście do wskazanego miejsca void lcd gotoxy(int x,int y);

12

Page 13: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Na chwilę obecną nie udało się zrealizować wszystkich założeń narzu-conych wcześniej na część programową projektu. Obsługiwane są dwa trybypracy skanera:

• Pomiar ciągły

• Skanowanie

Przy pracy urządzenia w trybie pomiar ciągły wieżyczka skanera jestustawiana na zadanej pozycji, a na wyświetlaczu pokazywana jest odległośćdo przeszkody.

Tryb skanowanie zapewnia pomiar odległości w zakresie −90◦ : +90◦.Wynik pomiaru jest wyświetlany w formie wykresu. Na osi X przedstawionyjest kąt obrotu wieżyczki, natomiast na osi Y przedstawiona jest odległośćdo przeszkody.

5 Przykłady działania dalmierza

W tym rozdziale zamieszczono zdjęcia obrazujące działanie skonstruowanegourządzenia w różnych przypadkach ustawienia sceny, przy pracy w trybiedalmierza oraz w trybie skanera.

Rysunek 12: Obiekt w odległości 24cm na wprost

13

Page 14: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Rysunek 13: Obiekt w odległości 38cm na wprost

Rysunek 14: Brak obiektu w odległości mniejszej niż 1.5m przed dalmierzem

14

Page 15: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Rysunek 15: Obiekt w odległości 24cm na pozycji około −30◦

Rysunek 16: Skanowanie wnęki

15

Page 16: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Rysunek 17: Przeszkoda na tle wnęki

Rysunek 18: Dwie oddzielne płaskie przeszkody

16

Page 17: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Rysunek 19: Narożnik

Rysunek 20: Dwie płaskie przeszkody w różnych odległościach

17

Page 18: Sprawozdanie z projektu: Dalmierz optycznykreczmer/wds/projekty/SPR/2007-08/cwiakal… · Sprawozdanie z projektu: Dalmierz optyczny Konrad Ćwiąkała ⁄ 13 czerwca 2008 ⁄Wizualizacja

Rysunek 21: Trzy wąskie przeszkody

6 Podsumowanie

Badania dowiodły, że urządzenie działa poprawnie. Pomiar odległości wtrybie dalmierza zapewnia dokładność rzędu ±1cm, przy odległościach doprzeszkody mniejszych niż 70cm. Wraz ze wzrostem odległości do przeszkodywzrasta błąd pomiaru. Skaner zbudowany na bazie czujnika typu PSD jestpozbawiony głównych wad związanych z konstrukcjami ultradźwiękowymi.Możemy bardzo dobrze odwzorowywać wszelki wnęki i narożniki, a dokład-ność pomiaru jest w bardzo małym stopniu zależna od faktury przeszkody.Wykorzystany w projekcie czujnik ma również swoje wady. Sensor PSD jestbardzo czuły na zakłócenia w podczerwieni. Pracę urządzenia można bardzołatwo zaburzyć oświetlając czujnik dowolnym źródłem promieniowania pod-czerwonego np. pilotem do telewizora.

18