SpiderCar의 전장부를 모두 조립하였다면, 제대로 연결을 완료하였는지 확인이 필요합니다.
- 터미널을 열고 다음 커멘드 라인을 입력해주세요!!
$ i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --
SpiderCar에 사용된 CSI 카메라는 일반 웹캠과 다르게 OpenCV 내에서 VideoCapture가 아닌, gstreamer 통해 접근해야 합니다. 이에 따라 연결의 확인과 동작 여부 확인이 반드시 필요합니다.
- SpiderCar 폴더인
hello-mars-spidercar
안에 utils로 진입하여 다음과 같이 테스트 프로그램을 실행합니다.
python3 csi_cam_test.py
- SpiderCar 폴더인
hello-mars-spidercar
안에 RCController로 진입하여 다음과 같이 테스트 프로그램을 실행합니다.
$ python3 basic_control.py
Throttle Controller Awaked!!
Steering Controller Awaked!!
Throttle : 360
Angle : 350
speed_pulse : 360 / steering_pulse : 350
전후 엑셀 값과 좌우 조향값을 각각 입력받아 RC카의 제어가 가능합니다.
이를 통해 영점 조절을 할 수도 있지만, 여러 시행착오가 필요하기에 핸드폰을 이용한 영점조절 방식을 추천드립니다.
현재 지원하는 센서의 종류는 두가지가 있습니다.
- 적외선 센서
- 자석 센서
각각 센서의 활용 예시는 사진과 같이 별도 폴더로 나뉘어 있습니다.
두 예제 모두 예시 파일을 담고 있으며 여기서는 자석 센서의 예시를 실행해보도록 하겠습니다.
$ cd hello-mars-spidercar/HallSensor
$ python3 hall_sensor.py
/usr/lib/python3/dist-packages/Jetson/GPIO/gpio.py:411: RuntimeWarning: No channels have been set up yet - nothing to clean up! Try cleaning up at the end of your program instead!
"program instead!", RuntimeWarning)
/usr/lib/python3/dist-packages/Jetson/GPIO/gpio.py:386: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings
RuntimeWarning)
1637721326.3569725
1637721326.357085
1637721326.3571954
1637721326.3573055
1637721326.3574166
1637721326.357528
1637721326.3576384
1637721326.3577476
1637721326.3578575
1637721326.3579745
1637721326.3580956
1637721326.3582077
1637721326.358321
...
예제를 실행시킨 뒤 센서에 자석을 접촉하여 센서가 반응하면 위 로그와 같이 현재 시간이 출력되어 나타납니다.