4. Triển khai thực hiện
4.3.2 Triển khai OLSRD trên hệ nhúng
Sử dụng giao thức định tuyến giúp cho board nhúng có thể truyền
vidco tới
các nút mạng khác thông qua các nút trung gian trên mạng Ad-hoc
a) Cross-compile OLSRD
- Download gói phần mềm olsrd-0.5.6-r2.tar.bz2 - Giải nén bàng lệnh:
$ tar xvjf olsrd-0.5.6- r2.tar.bz2
b) Nạp olsrd xuống board nhúng
Đối với gói OLSRD ta phải bô xung các thư viện hỗ trợ lập trình tuyến và
fíle cấu hình trước khi tạo lại file image (make image) như sau:
cp / usr/arm-linux/lib/libpthread-0.10.so Atmark-dist- 20081018/romfs/lib
ln-s ./libpthreadO.lO.so ./libpthread.so.O
4.4.1 Tiến trình thực hiện
- Test thử với phần mềm capture vvebcam
Hình 14 Tiến trình triển khai Webcam driver 4.4.2 Giói thiệu gói phần mềm GSPCA
GSPCA là gói phần mềm chạy trên nền Linux cho phép triển khai
driver cho
một số lượng lớn webcam. Ngoài ra tùy tùng loại webcam sẽ có driver riêng tương
ứng.
Do đó việc triển khai GSPCA sẽ giúp bo nhúng có thế chạy tốt các ứng dụng
video với nhiều loại webcam khác nhau
4.4.3 Triể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.
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
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); }
- 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
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
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 .