PDA

View Full Version : Dùng PIC nhận ảnh từ camera chuẩn USB


trungkien_a2
24-01-2008, 04:22 PM
Tại hạ đọc qua sách "Vi điều khiển và lập trình C" của thầy Ngô Diên tập thấy giới thiệu qua về PIC một vài dòng có giao tiếp USB .Tại hạ muốn làm một đề tài dùng PIC nhận dữ liệu ảnh từ Camera chuẩn USB (dùng cho việc xử lý ảnh => không yêu cầu tốc độ cao và bộ nhớ lớn )
Điều này có thể thực hiện được không?Nếu được định hướng nghiên cứu và tài liệu ra sao?
Tại hạ hiện không biết gì về PIC nhưng lập trình cho 8051 nhiều rồi và nếu có định hướng học thêm một con PIC nữa chắc cũng không khó khăn lắm

Mong các huynh đệ xa gần nhiệt tình chỉ giáo!!!!!!!!!!!!!

nguyendinhtuan
24-01-2008, 08:44 PM
mình rất thích xử lí ảnh, mình đề nghị chúng ta sẻ thảo luận về đề tài này thường xuyên . rất mong các bạn cùng tham dự, post tài liêu, chia sẻ kinh nghiệm thực tế.
thân,

namqn
24-01-2008, 08:59 PM
Tại hạ đọc qua sách "Vi điều khiển và lập trình C" của thầy Ngô Diên tập thấy giới thiệu qua về PIC một vài dòng có giao tiếp USB .Tại hạ muốn làm một đề tài dùng PIC nhận dữ liệu ảnh từ Camera chuẩn USB (dùng cho việc xử lý ảnh => không yêu cầu tốc độ cao và bộ nhớ lớn )
Điều này có thể thực hiện được không?Nếu được định hướng nghiên cứu và tài liệu ra sao?
Tại hạ hiện không biết gì về PIC nhưng lập trình cho 8051 nhiều rồi và nếu có định hướng học thêm một con PIC nữa chắc cũng không khó khăn lắm

Mong các huynh đệ xa gần nhiệt tình chỉ giáo!!!!!!!!!!!!!
Vấn đề ở đây là USB là một chuẩn cần có host device, mà PIC hay camera đều là các ngoại vi USB. Do đó, về mặt nguyên tắc rất khó có thể nối PIC với camera thông qua chuẩn USB. Cách khả thi hơn là bạn dùng PIC đọc ảnh từ thẻ nhớ (MMC, SD, ...) của camera, Microchip có một số tutorial liên quan đến giải pháp này.

Thân,

nguyendinhtuan
24-01-2008, 09:11 PM
Vấn đề xử lí ảnh bằng chíp thực sự là rất khó , nếu không sử dụng bộ nhớ ngoài . trươc tiên, chúng ta cần hiểu về ảnh cái đã. ảnh thực chất là dạng tín hiệu analog hay digital được biểu diễn dưới dạng ma trận 2 chiều. trên màn hình , mỗi phần tử ảnh là một diểm của matran điểm đó (pixel). đối với ảnh đen trắng thì mổi một mức thay đổi của điểm ảnh được quản lí bởi 1 byte (8 bit), do đó sẻ có tất cả là 2^8 =256 mức độ khác nhau của điểm ảnh. còn ảnh màu thì được hợp bởi 3 màu cơ bản xanh đậm , đỏ, xanh lục. do đó để quản lí 1 điểm ảnh màu thì cầm đến 3 byte .
do đó bạn cần bộ nhớ lớn để xử lí. Và đừng quên chọn loại camara có thông số kỹ thuật phù hợp.

trungkien_a2
25-01-2008, 09:34 AM
Cái đề tài xử lý ảnh mà tại hạ đang muốn theo đuổi không yêu cầu cao về bộ nhớ cũng như tốc độ chỉ yêu cầu nhận được ảnh đen trắng mã hóa theo mức xám dạng ma trận thế là coi như xong.
Hướng của tiểu đệ là :
1> Dùng camera tương tự đen trắng đưa vào PIC có ADC chuyển đổi cỡ 12.5 ns (loại 18F) nhưng quá hạn hẹp thời gian thực như thế cũng có thể nhận được ảnh ( ý tưởng thôi)
2> Nếu lập trình firmware cho PIC đóng vai trò như host nhận được ảnh từ camera hoặc webcame chuẩn USB thì quá tuyệt vời!!!!
Bên picbasic.co.uk họ cũng có nói đến vấn đề dùng PIC điều khiển Printer http://www.picbasic.co.uk/forum/showthread.php?t=2110
nhưng hầu hết đều cho rằng rất khó ( Cái này thì khó thật) => Nhưng chỉ nhận ảnh qua usb thì tại hạ nghĩ có thể làm được
Tất cả chỉ là ý tưởng tại hạ muốn mọi người biết nhiều về PIC cho ý kiến => Có thực hiện được không? Định hướng trước như thế để tìm hiểu về PIC đỡ mất công
Hôm qua đọc được Datasheet của 18F2450/4450 thì các thanh ghi điều khiển USB của nó có thể cho phép đọc và ghi http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2057&ty=&dty=Data+Sheets&section=Data+Sheets&ssUserText=PIC18F2450
Thank a lot!!!

trungkien_a2
25-01-2008, 10:26 AM
Có vẻ như không thực hiện được rồi!!!!!!!!
http://forum.microchip.com/tm.aspx?m=310331&mpage=1&key=
http://forum.microchip.com/tm.aspx?m=310121

phamminhtuan
26-01-2008, 08:55 AM
Bỏ ý định đó đi bạn ơi, trừ khi con Pic của bạn tích hợp thêm 1 cái USB hub như cái đầu DVD USB

lion
23-02-2008, 08:58 AM
minh` cung co y' tuong rat giong cua ban TRUNGKIEN va dang tìm cách thực hiện nó

lion
23-02-2008, 08:59 AM
nhưng cò vẻ cũng ko đon giản lắm

nguyendinhtuan
23-02-2008, 06:20 PM
mình nghĩ nên làm những cái có sẳn để hiểu thực sự bản chất của vấn đề rồi phát triển dần lên. đây là mô hình robot đơn giản, dễ làm.
http://www.robotroom.com/StreamHawk-Wireless-Explorer-Robot.html

falleaf
24-02-2008, 01:25 PM
Không hiểu các bạn có hiểu rõ chuẩn USB chưa mà các bạn đòi lấy con PIC giao tiếp USB với cái camera. Thời gian tới đây, Microchip sẽ cho ra con USB host, còn hiện tại thì chưa có con USB host, không thể lấy cái con 18F4550 để nhận ảnh từ một USB device được, nó cũng chỉ là dạng client thôi.

Thời gian sắp tới Microchip sẽ có con USB host, khi nào có, F sẽ thông báo nhanh chóng cho các bạn.

Chúc vui

namqn
24-02-2008, 06:40 PM
...

Thời gian sắp tới Microchip sẽ có con USB host, khi nào có, F sẽ thông báo nhanh chóng cho các bạn.

Chúc vui
F định nói đến mấy con PIC32MX On-The-Go à? E rằng còn phải chờ khá lâu mới có đủ mọi thứ để thử nghiệm.

Thân,

lion
29-02-2008, 08:54 PM
bang chủ nói vậy thì chắc không dùng pic để nấy dữ liệu từ webcam-USB được hả???

nếu dùng modul chuyển đổi USB-I2C thì có được không ???

background
29-02-2008, 09:52 PM
Cái đề tài xử lý ảnh mà tại hạ đang muốn theo đuổi không yêu cầu cao về bộ nhớ cũng như tốc độ chỉ yêu cầu nhận được ảnh đen trắng mã hóa theo mức xám dạng ma trận thế là coi như xong.
Hướng của tiểu đệ là :
1> Dùng camera tương tự đen trắng đưa vào PIC có ADC chuyển đổi cỡ 12.5 ns (loại 18F) nhưng quá hạn hẹp thời gian thực như thế cũng có thể nhận được ảnh ( ý tưởng thôi)
2> Nếu lập trình firmware cho PIC đóng vai trò như host nhận được ảnh từ camera hoặc webcame chuẩn USB thì quá tuyệt vời!!!!
Bên picbasic.co.uk họ cũng có nói đến vấn đề dùng PIC điều khiển Printer http://www.picbasic.co.uk/forum/showthread.php?t=2110
nhưng hầu hết đều cho rằng rất khó ( Cái này thì khó thật) => Nhưng chỉ nhận ảnh qua usb thì tại hạ nghĩ có thể làm được
Tất cả chỉ là ý tưởng tại hạ muốn mọi người biết nhiều về PIC cho ý kiến => Có thực hiện được không? Định hướng trước như thế để tìm hiểu về PIC đỡ mất công
Hôm qua đọc được Datasheet của 18F2450/4450 thì các thanh ghi điều khiển USB của nó có thể cho phép đọc và ghi http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2057&ty=&dty=Data+Sheets&section=Data+Sheets&ssUserText=PIC18F2450
Thank a lot!!!

bác còn bài nào nữa cú post nhé. Thanks!

minhtienbk
02-04-2008, 10:43 PM
theo tui bạn nên mua camera chuyên dùng với vi điều khiển ( đã thấy ng xài rồi ) , nó có giao tiếp song song , nhưng cẩn thận có thể con PIC 18 ko đủ nhanh để xử lý tốc độ cao như thế , dùng loại cao cấp hơn xem , 16 bit chẳng hạn , hay xài ARM 32bit,tốc độ rất khá (mình ko rành về dsPIC và PIC 16bit nên ko biết tốc độ nó tối đa bi nhiêu)

rmitoday
04-04-2008, 05:25 PM
Dùng con VNC1L của FTDI (http://www.vinculum.com/) có thể lập trình cho PIC thành host nhưng vấn đề giao tiếp với camera USB như thế nào đây có ai biết?

namqn
04-04-2008, 07:02 PM
Dùng con VNC1L của FTDI (http://www.vinculum.com/) có thể lập trình cho PIC thành host nhưng vấn đề giao tiếp với camera USB như thế nào đây có ai biết?
Bạn nhầm rồi, VNC1L là host controller IC, bên trong nó là một USB host controller với một MCU 8-bit (Vinculum MCU) và một đồng xử lý số 32-bit. Tuy nhiên, PIC có thể kết nối với VNC1L thông qua các cổng I/O thông thường. Nếu sử dụng giải pháp này, PIC vẫn không phải là host controller.

Thân,

trungkien_a2
12-04-2008, 10:11 AM
theo tui bạn nên mua camera chuyên dùng với vi điều khiển ( đã thấy ng xài rồi ) , nó có giao tiếp song song , nhưng cẩn thận có thể con PIC 18 ko đủ nhanh để xử lý tốc độ cao như thế , dùng loại cao cấp hơn xem , 16 bit chẳng hạn , hay xài ARM 32bit,tốc độ rất khá (mình ko rành về dsPIC và PIC 16bit nên ko biết tốc độ nó tối đa bi nhiêu)

Các hạ nhìn thấy nó ở đâu vậy => very good
Nếu bạn đang ở bkhn thì làm ơn cho tại hạ địa chỉ nhé
Lâu nay cứ nghĩ ý tưởng này phá sản nghe thấy thế sướng quá!
0932237291
Thanks

rmitoday
12-04-2008, 11:02 AM
Bạn nhầm rồi, VNC1L là host controller IC, bên trong nó là một USB host controller với một MCU 8-bit (Vinculum MCU) và một đồng xử lý số 32-bit. Tuy nhiên, PIC có thể kết nối với VNC1L thông qua các cổng I/O thông thường. Nếu sử dụng giải pháp này, PIC vẫn không phải là host controller.

Thân,
Em nói lộn, ý em không phải là PIC phải là host controller mà PIC kết hơp với VNC1L ta có thể tạo USB host để giao tiếp với các thiết bị như USB drive, webcam, v.v...(Xem http://www.eepn.com/Locator/Products/ArticleID/35737/35737.html). Mặc dù webcam rẻ tiền và sẵn có nhưng để giao tiếp với nó thì cả vấn đề vì mỗi loại webcam dùng image sensor khác nhau và ta phải biết cách thức giao tiếp với nó. Nói nôm na giống như ta phải viết driver để nó hoạt động trên windows.


Các hạ nhìn thấy nó ở đâu vậy => very good
Nếu bạn đang ở bkhn thì làm ơn cho tại hạ địa chỉ nhé
Lâu nay cứ nghĩ ý tưởng này phá sản nghe thấy thế sướng quá!

Bạn có thể mua cái digital camera này tại http://www.electronics123.com/s.nl?it=A&id=2027&sc=1&category=-101 giao tiếp với nó bằng UART cực kỳ đơn giản. Mình cũng muốn mua nhưng tiền shipping mắc nên nếu có ai chia sẻ thì đặt mua liền.

trungkien_a2
14-04-2008, 11:24 AM
Bạn có thể mua cái digital camera này tại http://www.electronics123.com/s.nl?it=A&id=2027&sc=1&category=-101 giao tiếp với nó bằng UART cực kỳ đơn giản. Mình cũng muốn mua nhưng tiền shipping mắc nên nếu có ai chia sẻ thì đặt mua liền.

Thanks bạn nhé?
Tiền shipping đã đành, mà mua 2-3 con người ta có chịu không?
Mấy cái module này tuyệt quá giá có mà đập phá thì thích phải bít
Mail thử coi tình hình thế nào đã??

Mà coi qua nó nén JPEG cái này mà dùng C chuyển thành .BMP cũng vỡ mặt.Vi điều khiển nó không hỗ trợ đầy đủ công cụ như PC.
Càng ngày càng thấy khó => nhưng khó thì mới thích

laiquangtuyen
15-04-2008, 03:23 PM
Lang thang nhiều ngày trên mạng tui đã tìm cái này thấy cũng được lắm! bà con tham khảo thử rồi cho ý kiến nha!
http://www.robozes.com/

trungkien_a2
17-04-2008, 09:30 AM
Bạn có thể mua cái digital camera này tại http://www.electronics123.com/s.nl?it=A&id=2027&sc=1&category=-101 giao tiếp với nó bằng UART cực kỳ đơn giản. Mình cũng muốn mua nhưng tiền shipping mắc nên nếu có ai chia sẻ thì đặt mua liền.

Hôm trước mail cho họ thì họ hứa là sẽ chuyển hàng về Việt Nam
Bạn ở trong thành phố đúng không?
Tôi đang ở Hanoi, tìm nhưng không có cái module này , Bạn ở trong đó tìm xem có không thi reply cho tui nhe'.
Tôi cay con này lắm , nếu ở việt nam không có thì sẵn sàng cùng bạn chia sẻ tiền shipping nhưng thực ra tôi chưa rõ thủ tục thế nào( Chưa làm việc này bao giờ..hi) đọc thấy mỗi chú ~48$ => làm độ 5 chú dùng dần còn tiền ship thấy viết 33$
Reply lại cho bạn nhé

laiquangtuyen
19-07-2008, 10:12 PM
Tại sao các Bác cứ loay hoay mãi cái vấn đề làm sao USB+PIC. Vậy vấn đề của chúng ta tóm lại là làm sao lấy dữ liệu từ webcam về pic để xử lí đúng ko?
Tui có ý kiến theo cá nhân tui tự cho thấy là rất hay, ko biết các bác có để ý linh kiện trong điện thoại di động ko. Vừa rẻ, dễ mua, mà ko phức tạp nữa, dữ liệu ra song song tùy loại mà bác mua có thể bao nhiêu bit, rồi cũng mấy đường còn lại thôi. Nó hơi giống như giao tiếp với LCD. Nếu chúng ta chuyển hướng giải quyết thế thì tiện biết mấy!
Tui nói thế có đúng ko vậy nếu ko có gì thứ lỗi.
Tui còn một ý tưởng, hôm rồi tui mua một cái màn hình màu trong điện thoại MP4 trung quốc về nghiên cứu vì tui thấy trên mạng người ta cung giao tiếp với pic được mà làm được nhiều thứ nữa. 2 cái này mà kết hợp lại thì hay biết mấy. Bây giờ cần các cao thủ ra tay cứu giúp anh em phần source code là ok!

trungkien_a2
26-07-2008, 11:09 PM
Tại sao các Bác cứ loay hoay mãi cái vấn đề làm sao USB+PIC. Vậy vấn đề của chúng ta tóm lại là làm sao lấy dữ liệu từ webcam về pic để xử lí đúng ko?
Tui có ý kiến theo cá nhân tui tự cho thấy là rất hay, ko biết các bác có để ý linh kiện trong điện thoại di động ko. Vừa rẻ, dễ mua, mà ko phức tạp nữa, dữ liệu ra song song tùy loại mà bác mua có thể bao nhiêu bit, rồi cũng mấy đường còn lại thôi. Nó hơi giống như giao tiếp với LCD. Nếu chúng ta chuyển hướng giải quyết thế thì tiện biết mấy!
Tui nói thế có đúng ko vậy nếu ko có gì thứ lỗi.
Tui còn một ý tưởng, hôm rồi tui mua một cái màn hình màu trong điện thoại MP4 trung quốc về nghiên cứu vì tui thấy trên mạng người ta cung giao tiếp với pic được mà làm được nhiều thứ nữa. 2 cái này mà kết hợp lại thì hay biết mấy. Bây giờ cần các cao thủ ra tay cứu giúp anh em phần source code là ok!

Tại hạ không rành về cái này nhưng tại hạ đánh giá rất cao bài viết của các hạ
Chúng ta không nên đi theo những cái mà người ta đã làm rồi mà phải luôn tìm tòi và đưa ra những ý tưởng mới cho dù nó chỉ là ý tưởng thôi.Về cơ bản điều mà các hạ đưa ra chắc chắn làm được ( Người chế tạo ra DTDD đã làm rồi ) nhưng vào tay ta có đủ khả năng làm không???????????????Chán đời => Khả năng của ta kém quá

Good luck!

namqn
26-07-2008, 11:25 PM
Tại sao các Bác cứ loay hoay mãi cái vấn đề làm sao USB+PIC. Vậy vấn đề của chúng ta tóm lại là làm sao lấy dữ liệu từ webcam về pic để xử lí đúng ko?
Tui có ý kiến theo cá nhân tui tự cho thấy là rất hay, ko biết các bác có để ý linh kiện trong điện thoại di động ko. Vừa rẻ, dễ mua, mà ko phức tạp nữa, dữ liệu ra song song tùy loại mà bác mua có thể bao nhiêu bit, rồi cũng mấy đường còn lại thôi. Nó hơi giống như giao tiếp với LCD. Nếu chúng ta chuyển hướng giải quyết thế thì tiện biết mấy!
Tui nói thế có đúng ko vậy nếu ko có gì thứ lỗi.
Tui còn một ý tưởng, hôm rồi tui mua một cái màn hình màu trong điện thoại MP4 trung quốc về nghiên cứu vì tui thấy trên mạng người ta cung giao tiếp với pic được mà làm được nhiều thứ nữa. 2 cái này mà kết hợp lại thì hay biết mấy. Bây giờ cần các cao thủ ra tay cứu giúp anh em phần source code là ok!
Bạn đã sửa lại bài toán rồi đưa ra giải pháp khác. Nếu chủ đề của luồng là thu thập dữ liệu từ webcam về PIC thì tôi đồng ý bạn có thể đề xuất những giải pháp tương tự. Nhưng chủ đề của luồng là "Dùng PIC nhận ảnh từ camera chuẩn USB", do đó bạn không thể bảo người hỏi bỏ cái giao tiếp USB đi mà dùng giao tiếp khác.

Nếu người hỏi đồng ý với những ý kiến "áp đặt" của bạn, tôi đề nghị sửa chủ đề của luồng thành "Dùng PIC nhận ảnh từ camera".

Những trao đổi trước đó nhằm làm rõ, hiện thời PIC chưa thể làm host nên chưa thể giao tiếp trực tiếp với webcam qua giao tiếp USB. Việc này hiện nay đã thay đổi, vì các chip PIC với khả năng USB On-The-Go đã xuất hiện trên thị trường. Các bạn vào đây tìm xem có con PIC với khả năng On-The-Go (OTG) nào vừa mắt thì liên hệ với R&P xem có thể đặt hàng hay không:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en531079

Cũng chú ý các application note liên quan đến embedded host stack.

Thân,

laiquangtuyen
16-08-2008, 10:25 PM
Bài toán là nhận ảnh từ webcam về host usb ah. Vậy thì chúng ta phải chuyển sang dùng con vi điều khiển khác có chức năng host usb hoặc chúng ta đứng ở đây ngồi chờ nhà sản xuất tạo ra con IC đó rồi mới nghiên cứu ah. Hay tại hạ có giải pháp chuyển đổi giao tiếp sang trung gian. Có ai banh cái webcam ra coi thử chưa???
Trong đó nó có mấy đường cho chúng ta lấy tín hiệu ra đó. Vì bản thân webcam ngay tư đầu không có độ phân giải, mà độ lớn của cái ảnh phụ thuộc vào góc kính của webcam, tín hiệu ra là analog. Sau đó mới qua một cái mạch để xử lí và chuyển đổi tín hiệu, vậy mới có giao tiếp mong muốn, mới có độ phân giải là bao nhiêu. Vậy bà con nghĩ sao khi chúng ta tiếp tục cái luồng này khi hiện thời pic chưa hỗ trợ cái này???

namqn
17-08-2008, 01:00 AM
Bài toán là nhận ảnh từ webcam về host usb ah. Vậy thì chúng ta phải chuyển sang dùng con vi điều khiển khác có chức năng host usb hoặc chúng ta đứng ở đây ngồi chờ nhà sản xuất tạo ra con IC đó rồi mới nghiên cứu ah. Hay tại hạ có giải pháp chuyển đổi giao tiếp sang trung gian. Có ai banh cái webcam ra coi thử chưa???
Trong đó nó có mấy đường cho chúng ta lấy tín hiệu ra đó. Vì bản thân webcam ngay tư đầu không có độ phân giải, mà độ lớn của cái ảnh phụ thuộc vào góc kính của webcam, tín hiệu ra là analog. Sau đó mới qua một cái mạch để xử lí và chuyển đổi tín hiệu, vậy mới có giao tiếp mong muốn, mới có độ phân giải là bao nhiêu. Vậy bà con nghĩ sao khi chúng ta tiếp tục cái luồng này khi hiện thời pic chưa hỗ trợ cái này???
Bạn đọc kỹ lại post phía trên của tôi, đã có PIC với tính năng On-The-Go hỗ trợ nhiệm vụ của host.

Thân,