일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 컴퓨터 그래픽스
- Array
- LineTracer
- set
- 자료구조
- Algorithm
- WinAPI
- 시스템프로그래밍
- Visual Micro
- map
- c++
- C언어
- Deque
- priority_queue
- directx
- arduino compiler
- 수광 소자
- html
- queue
- 통계학
- 운영체제
- Stack
- stl
- 라인트레이서
- vector
- Arduino
- 아두이노
- 아두이노 컴파일러
- 아두이노 소스
- list
- Today
- Total
목록Arduino (27)
Kim's Programming
라인트레이서의 조립이 완료된 모습입니다. 물론 조립에 이용된 프레임은 따로 있던걸 쓴 것 입니다 ^^; 조립도 완료하고 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..
모터를 단순히 CPU로 제어를 하는것은 ON / OFF 제어입니다. 하지만 Driver IC를 이용하면 역회전 정회전 정지등 모터를 자유자제로 조절 할 수 있습니다. 먼저 이번에 사용한 LB1630 모터 드라이버 IC의 회로도 입니다. 모터는 OUT 1, OUT 2에 연결 해주시면 됩니다. 그렇다면 어떻게 조절할수 있을까요? 위의 표에 따라 신호를 주면 됩니다. 신호는 어디로 주냐구요? Vin 1 Vin2로 주시면 됩니다.
빛은 아날로그입니다. 디지털처럼 꺼지고 켜지고만 있는것이 아닙니다. 빛을 디지털 신호로 변경하기 위해서는 위와 같은 과정을 거쳐서 신호를 가지게 됩니다. A/D 변환이란? ⊙ 연속적인 신호인 아날로그 신호를 부호화된 디지털 신호로 변환 ⊙ 온도, 압력, 음성, 영상 신호, 전압 등의 실생활에서 연속적으로 측정되는 신호를 컴퓨터에서 처리할 수 있도록 디지털 신호화 필요 ⊙ 아날로그 디지털 변환을 수행하는 기계장치를 아날로그 디지털 변환기(AD Convertor)라고함. ⊙ 영상 신호의 변환 및 역변환 과정 AD,DA ⊙ 양자화 레벨 8bit, 16bit, 24bit ADC 회로 ⊙ 아날로그 신호를 출력하는 센서 모듈과 연결될 수 있다. ⊙ 아날로그 신호를 변환하는 시간이 필요하다. ⊙ 변환된 신호를 내부 ..
라인트레이서는 적외선 발광부에서 빛을 쏘아 선에 반사된 빛을 수광소자가 받는 원리를 이용하여 선을 감지합니다. 이런 원리를 할 수 있는 회로도를 보여드리겠습니다. 라인트레이서 발광 및 수광부입니다. 발광소자는 항상 전원이 입력되어 항시 켜져 있습니다. 발광부는 하부의 선에 반사된 빛을 받아드린 후 그에 알맞은 값을 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 ..