일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Algorithm
- directx
- Deque
- arduino compiler
- Visual Micro
- LineTracer
- map
- list
- html
- stl
- WinAPI
- 아두이노
- set
- 아두이노 소스
- Array
- 자료구조
- C언어
- 아두이노 컴파일러
- Stack
- 수광 소자
- 운영체제
- 라인트레이서
- c++
- Arduino
- 시스템프로그래밍
- queue
- 컴퓨터 그래픽스
- 통계학
- vector
- priority_queue
- Today
- Total
목록Arduino/Line Tracer (9)
Kim's Programming
짧은 영상이지만 라인트레이서는 완벽하게 잘 돌아갑니다!!! 라인트레이서 완성! 코드가 필요하시거나 도움이 필요하신분은 댓글로 문의주세요~ 코드 공개하였습니다. 도움이 되셨다면 댓글이나 남겨주세요! :) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131..
라인트레이서의 조립이 완료된 모습입니다. 물론 조립에 이용된 프레임은 따로 있던걸 쓴 것 입니다 ^^; 조립도 완료하고 ADC값도 조정하고 코드작성도 완료하여 주행 테스트를 실시 해봤습니다. 라인트레이서의 시범 주행입니다. 너무 느리죠? 하지만 선은 잘 따라가네요 이제 속도 조정만 남은것 같습니다.
ADC값을 이용하여 선을 인식해야하기 때문에 처음에 기준 값을 설정 해주어야 합니다. ADC값 측정을 위해 아래 코드를 이용합니다. 1 2 3 4 5 6 7 8 9 10 11 12 void setup() { Serial.begin(9600); } void loop() { unsigned long int sensor; sensor=analogRead(A0); Serial.println(sensor); delay(1000); } cs 위의 코드를 이용하면 아래와 같은 값을 얻을수 있습니다. 검은색이 일떄 약 900정도 흰색일떄 약 200정도의 값이 나옵니다. 대략 중간쯤으로 기준을 잡아주면 되니 한 600쯔음 으로 흰선과 검은선을 구별해주면 되겠습니다.
드라이버 IC 회로 제작중의 사진은 없어서 완성본 사진만 올립니다 ^^; 현재 연결 상태를 말하자면 (왼쪽 오른쪽은 사진 기준입니다) 노파 -> 왼쪽 모터 방향 조정 흰보 -> 오른쪽 모터 조정 주황 -> (+) 파랑 -> (-) 기타 파빨 2세트 2개 -> 모터 Vout 뒷면 사진입니다.
라인트레이서의 발광 및 수광부 제작입니다. 먼져 최적화된 배치로 배치를 합니다. 납땜을 해줍니다 벌써 몇군데 탔네요... 완성이 되었습니다.!! 물론... 위의 완성본은 사진이 없습니다.. 어쨌든 완성본은 다르게 생겼지만 원리와 동작은 똑같습니다. 완성본의 윗면입니다. 완성면의 뒷면입니다. 어느정도 알아 볼 수 있지만 실리콘을 발라놔서 알아보기가 힘들껍니다. 뒷면은 쇼트 방지를 위하여 실리콘 처리를 해둔 상태입니다. 이렇게 발광 수광 기판이 완성되었습니다
모터 구동부는 위와 같은 회로도 모형을 갖게 됩니다. 양쪽 모터를 이용하기 때문에 양쪽으로 2세트 만들어 주시면 됩니다. 위 모터 조작에 대한 소스코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //motor driver inputs #define Left_Wheel_1 9//left motor #define Left_Wheel_2 8 #define Right_Wheel_1 2//right motor #define Right_Wheel_2 3 void setup() { //Define motor pins as output to manage them. pinMode(Left_Wheel_1, OUTPUT); pinMode..
라인트레이서는 적외선 발광부에서 빛을 쏘아 선에 반사된 빛을 수광소자가 받는 원리를 이용하여 선을 감지합니다. 이런 원리를 할 수 있는 회로도를 보여드리겠습니다. 라인트레이서 발광 및 수광부입니다. 발광소자는 항상 전원이 입력되어 항시 켜져 있습니다. 발광부는 하부의 선에 반사된 빛을 받아드린 후 그에 알맞은 값을 HIGH 또는 LOW로 출력하지만 제가 제작하는 라인트레이서는 ADC값을 이용하여 선을 감지하게 만들 것 입니다. 또한 위 회로도에 나와있는 A0, A1, A2, A3은 수광부의 신호를 감지하는 선이며 각 신호선들이 할당된 포트를 나타냅니다. 이에 해당하는 소스는 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ..
라인트레이서에는 어떤 부품들이 들어갈까요? 1.적외선 발광 다이오드 라인트레이서는 적외선 발광 다이오드에서 나가는 적외선을 이용하여 선을 감지합니다. 검은색에 가까울수록 빛을 흡수하고 흰색에 가까울수록 빛을 반사하는 원리를 이용하는 것 입니다. 2. 수광소자 수광 소자입니다. 빛을 받아들여서 전기적 신호를 표출하는 다이오드 입니다. 빛을 받았을떄 디지털로 LOW를 빛이 없을떄 HIGH 값을 출력합니다. 하지만 이번 라인트레이서를 만들때는 HIGH와 LOW만이 아닌 더 정확하게 감지할 수 있도록 ADC 값인 아날로그로 받아 제작에 이용할 것입니다. 자세한것은 따로 포스팅 하도록 하겠습니다. 3. DC모터 말그대로 직류전원을 이용하는 모터입니다. 라인트레이서도 움직이는 로봇인 만큼 모터를 이용하여 움직이게 ..