Triển khai GSPCA

Một phần của tài liệu Thiết kế, tích hợp và phát triển phần cứng, phần mềm hệ nhúng armadillo 300 cho phép truyền video trên mạng WLAN và mạng adhoc (Trang 41)

4. Triển khai thực hiện

4.4.3Triển khai GSPCA

- Thực hiện biên dịch chéo (cross-compile)

# make CC=arm-linux-gcc LD=arm-linux-ld

- Sau khi biên dịch chéo thành công ta có kết quả là kernel module gspcav.ko. Đây là driver cho webcam trên bo nhúng.

- Tiếp sau đó ta thực hiện các lệnh sau để chuẩn bị cho việc tạo ra fíle ảnh

(image) cho bo nhúng

make install

/sbin/depmod -ae

cd /lib/modules

Hình 15 Thư mục /dev trên bo nhúng

Giáo viên hướng dẫn: T.s Phạm Văn Tiến Telnet 192.168.7.213

PHl

RẼTĨRegisteredprotocolfamily 1 |NET:Registeredprotocolfamily 10

TDisabled Privacy Extensions on deuỉce C0342978<lo> IPw6 oụẹr IPu4 tunneling driver

ip6_tables: <c> 2000-2002 Netíilter

core tean

|NÊT:Registeredprotocolfamily 17 |NET:Registeredprotocolfanily 15 iBrỉdge fireMailing registered

ISCTPT Hash tables coníigured <established 2048 bỉnd 4096> Ễ

Ễspca: Unknown synbol ựideo_unregister_deoicespca: Unknoun synbol uideo_deuice_alloc gspca: Unknown synbol ưideo_i*egister_dewice gspca: Unknoun synbol uỉdeo_usercopy

gspca: Unknoun sỹnbol oỉdeo_deyỉceLrelease

Linux ụideo capture interface: ụl.00 usbcore: regietsrsd new driver gspca

/hone/nan/gspcaụl-20071220/gspcă_core.c: gspca driuer

01.00.20-rc3 registered

u.sb 1—1: nêu full speed USB dêuice usỉng ns9750-obcỉ and

address 2

/bone/nan/gspcawl-20071220/gspca_core.c: USB GSPCA canera

Hình 16 Driver nhận ra vvebcam khi cắm vào bo nhúng 4.5 Triến khai phần mềm truyền video

4.5.1 Giói thiệu về các phần mềm truyền video

Hiện tại có rất nhiều các phần mềm mã nguồn mở chạy trên Linux cho phép

truyền video (streaming video) tuy nhiên với tài nguyên hạn hẹp của hệ nhúng thì

việc lựa chọn phần mềm vừa phù hợp với nhu cầu vừa đảm bảo có thể chạy thành

công cũng là một thử thách. (adsbygoogle = window.adsbygoogle || []).push({});

Qua quá trình tìm hiêu, mjpeg-streamer là một phân mêm nhỏ gọn có thê

Giáo viên hướng dẫn: T.s Phạm Văn Tiến

Make CC=arm-linux-gcc LD=arm-linux-ld

- Sau khi biên dịch thành công ta thu kết quả như sau

o Các thư viện động: input_gspcavl .so input_testpicture.so

input uvc.so output_autofocus.so output_file.so output_http.so

o File thực thi mjpg_streamer

- Sau đó ta copy các thư viện động vào thư mục romfs/lỉb; file thực thi và thư

Cách hàn dây cáp cồng COM cho bo nhúng được mô tả như trong hình vẽ

Hình 17 Sơ đồ chân cổng COM1 trên bo nhúng

Giáo viên hướng dẫn: T.s Phạm Văn Tiến

ã 5-6 C0N6í|§ra

Hình 18 Sơ đồ chân cống COM2 trên bo nhúng

I D^ub9pin DinlOpin conversion) Conversion-pin connector connection Hình 19 Sơ đồ nối chân cống COM

4.6.2 Lập trình nối tiếp trên Linux

a. Cơ sở giao tiếp nối tiếp

Máy tính truyền dừ liệu một hay nhiều bit cùng một lúc và giao tiếp nối tiếp

ám chi tới việc truyền dừ liệu một bit. Các giao tiếp nối tiếp bao gồm các thiết bị

mạng, bàn phím, chuột, MODEM, ...

Tốc độ của dữ liệu nối tiếp thường được thể hiện thông qua bit trên giây

(“bps”) hay còn gọi là baudot rate (“baud”). Tham số này thể hiện số lượng số

0 và

1 có thê được gửi đi trong một giây. Vào thời kỳ đầu của kỷ nguyên máy tính, baud

rate 300 được coi là nhanh nhưng máy tình ngày nay có thể có tốc độ baud

rate lên

tới 430,800. Khi baud rate vượt quá 1000 người ta dùng đơn vị kilo baud, với baud

rate vượt quá 1000,000 thì có đơn vị là mega baud.

b. RS232

RS-232 là giao diện chuẩn cho các giao tiếp nối tiếp được định nghĩa bởi

- GND (adsbygoogle = window.adsbygoogle || []).push({});

về mặt kỳ thuật, chân đất không phải là một tín hiệu nhung nếu thiếu nó thì

các mức tín hiệu khác sẽ không hoạt động, về cơ bản, chân đất đóng vai trò

là một mức điện áp tham chiếu mà qua đó các thành phần điện tử biết

đâu là

mức điện áp dưong đâu là mức điện áp âm.

- TXD Dữ liệu truyền

Chân này dung để truyền dữ liệu

- TXD Dữ liệu nhận

Chân này dùng để nhận dữ liệu

- DCD - Data Carrier Detect

Tín hiệu DCD dùng đề xác định xem liệu có thiết bị nối vào máy tính qua

cổng nối tiếp hay không

- Các íĩle cống nối tiếp

Mỗi cổng nối tiếp trong hệ điều hành UNIX, hay Linux có một hay

nhiều các

file tương ứng với chúng

Ví dụ: cổng COM1 là /dev/ttySO

cổng COM2 là /dev/ttySl

- Truv nhập cổng COM

Cổng COM được gắn kết với file, hàm open() được dùng để truy nhập nó.

Giả thiết tất cả người dùng đều có quyền truy nhập vào fíle thiết bị thì lập

trình để truy nhập cổng COM1 trên UNIX, Linux như sau;

#include <stdio.h>

#include <string.h>

#include <unistd.h> Nguyễn Thành Nam ĐT4-K49

*/

perror("open_port: Unable to open /dev/ttySO - ");

} else

fcntl(fd, F_SETFL, 0);

retum (fd); } (adsbygoogle = window.adsbygoogle || []).push({});

- Ghi dữ liệu qua cổng COM

Ghi dữ liệu qua cồng COM bàng cách sư dụng hàm hệ thống write() đế ghi

n = write(fd, "ATZ\r", 4);

if (n < 0)

fputs("ghi 4 bytes lỗi !\n", stderr);

Hàm write() trả về số byte ghi thành công và trả về -1 nếu có lỗi xảy ra. - Đóng cổng COM

Đe đóng cổng COM ta dùng hàm

close(fd);

Đóng cổng COM cũng đồng thời thiết lập tín hiệu DTR về 0

e. Cấu hình cho cổng COM

- Giao diện nối tiếp

Hình 20 Bảng các cờ điều khiến

cống COM

Điều

này đảm bảo chương trình sẽ không chiếm quyền sử dụng cồng nối tiếp và

driver cho cổng nối tiếp có thể đọc được dừ liệu đầu vào.

Các tùy chọn B9600, BI 15200, ...được dùng cho các phiên bản cù khi thiếu

các tham số tùy chọn c_ispeed và c_ospeed đế thiết lập tốc độ bit. - Thiết lập kích thước kí tự

Không giống như tốc độ bit, không có hàm trưc tiếp thiết lập kích thước

kí tự

mà thay vào đó ta phải thực hiện như sau:

options.c_cflag &= ~CSIZE; /* tắt các bit kích thước kí tự */

options.c_cflag 1= CS8; /* chọn 8 bit dữ liệu */

- Thiết lập chế độ đọc truyền thống

options.c lílag &= -(ICANON I ECHO I ECHOE IISIG);

4.6.3 Phát triển chương trình điều khiến độ phần giải video qua cổng COM

Chưong trình truyền vidco trên bo nhúng phải chạy từ dòng lệnh do đó bất

tiện trong việc sử dụng. Việc phát triển một tiện ích qua cổng COM sẽ giúp người

dùng có thể dễ dàng thao tác với giao diện thân thiện để điều chỉnh một sổ

Bị tắt bời tiến trình cha (adsbygoogle = window.adsbygoogle || []).push({});

Hình 22 Lưu đồ thuật toán thav đổi độ phân giải

4.7Các module chính

Tìm hiều về hệ nhúng, các board , các kiến trúc. Việc xây dựng mạng ad-hoc

dựa trên hệ nhúng. Việc triên khai là rất khả thi vì hệ nhúng tiết kiệm năng lượng.

Phù hợp với việc xây dựng mạng ớ những khu vực địa hình hiêm trở. Đặc biệt mạng

Ad-hoc không cần cơ sở hạ tầng.

4.7.2 Module triến khai video streaming trên server.

Hệ thống mạng Ad-hoc phù hợp để truyền video thời gian thực, ứng

dụng hệ

thống vào việc quan sát hiện trường. Video từ hiện trường được đưa lên server.

Module kết nối mạng

nhúng.

Quan sát hiện trường thông qua trình duyệt

We Người dùng

Web Brovvser

Hình 23 Giao diện người máy web browser

Xây dựng chương trình thay đổi độ phân giải “Resolution changing” cho

phép người ở hiện trường có thể thay đổi độ phân giải (resolution) của video

Hình 24 Giao diện nguửi máy thav đối độ phân giải 4.9Tích họp hệ thống

- Ket nối webcam vào Armadillo 300 đã cài driver hỗ trợ.

- Triên khai chương trình video streaming.

- Triên khai webserver trên Armadillo 300, Triên khai Webpage.

__ r

5. Kêt quả đạt được

Các máy Client trên mạng Ad-hoc đã theo dõi được hiện trường qua trang web được

truy cập vào địa chỉ của server.

Tín hiệu thu được tưong đối rõ nét. Khi khoảng cách quá xa hoặc chất lượng đường

Hình 25 Webcam Lab Tech

Hình 26 Giao tiếp RS232 giữa máy tính với bo nhúng

Giáo viên hướng dẫn: T.s Phạm Văn Tiến (adsbygoogle = window.adsbygoogle || []).push({});

5.2 Phần mềm

- Giao diện web quan sát hiện trường:

(ị Su dung he nhung noi mang Ad-hoc cho C3C ung dung video hĩen truong - MozílU Rreíox □ I i’ T-Ị

Hình 27 Giao diện web giói thiệu

^ Sudung he nhung noi mang Ad-hoc tho cac ung dung video hien

tiuong • Mciilla Fiiefox § 8

File Ẹdit View Histoty Bookmarks Tooli Help (0Ị * c ^ • http:/tl92.168.7213:80 ứ ' 0' SỬpỤNG HỆ NHÚNG NỖI MẠNG AD- HOC CHO CÁC ỨNG DUNG VIDEO HIỆN TRƯỐNG

chú nhiệm dê tài

TS. Phạm văn Tiến

Quan sát hiện trường iì

Quan sát hiện trường

Hình 28 Giao diện web quan sát hiện tnrờng

- Giao diện chương trình thay đồi độ phân giải “Resolution changing”

Hình 29 Giao diện chương trình Resolution Changing (start)

Hình 30 Giao diện chương trình Resolution Changing (coníĩgure)

6. Kết luân

- Sản phẩm có ý nghĩa rất lớn trong đời sống thực tiễn. Hệ thống được

triển khai

không cần cơ sở hạ tầng mạng. Có thề triển khai ở những khu vực dân

cư đông đúc,

những khu đô thị, chung cư và đặc biệt là có thê triên khai ở những

khu vực có địa

hình hiểm trở. Cho phép con người có thể theo dõi hiện trường và có

thể điều chỉnh

Tài liêu tham khảo

[1]Thuyết minh đề tài KHCN trọng điểm cấp nhà nước KC.01.10/06-10.

[2] Symbian dcveloper library, section “Application development tutoriar,

http://www.symbian.com/.

[3] Embcdded Linux: BlueCat Linux,

http://www.lynuxworks.com/embedded- linux/embedded-linux.php . (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Thiết kế, tích hợp và phát triển phần cứng, phần mềm hệ nhúng armadillo 300 cho phép truyền video trên mạng WLAN và mạng adhoc (Trang 41)