[Linetracker] AVR + OPAMP 응용 라인트레이서 만들기, PCB제작, 소프트웨어 코딩

2013.11.17 20:52




현재 군 복무중인 상태입니다.



상당히 마이너한 작품인 라인트레이서를 만들어서 AVR 작품에 오랜만에 포스팅으로 돌아왔습니다. 전면 하단부에 적외선 센서를 4조 설치하고, 디자인은 포맥스를 이용해서 Light Drive의 느낌으로 제작되었습니다.


 이번에는 PCB에 납코팅을 하지 않고, PCB 부식 방지제를 사용해 보았는데 그래도 부식되기는 되는데 많이 부식도안되고, 무엇보다 작업이 하나 줄었습니다. :D


회로도는 이렇습니다.



라인트레이서 센서보드 회로도



센서보드는 저렴한 적외선 센서인 ST-7L과 EL-7L 4조 세트로 구성되었고, EL-7L 일반 LED처럼 전원을 투입해서 적외선을 송출하고, ST-7L은 4.7K저항으로 풀다운 되어 검은색 라인에 의해 센서가 인식되어 있지 않을 때는 0V (논리0)을 출력하고, 일반필드에 있을 때는 적외선 센서가 인식되어 5V (논리1)을 출력합니다. (검은색 라인에서 센서가 인식되지 않는 이유는 검은색은 대부분의 빛이 흡수되고 반사되는 빛이 거의 없기 때문에 수광센서로 입력이 없어 논리0이 출력되게 됩니다)


 라인트레이서 메인보드 회로도



메인보드는 LM324 OPAMP를 통해서 센서 4조의 감도를 통합적으로 조절 할 수 있도록 설계했고, 나머지 주변 회로는 Light Drvie와 동일합니다.^


제작과정



 PCB 제작


역시 동일한 방식으로 IR Robot과 유사하게 PCB를 제작했습니다.


 부품장착 및 납땜


OPAMP를 사용하다보니 도저히 Bottom면으로만 배선이 힘들어서 점프를 약 5~6개 사용하였습니다. 원래 정석대로 제작한다면 PCB를 양면으로 제작해야 하지만, 그렇게 되면 작업이 추가로 더 들어가니 그냥 PCB 레이아웃상에 TOP면으로 배선되어있지만, VIA만 추가로 인쇄해서 전사해줬답니다.^


 라인트레이서 프레임 제작




 완성 !!!!


완성!!!!

부식방지제를 뿌렸음에도 기판이 부식이 일어나고 말았네요.. 그리고 참고로 센서의 간격은 일반적으로 판매하는 절연테이프의 폭에 맞춰 제작했기 때문에 필요에 맞게 PCB 레이아웃에서 간격을 조정할 필요가 있습니다.^



제어 알고리즘 및 자료 다운로드


알고리즘은 크게 복잡한 것은 없습니다. 전면 하단 센서 왼쪽 부터 0x01, 0x02, 0x04, 0x08 순으로 자리 데이터 값이 있는데 신호가 들어오고 안들어 옴에 따라서 sensor변수를 만들어 비트연산을 한 후에 이 값을 비교해서 각 모터에 PWM신호를 주고 속도 차이가 생긴 모터가 좌회전을 하거나 우회전을 하거나 직진하게 됩니다.^


그럼 PCB 레이아웃 및 소스코드가 필요한분은 아래에서 다운로드 하시기 바랍니다.^


 AVR Linetracer (Linetracker) 소스코드 다운로드


 AVR Linetracer (Linetracker) PCB 디자인 다운로드



동작영상



- 루프 무한 반복 주행 -



- 라인을 강제로 이탈시켰을 때 -


간혹  아예 라인에서 벗어나는 경우도 있지만, 무난한 주행을 확인했습니다.

요 근래 아이디어도 떨어져서 무엇을 만들어야 될지 모르겠네요 ㅎㅎ 그리고 시간있을 때 틈틈이 요것 완성했답니다.^ 다음은 무엇으로 돌아올까요??

BinGoon AVR/AVR 작품, Project , , , , , , , , , , ,

  1. Blog Icon
    노바

    이블로그에서 많이 배우고 있습니다 좋은자료감사합니다 ㅎ 다음은 adc 를 이용한 작품은 어떨까요??

  2. 안녕하세요^
    AVR연습포스팅에서 ADC까지 나간 이후에 ADC를 이용한 작품을 만들 예정입니다.^^ 추천 감사드려요^^

  3. Blog Icon

    비밀댓글입니다

  4. 안녕하세요.^
    개인적인 사정으로 바빠서 늦게 답변 드렸습니다. 죄송합니다.
    1. MOUNT PAD ROUND는 캐드상에서 PCB에 모서리 4군데에 홀에 사용된 것이기 때문에 직접 만능기판에 납땜을 할 때에는 무시하셔도 되는 부분입니다.
    2. VCC라고 표시된 화살표의 경우 VCC라고 연결된 부분 끼리 모두 연결해 주시면 되겠습니다. 배터리로 전원을 공급받기 때문에 JP2단에 배터리가 연결되고, 실질적으로 R1 위쪽에 있는 VCC단을 통해서 5~6V를 공급받습니다.
    3. 센서부의 JP2랑 메인보드의 JP5 그리고 메인보드의 JP4랑 센서보드 JP1과 연결됩니다. 메인보드 JP5와 센서부의 JP2는 센서보드에 전원을 공급하기 위해 연결되고, JP4와 JP1은 각각 센서의 신호를 메인보드의 Attiny2313에 공급하기 위한 신호선을 연결합니다.^
    4. JP1의 VCC, RET, SCk, MISO, MOSI, GND는 해당 Netlist (선 닉네임 이라고 하면 될것 같네요 :D) 닉네임 이름이 같은 선끼리 연결시켜 주시면 됩니다. VCC는 역시 회로도에 화살표로 표시된 부분과 같이 연결해 주시면 되고, GND는 아래로 평평한 기호와 같이 연결해 주시면 됩니다. 그리고 JP1의 용도는 AVR ISP와 연결되는 부분으로 코딩된 소스를 프로그램하는 역할의 커넥터 입니다.^

    그럼 좋은 작품 만드시기를 바랍니다.^^

  5. Blog Icon

    비밀댓글입니다

  6. 안녕하세요.^^
    Atmega128로도 가능합니다. 해당 소스코드에서 PORTx나 DDRx같은 포트 제어 레지스터와, 타이머 카운터 관련 레지스터를 Atmega128에서 사용되는 값으로 변경시켜 주면 동작이 가능하답니다.^^

  7. Blog Icon
    asd6023

    정말 감사합니다~~~ 이 블로그 덕분에 작품구상이 더 쉬워졌네여~~

  8. 작품구상에 도움이 되어 기쁩니다.^^ 앞으로도 가끔 찾아주세요.

  9. 헐...
    바로...제가 찾던 겁니다...
    이거...아들놈하고 같이 만들수만 있으면...전국대회 입상은 하것는데요?
    물론 알고리즘은 제가 갈켜주고... ^^
    아들이 님과 같은 청년으로 커주기 바라는 아빠 1인.... ^^

  10. ㅎㅎ 감사드립니다.
    복잡한 소프트웨어 하시는 분도 대단하세요. 저는 계속 공부하고 싶기는 한데, 타지에 있어 부품이나 장비를 전부 가지고 올 수가 없는 상황이라서, 여건이 별로 좋지 않네요. 다 구성되는대로 할 수 있도록 말이라도 해놓겠습니다..^^

  11. 타지라함은...혹시...수원?
    저희집이 아주대 근처라~~~
    혹시나 해봤습니다...

  12. 네^^
    주위 반경 10Km이내에 거주중입니다.^^

  13. 좀더...빠르게 움질일수 없나용?
    아들넘 라인트레이서 대외에서는 미션 + 속도라고 하던데...
    속도가 어느정도 나와줘야...되는데...
    ㅋㅋ
    또 하나더 질문여...
    에칭하기에는 집에서 좀 위험할거 같고...(애들땜에...)
    유니버셜기판에 소켓끼워서 납땜질할라고 하는데요...
    배선은 뭘써야 될까요?
    납땜은 철물점표 1.2mm를 연습용으로 소비하고...
    KESTER 0.6mm으로 바꾸었는데...(이제 SMD 납땜도 가능... ^^)

    알려주세용~~~
    만들고 시퍼요... ^^

  14. 안녕하세요.
    이번엔 하루만에 답변드립니다.^^
    먼저 속도를 올리시는 부분은 BA6208 모터 컨트롤러 부분에서 VCC와 GND 부분에 배터리를 하나 더 연결하셔서 별도의 다른 전원을 입력시켜 주시면 됩니다. 일반적으로 대회용으로 판매하는 제품의 경우 AVR 전원과, 모터 구동부 전원이 분리되어 있어요. 혹시 동작 안하신다면, GND는 메인보드 전원과 모터 전원의 GND와 연결시켜 주시구요.

    땜은 저도 KESTER 0.6mm 쓰고있고, 전선은 저는 전선이 너무 비싸서 UTP 랜선안에 든거 짤라서 :< 쓰곤 했지만 공업계고등학교에서 납땜할때 쓰는 단선
    http://www.devicemart.co.kr/goods/view.php?seq=24943
    http://www.devicemart.co.kr/goods/view.php?seq=28725
    피복을 제거하셔서 1차적으로 땜하시고, 꼬이는 부분은 피복있는 상태로 땜하시면 되겠습니다. 공고에서는 그러면 뭐라고 하지만요. ㅎㅎ
    그리고 Attiny2313의 전원과 통신 그리고 Attiny2313에서 BA6208로 연결되는 부분까지는 얇은 선으로, 모터의 VCC와 GND 그리고 모터로 연결되는 선은 굵은 선으로 땜해주시면 좋겠습니다.

    그럼 만드시는데 도움되셨으면 좋겠습니다. 부족한 부분이 있다면 또 질문 남겨주세요.^^

  15. Blog Icon

    비밀댓글입니다

티스토리 툴바