UVC - 使用 UVC 將照片傳出
材料準備
- Ameba x 1
- Logitech C170 web cam x 1
- Micro USB OTG adapter x 1
範例說明
這個範例裡,會將Camera設定成Motion JPEG模式,然後每秒嘗試將照片從TCP傳出到網路另一端。
另一端則需要使用TCP來接收照片,這個範例裡會使用linux的netcat來接收照片。
首先打開範例 “File” -> “Examples” -> “AmebaUVC” -> “uvc_jpeg_capture”
接著需要修改幾個設定:
另一端則需要使用TCP來接收照片,這個範例裡會使用linux的netcat來接收照片。
首先打開範例 “File” -> “Examples” -> “AmebaUVC” -> “uvc_jpeg_capture”
接著需要修改幾個設定:
- Wifi連線需要使用的ssid/password
- 接收端的IP,在linux底下可以打ifconfig看目前的IP
接線如同之前的UVC範例。
接著在linux的電腦上打: nc -l 5001 > my_jpeg_file.jpeg
這個命令會停著直到socket結束或出現問題。這個範例裡我們會讓Ameba傳完照片之後將socket關掉。
我們將程式碼編譯並上傳至Ameba,完成之後按下Reset按鈕,會看到Ameba連線完成之後,將第一張照片成功發出去,之後會出現Fail to connect,代表這個範例完成了。
同時會在linux端看到原本等待資料的nc命令已經結束,在命令列當前的目錄也出現了my_jpeg_file.jpeg的檔案,打開看一下照片是否完整。如果需要再收一次照片,再下一次nc命令即可,Ameba端會每秒嘗試送照片。
程式碼說明
在UVC begin()的地方多了一個參數可以使用:,最後面的地方指定成JPEG_CAPTURE,這樣就不會啟動RTSP service,但仍會抓取Camera的封包。
接著嘗試透過TCP將jpegbuf的資料傳出去即可。
UVC.begin(UVC_MJPEG, 640, 480, 30, 0, JPEG_CAPTURE);
在loop()裡面,將JPEG存到預先定義好的jpegbufint len = UVC.getJPEG(jpegbuf);
接著嘗試透過TCP將jpegbuf的資料傳出去即可。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用條款