C6678 objectTracking
1.0.0
이 문서는 이 프로젝트를 실행하기 위한 단계별 절차를 제공합니다.
이 프로젝트는 3개 부분으로 구성되어 있습니다.
이것은 연결된 USB 웹 카메라에서 비디오를 읽고 비디오 프레임을 1024바이트 단위로 분할하는 간단한 C++,C 프로그램입니다. 그런 다음 패킷의 마지막 2바이트에 인코딩된 헤더 정보(패킷 번호)를 추가합니다. 그리고 UDP 연결을 열어 데이터를 C6678로 보냅니다.
-D OPENCV_GENERATE_PKGCONFIG=ON
실행할 때 하나의 추가 플래그를 추가해야 했습니다. 이렇게 하면 Makefile에서 pkg-config --cflags --libs opencv4
사용할 수 있습니다.#define SERVER_IP "10.107.2.126
줄을 편집하여 액세스할 수 있는 IP 주소를 제공하거나 C6678에 동일한 주소를 추가하고 C6678을 PC에 직접 연결하세요.#define PORT 7
사용합니다. 이 포트를 사용하려면 sudo 권한이 있어야 할 수도 있습니다. sudo를 사용하지 않으려면 포트를 1024보다 큰 숫자로 변경하세요.make
명령을 실행하고 make clean
수행하여 모든 빌드 파일을 정리합니다.sudo ui
입력하여 실행 파일을 실행합니다.VideoCapture vidIn(1);
카메라를 연결한 후 생성된 /dev/video1
또는 /dev/video2
비디오용 스텁 파일을 통해 연결된 카메라 번호를 확인할 수 있습니다.fd = open("/dev/ttyACM0",O_RDWR | O_NOCTTY | O_NDELAY);
직렬 통신용 코드는 github 저장소 xanthium-eneterprises에서 가져왔습니다.Projects->Import CCS Projects
로 이동하여 ti/mcsdk_2_01_02_05/examples/ndk/helloWorld/
에서 프로젝트를 선택합니다.ti/ccsv5/ccs_base/emulation/boards/evmc6678l/gel/evmc6678l.gel
코어 0에 추가합니다.main()
함수에서 해당 작업을 해제하여 LED 깜박임 작업을 켤 수 있습니다. 다음을 사용하는 경우 빌드 경로에 $IMG_LIB_ROOT를 추가해야 합니다.tcpdump
더 멋진 옵션입니다 * Unless you dont know exactly what you are doing, dont use semaphores. Semaphores are used for mutual exclusion of two tasks. But in most of the cases, we want the threads to run in parallel.
* Dont use blocking calls inside tasks
* .y files given by TI are simple binary files, you dont need a special software for that you can write a simple c code for binary file manipulation, or use matlab/octave for the same. Octave file is given in this repository.
* check and make sure that you have matching image dimensions everywhere.To avoid redefinition, in most places we use the `extern` keyword in c file.