아두이노를 하다보니 좀 이상한 습관이 생겼는데...
전자제품을 그냥 못버린다는 것입니다. ^^
버리기 전에 일단 열어서 머 쓸만한거 없나 확인하게 되죠.
남들이 보면 좀 괘상하게 볼수도 있습니다. ㅎㅎㅎ

얼마전에 복합기(프린터+스캐너)를 하나 발견하고 집으로 가져갔습니다.
아파트 재활용수거날 그렇게 찾아도 못찾았는데 회사앞에서 발견하고
고생(쪽팔림을 무릅쓰고)해서 집까지 운반했내요. ^^

작동하는지에는 별관심이 없었습니다. 오르지 안에있는 모터에만....

헤더부분을 들어났더니 용지 공급하는 스텝모터와 헤더를 이동시키는 (일반)모터가 들어 있네요.
아마도 해더 부분에서 헤더 축에 연결된 투명 띄에서 위치 이동을 인식하는 센서가 들어 있는듯합니다.

새워놓은 모습입니다.

뒷부분에 헤더 이동을위한 모터가 보입니다.

오른쪽 하단의 기어 박스에 들어 있던 스텝모터인데 용도는 잘 모르겠네요.

왼쪽 것이 헤더에 들어 있던 기판이고, 두번째것이 기어박스에 기어의 움직임을 감지하던 센서로 보이는 부품입니다.
오른쪽은 전원부이고요. 이 전원부도 써먹을수 있을까요?

상판 스캐너 부분입니다. 오른쪽에 스텝모터가 보이네요.

이렇게해서 목적이었던 스텝모터 3개를 얻었네요 ㅎㅎㅎ
이상 분해기였습니다. ^^;;

  1. 2010.04.07 16:58

    비밀댓글입니다

  2. BlogIcon mrkiss 2010.04.08 01:52 신고

    하 하 전자회로를 취미로 만지는 사람들의 공통점이군요. 저도 프린터 두대 가져다가 분해했었죠. 근데 아직 쓸모를 못찾고 있다는 슬픈 이야기가 --;;

    • BlogIcon pepsiman 2010.04.08 17:47 신고

      두대 씩이나 ㄷㄷㄷ 횡재하셨네요.
      그냥 바라만 봐도 흐뭇한거죠 머 ㅎㅎㅎㅎ

  3. BlogIcon pashiran 2010.04.09 12:11 신고

    ㅋㅋㅋ.. 저도 해봤습니다. 집에 스탭모터만 10개는 넘는듯 -_-;;
    추측하신 대로 첫번째 두번째 사진에 달려있는 작은 보드가 엔코드 센서 맞을거에요
    물려있는 투명한 필름을 보면 작은 선이 빽빽하게 그어져 있죠.
    옛날 프린터들은 그냥 스텝으로만 조정했는데 요즘 프린터들은 고속인쇄를 추구하다보니
    고속으로 이동하면서 보다 위치를 정확하게 잡기 위해 DC모터+엔코더를 이용하는 것 같더라고요.
    그러니까 아마도 잉크헤드 이송용 모터는 DC모터일 가능성이 높습니다. 사진상으로도 선이 2개밖에 없으니
    99% dc 모터..^^;

  4. BlogIcon pashiran 2010.04.09 12:11 신고

    스텝모터 필요하시면 디바이스마트 가보세요. 요즘 특별할인이벤트로 스텝모터 2종 개당 500원에 팔던데요

위에 왼쪽에 보이는 것이 브레드 보드 입니다.
좌우 새로로 두줄로 되어 있는 부분을 버스 영역 이라고 하여 전원이 지나가는 선이고,
중앙에 가로로 5칸씩되어 있는 부분을 IC 영역이라고 하여 부품을 배치하는 곳입니다.
작은 구멍이 뚫려 있어 각종 부품들의 다리를 꽂는 것 만으로 회로를 구성 할수 있습니다.
납땜할 필요가 없기때문에 회로를 테스트하고 수정하기 쉽게 되어 있고 초보자들도 사용하기 쉽습니다.

내부구조는 오른쪽 사진 처럼 각 구멍이 연결되어 있습니다 IC 영역은 세로로 전체가 연결되어 있고
버스 영역은 가로로 5칸씩 연결되어 있습니다.






이 회로는 led를 켜기 위한 예시를 보여 줍니다.
전원은 버스 영역에 + - 를 연결하고 +에 저항을 연결하여 반대쪽을 버스 영역에 연결하고 LED는 두 IC 영역에 걸쳐 연결합니다.
다시 LED의 한쪽을 - 버스 영역에 연결하여 회로가 연결됩니다.




















실제로 부품들이 브레드보드에 꽂혀 있는 모습입니다.
왼쪽부터 CDS, LED, 저항, 스위치 입니다.
아래쪽에 점프 와이어가 꽂혀 있습니다.
  1. BlogIcon 하얀말 2011.11.25 15:36 신고

    빵판을 쓰면 납땜을 안해도 된다던데, 사실인가요?

    • BlogIcon pepsiman 2011.12.20 17:26 신고

      네, 빵판은 전설을 꽂기만 하면 연결이 됩니다. 그래서 납땜을 안해도 되죠

LCD에 핀헤더 연결방법
lcd를 처음 구입하면 보드에 구멍만 뚫려있습니다

거기에 위의 핀헤더를 납땝하는 것입니다.

그러면 위와 같은 모양이 됩니다.

아래부분은 긴 다리를 가지고 있고 이부분을 브레드보드등에 끼워 사용할수 있습니다.

필요에 따라 핀헤더 대신 와이어를 연결하고 와이어 끝에 핀헤더를 연결하는 것이 편할수도 있습니다.



회로를 구성하다보면 재사용해야할 부품들이 있다.
주로 비싼 부품들인데...avr이라던지 (LCD)모듈들이라던지 전원, 모터 등등...
이런 부품들을 납땜으로 고정하지 않고 그때 그때 교체하기 쉽게 할수 있는 방법이 핀헤더와 소켓이다.

이것이 핀 헤더이다. 짧은 쪽에 부품 또는 전선을 납땜한다.

이것이 핀 소켓이다. 핀 부분에 부품 또는 전선을 납땜한다.

그리고 위의 핀 헤더의 긴부분을 소켓의 홈에 끼워 연결하는 것이다.

또는 핀 헤더만 납땜하여 브레드 보드에 끼워 사용하기도 한다.


아두이노 두에밀라노브 사진 입니다만, 데시밀라와 큰 차이는 없습니다.

Digital I/O
  전원핀을 제외한 모든핀은 digital i/o로 사용할수 있습니다.
  
  Output으로 사용할 경우 프로그램상에서 Low을 주면 0v가 High를 주면 5v가 흐릅니다.
  따라서 이곳에 Led의 +를 연결하고 다른 한쪽을 Gnd 핀에 연결하면 5v가 공급되어 Led가 켜지게 됩니다.
  19개의 digital핀을 사용할수 있으니 19개의 led를 구동할수 있습니다.
  (추가 회로를 구성하면 도트매트릭스 같은 더 많은 led도 구동할수 있습니다)

  Input으로 사용할 경우 스위치를 연결하면 스위치가 눌렸는지 눌리지 않았는지 확인할수 있습니다

Analog Input (ADC)
  아두이노는 자체적으로 ADC를 가지고 있습니다.
  모두 6개의 아날로그 신호를 입력받을 수 있고요. 해상도는 10bit(0~1023단계)입니다.
  전압을 읽어 들일수 있고 0v ~ 5v 를 1024 단계로 구분하니 약 0.0048828125v 단위로 구분 가능합니다.
  전압 나눔 회로를 이용하면 5v 이상의 전압도 읽을 수 있고요.
  전압계도 쉽게 구현이 가능합니다.
  전압으로 출력해주는 온도센서, 장력센서, 광센서, 거리센서등을 연결해 값을 구할 수도 있습니다.

PWM
  PWM은 아날로그 입력의 반대 개념인 아날로그 출력 개념이라고 보면 됩니다.
  전기를 흘렸다 끊었다 하는 간격을 조절하여 전압을 조절하는것처럼 보이게 하는 겁니다.
  예를 들어 계속 5v를 흘리면 출력이 5v가 되지만 5v를 흘력다 0v를 흘렸다를 반복하면 2.5v가 흘러가는것처럼 느껴지는 원리입니다. 여기서 0v흘리는 시간이 길어지면 전압은 내려가고 5v 흘리는 시간이 길어지면 전압은 올라가는것 처럼 느껴지게 됩니다.
  이것을 이용하면 LED의 밝기나, 스탭모터등을 제어 할수 있습니다.

I2C (I2C는 그냥 편의상 쓰는것이고 I2C가 맞습니다)
  2개의 선으로 여러개의 장치를 제어 할수 있는 통신 방식입니다.
  SCL (Serial Clock) : 동기화 신호선입니다.
  SDA (Serial Data) : 데이터 신호선입니다.
  센서칩에서도 사용하고 일반적인 IC에서 사용합니다.
  선이 많이 필요한 장비에서 선을 줄일때도 이 통신 방식을 사용합니다.

SPI (serial peripheral interface)
  3개의 선을 이용한 통신 방식으로 MOSI, MISO, CLK의 선을 사용합니다.

  MOSI (Master Out Slave In) : 마스터에서 슬레이브로 신호를 보내는 선입니다.

  MISO (Master In Slave Out) : 슬레이브에서 마스터로 신호를 보내는 선입니다.

  CLK (Clock) 또는 SCK(Serial Clock) : 신호가 오가는 동기화 주기를 알리기위한 선 입니다.
  AVR을 프로그램 할때도 이 통신 방식을 사용하고 이더넷 쉴드, SD 카드와 통신 할때도 사용합니다.

RS232(시리얼포트)
  아두이노에는 시리얼 포트가 하나 밖에 없고 usb에 연결되어 있어 스케치에서 작성한 프로그램을 다운 받는데 사용됩니다.
  하지만 이 시리얼 포트를 사용 할수 없는건 아닙니다. 따라서 이 시리얼 포트에 gps같은 장비의 시리얼 출력을 연결하면 gps와 통신을 할 수 있습니다.
  아두이노에서는 PC와 달리 TTL(0v, 5v)신호를 사용합니다. 따라서 pc와 직접 연결하면 아두이노가 망가질 수 있습니다.
  xbee와 통신할때도 rs232통신을 이용합니다.

3.3V
  자체적으로 3.3V 전원을 공급하므로 3.3V를 사용하는 칩들에 전원을 공급할 수 있습니다.

기본적으로 위와 같은 기능을 사용할 수 있고 I2C나 SPI, RS232통신을 통해 다른 모듈과 통신하여 다양한 추가기능을 확장할 수 있습니다.



전에 소개한 위즈넷 이더넷 모듈과 같은 W5100칩을 사용한 iConn5100M이라는 이더넷 모듈입니다.
2009/05/19 - [Arduino/AVR/1. H/W] - arduino에 사용가능한 이더넷 모듈



스펙

•  10/100 Base TX 지원
•  Half/Full duplex 지원
•  Auto-negotiation, Auto Crossover Detection 지원
•  IEEE 802.3/802.3u Compliant
•  5V Tolerant I/O, 3.3V 동작
•  Network Status Indicator LEDs
•  Hardware Internet Protocols : TCP/IP v4, UDP, ICMP, ARP, PPPoE, IGMP
•  Hardware Ethernet Protocols : DLC, MAC
•  4 independent Channels
•  MCU bus Interface and SPI Interface
•  Direct/Indirect mode bus access
•  Application Programmer를 위한 Socket API 제공 : W5100 Driver, DHCP, SMTP, DNS, DDNS
•  2개의 2.0mm pitch 2*14 header pin




스펙과 다이어그램을 보면 기존 위즈넷 모듈과 비교해 가장큰 장점은 바로 Tiny24로 보이는 칩을 내장했다는 것입니다.
MCU를 내장함으로써 DHCP, SMTP, DNS, DDNS 등을 지원하고, MAC Address도 내장 되어 있어 프로그램으로 구현할 필요가 없다는 것이 가장 큰 장점이네요.
핀이 2mm 피치 라는것이 약간 불편하긴 하겠습니다.
인터페이스는 SPI를 사용하는것 같네요.

가격도 WIZ810MJ 보다 저렴한 2만원 입니다. (ICBank)

아래는 데이터시트 입니다.

  1. 웅쓰 2009.07.08 15:39 신고

    안에 있는 Tiny MCU는 MAC address만 저장하는 기능을 합니다.
    DHCP, SMTP, DNS, DDNS는 지원가능하지만, 직접 코딩해야 합니다.
    간단히 요약하면 [위즈넷 모듈 기능 + MAC 저장] 기능입니다.

    • BlogIcon pepsiman 2009.07.08 15:41 신고

      아 그런가요?
      그런 내용은 못봤는데...
      정말 그렇담 별거 아니네요....그래도 머 가격은 싸니...^^
      정보 감사합니다

전에 MegaLoad 부트로더 심기에 실패 했었는데 아무래도 컴파일러 버전 문제인가 싶은데 잘 모르겠네요.

이 부트로더는 ATMega128용 입니다.
위의 hex 파일을 CodeVsionAVR에서 프로그램 했습니다.
Fuse 옵션은 아래와 같고요.




시리얼 다운로드는 아래 프로그램을 이용하면 됩니다.

체리보드의 Com 포트를 찾아서 설정하고 속도는 57600bps로 했습니다.

체리보드의 리셋을 누르면 다운로드가 진행이 됩니다. ^^
체리보드(ATMega128)에는 USB 포트가 있는데 데스크탑PC에서 가상 시리얼 포트를 USB로 전송받을수 있습니다.

따라서 체리보드에 부트로더만 올리면 ISP없이 USB 케이블로 프로그램을 다운로드 할수 있습니다.

mega시리즈 AVR에 올릴수 있는 부트로더는 여러가지가 공개되어 있습니다.


1. megaload - http://www.microsyl.com/

1번은 여러번 시도하였으나 성공하지 못했고, 2번, 3번, 4번은 같은 부트로더 같은데 카페 등업이 늦어져서 2번은 확인 못하고, 3번은 다운로드 하다 멈추고, 4번으로 성공했습니다.


먼저 아래 파일을 다운받아 적당한 폴더에 풉니다.




CodeVision을 실행합니다. demo 버전을 사용해도 됩니다. ( http://www.hpinfotech.ro/html/download.htm )
ISP를 PC와 체리보드에 연결합니다.
Settings >> Programmer 를 실행하여 자신의 ISP를 설정합니다.


Tools >> Chip Programmer 를 실행합니다.
File >> LoadFlash - 압축푼파일중에 MegaBoot_phold.hex 파일을 불러들입니다.
그리고 위화면과 같이 설정합니다.
Program 메뉴의 Erase chip, Flash, Fuses bit을 차례로 실행합니다.
여기까지 됐다면 ISP는 필요 없으니 제거 합니다.

USB 케이블을 체리보드에 연결합니다.
압축파일에 MegaBoot를 실행합니다.
컴파일한 hex 파일을 첫번째(flash)영역에 open합니다.
PC에서 인식한 usb포트의 가상 시리얼 포트를 확인하여 Serial Port Setup 영역에 설정합니다.
(가상 시리얼포트 번호는 제어판 >> "시스템 등록정보"를 실행하여 하드웨어 텝에 >> 장리관리자 >> "포트" 부분을 보면 확인가능합니다.)
체리보드의 리셋을 누르니다.
그러면 hex파일이 다운로드 됩니다.

만약 안된다면 BaudRate를 다른것으로 변경해보세요.
BaudRate가 맞으면 Target Infomation에 자신의 칩이 뜰껍니다.

자 이제 ISP는 갖다 버리세요 ^^;
atmega128 트레이닝 보드인 체리보드 입니다.
오늘 오후에 걸려온 전화 한통...
택배 입니다. 착불입니다. 
[이런 집에 아무도 없는데...]
택배비는 계좌이체해주세요.
[와 택배 아저씨가 착불 택배비를 계좌이체 해달라네요. 이런 고마울때가...체리보드 오늘 구경 못하는 줄 알았네...]

실물을 보니 보드가 사진보다 정말 이쁘게 생겼네요. 감격에 쓰나미가....ㅠㅠ
빨리 구동 시켜보고 싶은데....ISP가 아직 도착을 안했네요.
체리보드는 하루만에 왔는데 ISP는 왜 이렇게 오래걸리는지...
손가락이 근질 근질하네요.

아두이노 스토리 카페 매니저님 덕에 체리보드를 써볼수 있게 되었습니다. 감사합니다. ^^
아두이노도 버벅대고 있는데 체리 배울려면 공부 열심히 해야겠네요. 



이 글은 arv을 배우려는 사람보다는 저처럼 비 전공자(피지컬 컴퓨팅, 미디어아트, 인터렉티브 미디어 분야등)가 avr에 관심을 갖고 계신분에게 더 유용할꺼라 생각됩니다.
처음 이쪽 분야를 접하고 arduino나 wiring, atmega128(avr 중하나)을 접하면서 선택의 기로에 서게 됩니다.
이때 이글이 도움이 되길 바랍니다.

1. Arduino
아두이노 데시밀라는 atmega168 칩을 사용합니다
칩만 보면 메모리는 8k이고 가격은 4천원대 입니다.(디바이스마트)

아두이노 두에밀라노브는 328(메모리 32k)을 사용하고 국내 정식(플러그하우스)판매가격은 3.9만원 합니다, ($29.95)

아두이노 데시밀라는 168 사용(메모리 16k)

아두이노 미니는 168을 사용하고 국내 정식판매가격은 4.8만원 합니다 ($33.95)

arduino nano는 별로 특징이 없네요. 미니 usb를 가지고 있어 좋기는한데 너무 큰듯한...

최근에 나온 아두이노 메가는 1280칩(메모리 128k)을 사용하고 


1-1 . Arduino 호환보드


아두이노스토리 카페의 딸기보드는 카페에서 공동 제작 형식으로 판매했던것 같은데 사용자가 많지않아 더이상 생산은 어려울것 같습니다.

AVRTOOLS에서 아두이노 데시밀라(168) 호환보드를 팔고 있고, 아두이노 미니 호환 보드도 팔고 있는데 가격도 저렴하고 크기도 작아 상당히 매력이 있네요.

2. Wiring

와이어링에서 사용하는 atmega128 칩은 128k 메모리에 6~7천원 합니다.(디바이스마트)
Wiring-IO (atmega128)를 샘플전자에서 17.6만원에 팔고 있네요ㅡㅡ; (이런 날...)

Wiring mini 샘플전자에서 12.1만원에 팔고 있습니다

2-2. Wiring 호환보
샘플전자에서 와이어링 미니 호환보드를 2.9만원에 판매하고 있습니다.


3. AVR

AVR은 ATmel사의 mcu로 메모리와 속도등에 따라 상당히 많은 종류가 있습니다.
그중에 가장 가격대비 성능이 좋은 atmega128이 많이 쓰이는것 같습니다.(6~7천원대)
외국에서는 attiny2313 칩도 많이 쓰더군요(2000원정도)

이러한 128보드는 1만원대 부터 다양하게 있는데 가장 싼것들은 mcu에 핀만 연결해놓은것으로 다용도로 쓸수 있고 가격도 쌉니다. arduino나  wiring도 이런 기본 보드에 속합니다.
비싼보드는 여러가지 센서나 스위치, LCD등을 붙여 놓아 별도로 구입하는 번거로움을 없에기는 했으나 가격이 꽤 비쌉니다. 
이런 교육용보드중에 유명한것으로는 네이버의 당근이의 AVR갖고 놀기 카페의 당근보드(atmega32)와 아두이노스토리 카의 체리보드(atmega128)가 있고 이들을 이용하면 카페에서 지속적인 도움을 받을수 있어 편리합니다.
당근보드 메인4만원 + 디스플레이보드 4만원

체리보드 5.5만원(2009.06.08 현재 공구중 - 아두이노 스토리카페)



4. avr을 arduino로 만들기

atmega168 보드들은 아르두이노 부트로더를 올리면 아르두이노로 쓸수 있습니다.
atmega128 보드들은 와이어링 부트로더를 올리면 와이어링으로 쓸수 있습니다.(32.768K의 크리스탈을 달아야만 합니다)

이방법이 가장 저렴하긴한데 좀 번거롭습니다.
그리고 초기에는 그다지 저렴하지도 않고요. (이것 저것 준비할게 많습니다. ISP, usb2uart)

작은태양님께서 atmega168(AVRMall) 보드에 arduino 부트로더를 올려 아르두이노로 만드는 과정을 포스팅해 놓으셨습니다. http://tinysun.net/8

동작시켜보기 위한 과정을 간단히 요약해보면
부트로더 심기
1) 아르두이노 부트로더 다운로드
2) atmega168에 ISP를 연결하여 부트로더 업로드
사용하기
3) usb2uart 연결하기
4) IDE 에서 프로그램 작성 및 컴파일
5) arduino(atmega168)에 프로그램 업로드
6) 동작

1),2) 만 하면 아르두이노가 만들어 진겁니다.
하지만 avr(atmega168)이나 아르두이노 미니 같은경우 USB 포트가 없기 때문에 usb2uart 모듈을 이용하여 프로그램을 업로드 해야 합니다.
저근 이부분이 이해가 안돼서 처음에 무지 고생했지요.

직접 만들어보는것도 좋지만 호환보드들도 워낙 저렴하니 호환보드를 구입해서 쓰는것도 추천할만한 방법입니다.

+ Recent posts