Thông tin tài liệu:
Có nhiều bạn hỏi mua một số loại camera chuyên dụng như UART camera, ISI image sensor...Những loại này đặc biệt, chỉ có bán ở nước ngoài và giá cỡ trăm USD không kể tiền ship. Tạisao ta không tận dụng những USB camera có sẵn của máy vi tính? Giá cỡ 150-250K, thấpkhông thể tin được !!! Ta chỉ cần trang bị một số kiến thức về Linux embedded system, nhưvậy có thể sử dụng ngon lành những thứ có sẵn này rồi....
Nội dung trích xuất từ tài liệu:
Giao tiếp USB Webcam, CameraGiao tiếp USB Webcam, Camera MỤC LỤC Giao tiếp USB Webcam, Camera .............................................................................. 2 Giới thiệu lập trình Nhúng.......................................................................................... 31 Một số ứng dụng chính của ARM dành cho doanh nghiệp .................................... 40Giao tiếp USB Webcam, CameraCó nhiều bạn hỏi mua một số loại camera chuyên dụng như UART camera, ISI imagesensor... Những loại này đặc biệt, chỉ có bán ở nước ngoài và giá cỡ trăm USD không kểtiền ship. Tại sao ta không tận dụng những USB camera có sẵn của máy vi tính? Giá cỡ150-250K, thấp không thể tin được !!! Ta chỉ cần trang bị một số kiến thức về Linuxembedded system, như vậy có thể sử dụng ngon lành những thứ có sẵn này rồi.Với kernel 2.6 và hệ thống có hỗ trợ USB host (full speed 2.0 vẫn chạy ngon lành) là cóthể áp chạy được, và ta có thể khám phá một số điều thú vị về mảng này.Ở máy tính, có thể kernel được build sẵn driver cho các loại USB camera thông thường.Đối với hệ thống nhúng, ta cần cấu hình và build driver này, các bước cấu hình cho linux-2.6.27 (áp dụng cho KM9260) được thực hiện như sau:Code:Code:$ cd linux-2.6.27$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfigCấu hình kernel như sau:Code:Code:Device Driver ---> Multimedia devices ---> Video For Linux [*] Enable Video For Linux API 1 (DEPRECATED) ...[*] Video capture adapters --->[*] V4L USB devices ---> USB Video Class (UVC)[*] UVC input events device support USB GSPCA driverSau khi cấu hình xong, build uImage và reboot hệ thống:Code:[CODE]$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage[CODE]Sau khi reboot hệ thống, ta gắn USB camera vào, kernel sẽ tự động nhận dạng thiết bị, vàtạo ra device file trong thư mục /dev, giá trị default là /dev/video0.Tới bước này ta hoàn tất driver cho hệ thống, ta cần đến chương trình ứng dụng tương tácvới driver này và thực hiện capture ảnh theo mong muốn. Những ứng dụng này sử dụngthư viện V4L (video for Linux) và có rất nhiều source nguồn mở trên internet, ta có thểdownload source về build và chạy, hoặc có thể tự tham khảo các V4L API tự viết chomình. Kernel linux-2.6.27 hiện nay hỗ trợ driver thích hợp cho phiên bản V4L2 (phênbản sau của V4L) và một số ứng dụng cũ trên mạng vẫn dùng V4L vì thế không thể vậnhành được driver trên.Đối với board nhúng KM9260 không hỗ trợ GLCD display, làm sao hiển thị kết quả thuđược từ USB camera ? Có 2 giải pháp:1> Hiển thị lên X server chạy trên máy tính, lúc này ta cần phải export biến môi trườngDISPLAY.2> Stream kết quả lên trang web, dùng trình duyệt FireFox để hiển thị.Ta sử dụng cách thứ 2 băng cách download source chương trình ứng dụng ở link sau:http://linux.softpedia.com/progDownl...oad-34273.htmlSau khi build và chạy chương trình ứng dụng ta có kết quả sau:Thêm nữa, hiện nay các module wireless hỗ trợ cho hệ thống VĐK bao gồm các moduleZigBee...Nhưng giá thành vẫn còn đắt đỏ, có vẽ còn xa vời. Tuy nhiên, hiện nay trên thịtrường vi tính hiện nay xuất hiện USB Wireless apdapter có nhãn hiệu Tenda W541UV2.0, chuẩn G 54Mbps, giá cỡ dưới 200K tùy vào chỗ bán. Không may, theo trang webcủa Tenda họ nói chỉ hỗ trợ cho Windows, không hỗ trợ cho Linux. Gắn USB adapternày vào hệ thống, dùng lệnh lsusb -vv nó hiện ra chipset của Ralink. Sau 2 ngày vò đầubức tóc, xào nấu... cuối cùng K cũng làm cho nó chạy được với KM9260 . Do sourcekernel không hỗ trợ driver cho loại chipset này vì vậy việc build driver theo kiểu externalmodule là điều cần thiết. Để làm điều đó cần phải cấu hình lại kernel, add phần mục hỗtrợ wireless.Code:Code:Vendor, chip ID: 0x148F,0x2070Chipset: Ralink 2070LCode:Code:$ cd linux-2.6.27$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfigCấu hình kernel:Code:Code:Device Driver --->[*] Network device support ---> Wireless LAN --->[*] Wireless LAN (IEEE 802.11) IEEE 802.11 for host AP ...[*] Support for downloading firmware imageswith host AP driver[*] Support for non-volatile firmware downloadBuild kernel:Code:Code:$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImageBuild module:Code:Code:$ cd W541U$ makeSau khi build xong kernel, reboot hệ thống, gắn USB wireless apdator vào KM9260, chépfirmware .bin và file cấu hình .dat vào thư mục /etc/wireless... ta cần phải insert moduledriver:Code:Code:$ insmod rt3070sta.ko$ iwconfig$ ifconfig ra0 inet 192.168.1.25 up Originally Posted by ttk84Tôi đã đọc tài liệu kỹ thuật board của anh và xem qua về chức năng của Chip ARM maanh sử dụng. Nhưng chưa thấy nói kỹ về phần lập trình sử dụng cho board(giao tiếpADC, giao tiếp rs232,...) và làm cách nào để load và run chương trình theo ý đồ củamình(trong tà ...