별거는 아니지만 ATTiny26으로 장난감을 만들어봤습니다.
애들 신발에 붙이려고 만들었으나......^^;;;

만능기판에 대충 땜질했습니다...그래봐야 led와 저항이 대부분이고 
나머지는 기울기 스위치하나 3v 동전전지 케이스가 전부네요. 전지 케이스를 너무 큰걸 샀네요.

브레드보드에서 테스트했을때는 잘 되서 무작정 만능기판에 납땜했는데
납땜이 끝나고 전지로 하니 동작을 안하지 멉니까...OTL

원인을 몰라 아두이노 카페분들에게 도움을 얻은 결과 led를 싱크로 연결해보라는 조언을 듣고 그렇게  하니 동작이 잘 됩니다.

led를 전부 거꾸로 다시 연결하느라 배선이 난장판이 됐습니다.
머...첨에도 그리 깨끗하진 않았습니다만...^^;

포멕스로 나름 깔끔하게 케이스를 만들어보려고 했으나....좌절...
깨끗하게 안잘라 지더구요...어떻게 잘라야 깨끗하게 자르는지 아시는분 조언좀 해주세요



(핸드폰 동영상이라서 화일이 않좋습니다. 이해해 주세요 ^^)
기울기 스위치가 민감해서 약간의 충격만으로도 스위치가 동작합니다.


일단 이렇게 완성은 했으나....
와이프가 보더니..."이렇게 큰걸 어떻게 신발에 달아!!"
여기서 한번더 좌절 OTL
무심코 던진돌에 개구리가 맞아 죽는다는....

그래서 운동화에 다는건 포기했습니다. ㅠㅠ
시간 될때 작게 다시 만들어봐야겠습니다. smd를 써야 하나....

추가 : 요청으로 회로도를 그려봤습니다.
죄송합니다. 아직 회로도 프로그램을 못다루는 관계로 발로 그렸습니다. 그래도 도움이 되셨으면 합니다. ㅠㅠ



$regfile = "attiny26.dat"
$crystal = 8000000

Dim I As Byte
Dim J As Byte
Dim Sw As Bit
Sw = 0
Dim Swold As Bit
Swold = 0
Dim Interval As Integer
Interval = 4

Config Porta = Output
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Pinb.6 = Input

Set Porta
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3

Do
   If Pinb.6 = 1 Then
      Set Sw
   Else
      Reset Sw
   End If

   If Sw <> Swold Then
      For J = 0 To 3
         For I = 0 To 3
           Reset Porta.i
           Waitms Interval
           Set Porta.i
           Waitms Interval
         Next I
         For I = 3 To 0 Step -1
           Reset Portb.i
           Waitms Interval
           Set Portb.i
           Waitms Interval
         Next I

         For I = 3 To 0 Step -1
           Reset Porta.i
           Waitms Interval
           Set Porta.i
           Waitms Interval
         Next I
         For I = 0 To 3
           Reset Portb.i
           Waitms Interval
           Set Portb.i
           Waitms Interval
         Next I
      Next J
      Swold = Sw
   End If
Loop
  1. 윤영준 2009.08.12 09:15 신고

    smd에 기판 떠서 작업해야 신발에 들어가겠군요.ㅋㅋ
    걸리버 신발이라면 가능~~
    잘봤습니다. ^^;

    • BlogIcon pepsiman 2009.08.12 09:19 신고

      걸리버....윤영준님까지....
      계속되는 데미지 누적 ㅠㅠ

    • BlogIcon 푸른해아 2009.08.12 09:32 신고

      ㅋㅋ
      음,최홍만씨 운동화라면 가능할지도.
      어쨌든 즐거운 시도는 계속되어도 좋을 것 같군요.

    • BlogIcon pepsiman 2009.08.12 09:35 신고

      푸른해아님까지...
      연속 데미지....@.@
      K.O !!

      홍만씨한테 선물할까나....ㅋ
      그나저나 홍만씨는 머하고 있을려나요...?

  2. 심플멘 2009.08.23 13:10 신고

    펩시멘님도 다방면에 능통하신것 같습니다 자료검색하다 방문했습니다
    아기자기하게 재미있는거 많이 만드셨네요 제가모르던것도 알게해주시고 감사^^

    • BlogIcon pepsiman 2009.08.24 09:34 신고

      만들고 싶은건 많은데 능력이 안따라 주네요.
      초반에 너무 버닝해서...이제는 좀 쉬엄쉬엄 하려고요.
      자주 놀러 오세요 심플멘님...^^

  3. 2009.12.19 10:16

    비밀댓글입니다

    • BlogIcon pepsiman 2009.12.19 10:23 신고

      회로도라고 할만한것도 없습니다.
      공개 못할 이유도 없고요 ^^;
      문제는 제가 회로도 그리는 프로그램을 잘 사용 못해서 그리질 못하고 있습니다 ㅠㅠ
      일단 LED 켜는것부터 시작하시고
      그걸 tiny의 발 하나에 LED 1개씩 8개 연결하시면되요.
      스위치도 하나 연결...일단 말로는 그러네요.
      회로도는 함 그려볼께요.

  4. 2009.12.19 11:25

    비밀댓글입니다

  5. BlogIcon pepsiman 2009.12.21 00:42 신고

    저젼력으로 구동되는 ATTiny 26 L 타입니다. 'L'을 확인하세요.

  6. 2009.12.21 09:24

    비밀댓글입니다

    • BlogIcon pepsiman 2009.12.21 09:28 신고

      회로도 어제 대강 그려 첨부했는데 못보셨나보네요.
      소스 위에 있습니다. 참고하세요 ^^

  7. BlogIcon pepsiman 2009.12.21 09:29 신고

    avr에 관해 지식이 없으시다면 avr 부터 알아야 tiny를 사용할수 있습니다.

    tiny26에 위에 있는 소스코드를 프로그램해서 넣어야 하고요.
    프로그램을 하기 위해선 SW로는 bascom avr 이라는 프로그램과 HW로는 ISP 프로그래머 라는 장비(모듈)가 있어야 합니다. 그리고 배경지식으로는 기본적인 AVR로 LED 켜는 회로 구성하기 , 스위치 회로 구성하기를 먼저 습득하시고 tiny26 사용법을 익히셔야 합니다.

    참고하실만한 포스팅으로는 "저항계산기", "풀업풀다운"에 관련된 포스팅이 있으니 관련 지식을 먼저 습득하세요.
    ----------------------------------------------------------------------------------------------
    쓰고나니 제가 봐도 막막하네요...ㅡㅡ;;
    우섭님은 그냥 회로만 그려드리면 따라하면 되는데...라고 생각하시는거 같은데...
    그냥 제가 회로도하나만 그려드리면 되는데 말이죠...
    잠시만 기다리세요...제가 잘 못그려도 하나 그려드릴께요 ^^;

  8. 2009.12.21 09:47

    비밀댓글입니다

  9. BlogIcon pepsiman 2009.12.21 09:56 신고

    기울기 센서인데 스위치로 표현 했습니다.
    기울기 센서도 내부구조가 쇠구슬이 두 접점을 연결하는 구조라서 스위치와 같습니다.

    공부하셨군요.^^ 네 평상시 LOW니까 풀 다운저항이고요. 저도 아직도 해깔려요 ^^;
    이해가 빠르신거보니 기본센스는 있으신가보네요.
    공부하시면서 막혀서 물어보시는 거라면 언제나 환영입니다.
    공부도 안하고 물어보시는 분들도 많거든요.

    한가지 더 부탁드리자면...댓글에 특별히 사적인 정보나, 감추고 싶으신게 없으시다면 비밀글로 안해주셨으면 합니다.
    댓글도 다른분들한테 도움이 되는 내용이거든요.
    감사합니다. ^^

  10. 준아빠 2009.12.22 09:21 신고

    안녕하세요..도움이 필요합니다...
    책을 사서 공부하려는데...
    교재 "Bascom-AVR 로봇 스터디" 이 책으로 공부하면 도움이 될까해서요..
    아님 다른 추천할만한 책이 있는지요... 책값이 비싸더군요.. 투자라 생각하고 ^^
    펩시맨님은 어떤식으로 공부하셨는지 어떤 교재로 공부하셨는지.. 힌트좀 주세요.
    기본적인 AVR로 LED켜는 회로 추천할 만한 교재가 있는지요..
    전자관련 학과를 안나와서 어렵네요...도움이 필요합니다..
    회사에서 계속 인터넷으로 공부하려니 눈치도 보이고.. 여러모로 교재가 나을듯해서요...
    이름을 앞으론 준아빠로 하겠습니다 ^^

    • BlogIcon pepsiman 2009.12.22 09:36 신고

      안녕하세요 준아빠님
      준아빠님의 프로그래언어, 전자쪽 지식이 어느정도 인지 몰라 추천이 좀 애매하긴하지만...

      먼저 저의경우 C, basic언어는 알고 있었고요. 전자쪽은 학교에서 배운게 다인 상태에서 시작했습니다.
      무엇보다도 전자쪽 지식이 부족한 상태에서 개념잡기가 어렵더군요

      그래서 선택한게 아두이노(HW)와 '피지컬 컴퓨팅'(책) 으로 시작했습니다.
      아두이노는 c언어와 비슷하고요.
      아두이노와 usb케이블만 있으면 시작할수 있기 때문에 전자쪽을 처음 접하시는 분들이 접근하기 좋습니다.
      피지컬 컴퓨팅 책은 아두이노와 직접 연관이 있는 책은 아니지만 전자쪽을 어떻게 접근해야 하는지 그 감을 아주 쉽게 설명하고 있습니다.
      저는 아두이노쪽 하다가 tiny 칩으로 avr쪽으로도 공부했고요
      교육용 보드인 채리보드로 mega128도 보고 이때 전자회로이론 책과 atmega128 정보 책을 봤습니다.

      언어를 잘 모르신다면 아두이노 소스나 bascom 소스를 보고 간단한거 부터 하나씩 따라 하시면 도움이 될껍니다.
      아두이노는 약간 비싸고요. avr은 싼데 부가장비(isp같은)나 회로를 구성하는것등이 처음에는 약간 힘들수 있습니다.

      자신의 지식과 재정상태, 난이도를 고려해서 결정해야 합니다.
      선택하고시 다시 댓글 주시면 또 답변 드리겠습니다.

    • BlogIcon pepsiman 2009.12.22 09:40 신고

      http://pepsiman.tistory.com/50 avr 선택에 관하여
      http://pepsiman.tistory.com/39 피지컬 컴퓨팅
      참고하세요

  11. BlogIcon 이닝 2012.05.26 17:30 신고

    글을 너무 잼있게 적으셔서 중간에 빵하고 터졌습니다. >ㅂ<;
    요즘 아두이노에 대한 글들을 너무 잘 보고 있습니다.
    감사합니다.

    • BlogIcon pepsiman 2012.06.14 13:41 신고

      시간이 없어 영 포스팅을 못하고 있네요.
      그래도 종종 놀러오세요 ^^

tiny은 가격도 싸고 칩 단독으로 회로구성이 가능해서 꼭 한번 해보고 싶었는데
ISP를 구입하게 되서 프로그래을 해봤습니다.

간단히 LED 8개가 순차적으로 왔다 갔다 하는 예제 입니다.
tiny와 isp를 연결한 모습입니다.
tiny의 1, 2, 3, 5, 6, 10 번핀을 ISP에 각 핀에 연결합니다.
VTG가 VCC 입니다.
저는 매번 결선하기 귀찮아서 핀헤더로 연결했습니다.



led는 11 ~ 20번 즉 PA0 ~ PA7번에 저항과 같이 연결했습니다.
sw는 PB6에 풀다운저항으로 연결하였습니다.
핀헤더와 isp를 제거하고 칩과 led만 남아있는 모습입니다.
전원은 충전지 4개 4.8v를 연결했습니다.
ATTiny26L-8PI는 2.7-5.5V의 전압을 허용하므로 활용도가 높습니다. 
스위치를 누르면 led가 왔다 갔다 합니다.

bascom-avr 소스

컴파일러

WinAVR 20090313 Download

- 개발툴 설치전에 컴파일러를 먼저 설치해야 합니다.

http://sourceforge.net/project/showfiles.php?group_id=68108 


개발툴

AvrStudio 4.16 Download

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725


AvrStudio 4.16 SP1 Download

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725


CodeVisionAVR Evaluation Download V2.04.2c

http://www.hpinfotech.ro/html/download.htm


Bascom-AVR demo 1.11.9.1 Download

- basic언어를 사용하고 시뮬레이터가 우수합니다. 부트로더도 자체지원하는것 같습니다.

http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54


AVREdit 3.8 Download

http://terabank.co.kr/bbs/zboard.php?id=down


드라이버

CP2102 driver 

usb 가상 시리얼포트 CP2102 칩 드라이버

www.silabs.com


FTDI (VCP) driver

http://www.ftdichip.com/Drivers/VCP.htm



ISP

PonyProg 1.17.h Download

http://www.lancos.com/ppwin95.html


ToastProgUSB 2.1 Download

http://www.toastprog.com/front/php/b/board_list.php?board_no=7



기타 참고자료

    . 컴파일러
       - AVR Studio4.14 컴파일러 : 커뮤니티->개발툴 자료실
       - AVR Studio4/WinAVR 설치 방법(다운로드)
       - CodeVisionAVR 설치 방법(다운로드)
     . 프로젝트 생성
       -
 CodeVisionAVR 프로젝트 생성(다운로드)
       - AVR Studio4 프로젝트 생성(다운로드)
     . ISP 사용법
       -
 PonyProg  I
SP(다운로드)
       - ToastProg  
ISP(다운로드)
       -
 CodeVisionAVR ISP(다운로드)
       -
 AVR Studio4 ISP(다운로드)
     . JTAG 사용법
       - AVR Studio4 
JTAG(다운로드)
 
    . 예제프로그램 TEST 방법
       -
 AVR Studio4 메뉴얼(다운로드1/다운로드2)
       - CodeVisionAVR 메뉴얼(다운로드1/다운로드2)

2009/05/19 arduino에 사용가능한 이더넷 모듈에서 소개했던 WIZ811MJ이 도착했습니다.
사실 벌써 도착했는데 만질 시간이 없어서 못하고 있었다는...

보시다 시피 썰렁하게 연결되어 있는데, 간단한 연결(6핀)만으로 아두이노를 인터넷에 연결이 가능합니다.

사진과 같이 연결하였고, 연결은 엉성해도 동작은 잘 되더군요. ^^

필요한 핀에만 소켓을 끼웠습니다.

많은 핀중에 6개만 사용하면 됩니다. 나머지 하나는 리셋핀....

조그만한게 귀엽게 생겼죠? ^^;


WIZ811MJ 모델은 2.54mm 간격의 40핀으로 핀이 구성되어 있습니다. 듀얼핀이라 브레드보드에 직접은 안되네요.
아두이노와 각 핀의 연결은 위의 그림과 같이 D10~D13, 3V3, GND 6개의 핀을 연결합니다.
아두이노 두에밀라노브(데시밀라)에는 3.3v 출력이 있어서 직접 연결이 가능합니다.



WIZ811MJ는 arduino ethernet shield와 같은 칩을 사용하기 때문에 라이브러리도 호환된다는것이 최대 장점이라고 할 수 있습니다. 이미 만들어져 있는 아두이노 이더넷 라이브러리를 가져다 쓰기만 하면 됩니다. 예제까지도....

아두이노 소스는 아두이노 웹서버로  Examples/Library-Ethernet/WebServer 에 있는 예제를 사용해봤습니다.

/*
 * Web Server
 *
 * A simple web server that shows the value of the analog input pins.
 */

#include 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 20 };

Server server(80);

void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        if (c == '\n' && current_line_is_blank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          // output the value of each analog input pin
          for (int i = 0; i < 6; i++) {
            client.print("analog input ");
            client.print(i);
            client.print(" is ");
            client.print(analogRead(i));
            client.println("
"); } break; } if (c == '\n') { // we're starting a new line current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } } } // give the web browser time to receive the data delay(1); client.stop(); } }
소스중 위의 mac과 ip 부분은 자신에 맞게 수정해야 합니다.

WIZ811MJ는 DHCP를 지원하지 않는데, 아마도 DHCP기능이 없어서 그냥은 연결이 안되는듯합니다.
소스의 빨간색부분을 공유기의 IP 수동할당에 추가하고, 오른쪽에 추가버튼을 누르면 왼쪽에 추가 됩니다.


브라우저에서 설정한 IP로 아두이노에 접속한 모습입니다. 아날로그 핀의 값을 출력하는 웹서버 프로그램입니다.

이제 아두이노에 달린 날개를 잘 활용하는 일만 남았네요. ^^
  1. Wowwon 2010.12.02 20:26 신고

    저는 이더넷 모듈 WIZ 145SR을 사려고 하는데 님이 사용하신 811MJ와 많은 차이가 있을까요??

    811보다 아두이노와의 연결도 쉬웠으면 하는데, 고민중입니다

아두이노(arduino)에서 2색 도트매트릭스를 구동시켜 보았습니다.

부품

아두이노(arduino)
도트매트릭스(DotMatrix 8x8 2색)
74HC595 x2
74HC138


나름 하트를 그려봤는데 생각만큼 이쁘게 나오진 않는군요 ^^;


배선이 좀 많이 들어가네요
핀은 24핀으로 위에 12, 아래 12개 입니다.
핀소켓에 납땜으로 배선을 연결했습니다.
전선이 부드러운줄 알았는데 연결하고 나니 엄청 뻣뻣하네요 ㅜㅜ


1번핀 - [LED1-],   2번핀 - [LED1적+], 3번핀 - [LED1녹+], 4번핀 - [LED2-],   2번핀 - [LED2적+], 3번핀 - [LED2녹+]......
위 사진상으로 보면 모델번호를 위로 놓고 볼때 우상터 1~12, 우하 13~24번 입니다.




가장 왼쪽 브레드보드 대신에 도트매트릭스라고 보고
이 보드의 red에 연결된 흰색 배선 위쪽부터 도트매트릭스의 2,5,8,11,14,17,20,23,
green에 연결된 배선 위쪽부터 도트매트릭스의 3,6,9,12,15 18,21,24 번에 연결합니다.



74HC138 디코더 입니다.
Y0 ~ Y7 은 도트매트릭스의 1,4,7,10,13,16,19,22에 각각 연결합니다.
4, 5번 핀은 GND, 6번핀은 VCC에 연결합니다.
A0~A2는 아두이노의 digital 5~7에 연결합니다,







소스

//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;

//holders for infromation you're going to pass to shifting function
byte data;
byte data2;
byte dataArray[10];
int val=0;

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  // 74HC138N 
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  Serial.begin(9600);

  dataArray[0] = 0x24; //00100100
  dataArray[1] = 0x5a; //01011010
  dataArray[2] = 0x81; //10000001
  dataArray[3] = 0x81; //10000001
  dataArray[4] = 0x81; //10000001
  dataArray[5] = 0x42; //01000010
  dataArray[6] = 0x24; //00100100
  dataArray[7] = 0x18; //00011000
}

void loop() {
  for (int j = 0; j < 8; j++) {
    //load the light sequence you want from array
    data = dataArray[j];
    //ground latchPin and hold low for as long as you are transmitting
    digitalWrite(latchPin, 0);

    shiftOut(dataPin, clockPin, LSBFIRST, 0); 
    shiftOut(dataPin, clockPin, LSBFIRST, data); 
    digitalWrite(7, j>>2 & 0x1);
    digitalWrite(6, j>>1 & 0x1);
    digitalWrite(5, j & 0x1);

    digitalWrite(latchPin, 1);
    delay(1);
  }
}


선이 뻣뻣해서 매트릭스가 공중에 떠버렸습니다.
깔끔하게 하려면 만능기판으로 옮겨야할듯싶네요. 다시만들어야겠네....ㅜㅜ

원래 2색인데, 2색 모두 구동 됩니다만 데이타 만들기 귀찮아서 단색만 했습니다.
회로는 2색 모두 지원합니다.
저항 연결하니 빛이 어두워서 저항도 연결하지 않았습니다.

  1. calian 2009.06.03 16:56 신고

    브레드보드있는 회로 그림은 어떤 프로그램으로 그리셨나요>

    • BlogIcon pepsiman 2009.06.03 17:12 신고

      calian님// arduino 사이트에 있는 이미지를 가져온 겁니다.

      브레드 보드 회로를 그릴수 있는 프로그램으로 제가 아는것은
      Fritzing 이라는 프로그램이 있습니다.
      시뮬은 안되고 그림만 그릴 수 있습니다.참고하세요. ^^
      http://fritzing.org

  2. calian 2009.06.03 20:58 신고

    답변감사합니다^^;;

  3. leejie 2009.12.01 12:09 신고

    브레드보드에 있는 검정블럭같은게 무엇인지 알려주실수 있을까요??
    그리고 만들면서 쓰신 부품들 이름을 알고 싶어요..!
    처음 만들어 보려고 하는데 배울게 많네요..ㅠㅠ;;ㅋ

    • BlogIcon pepsiman 2009.12.04 03:06 신고

      사용한 부품 목록은 맨 위에 있는 목록 그대로입니다.

      브레드 보드 사진으로 왼쪽부터 보면
      맨 왼쪽의 것은 무시하시고요 138, 595, 595, 아두이노, 도트매트릭스
      다만 아두이노가 아두이노 호환 미니 인데...그냥 아두이노 쓰셔도 됩니다.

  4. 깜빡 2009.12.08 06:01 신고

    제가 이해한게 맞는지 모르겠는데요 led매트릭스니깐 8*8 이면 64개의 led와 2색이니깐 총 128개를 제어할수 있는건가요?

    • BlogIcon pepsiman 2009.12.08 15:15 신고

      네 맞습니다. 한번에 한줄씩 제어 하니 순차적으로 16개씩 8번 제어하게 됩니다.

  5. ㅁㄴㅇ 2010.12.03 06:51 신고

    혹시 회로도 왼쪽 빵판에 잇는 초록색 빨간색 똥그란게 뭔지 알수 있을까요;

  6. dfa 2011.03.24 14:36 신고

    잘 봤습니다. 그런데 몇가지 궁금한게 있는데요. 도트매트릭스 사진보면 많은 배선들이 연결돼있는데 위 12부분을 연결한걸 어디다가 연결을 해야하죠 밑12부분도 궁금하구요.. 그리고 브레드보드 들어가 있는 사진보면 맨 왼쪽거 제외를 하고 왼쪽부터 138 595 595 인가요? 그리고 595 밑에 얇은 검정 블락두개가 있는데 이것들은 뭔가요? 또한 그 사진에 보면 가운데 있는 브레드보드에 주황색깔 있죠.. 그건 pushbutton 인지 궁금하네요 그리고 빨간색과 초록색은 LED 라고 말씀하셨는데 어떤 LED인지.. 그리고 그 옆에 있는건 resistor 인가요? 무슨 resistor 인지 궁금해요
    그리고 제가 마지막으로 processing 에 관해서 잘 몰라서 그러는데 소스안에 processing이 사용돼있나요?

    • BlogIcon pepsiman 2011.04.15 17:22 신고

      와이어링은 본문 중간에 595와 아두이노 연결 그림이 있는부분에 있습니다. 설명을 좀더 자세히 추가했습니다. 이해가 되실지 모르겠네요 ^^; 거기서 말하는 숫자는 도트매트릭스의 핀번호입니다 (위쪽에 도트메트릭스의 회로도에 있습니다)

      138도 바로 아래쪽에 설명이 있고요.

      칩에 순서는 138 595 595 입니다. 사진에서 선이 자세히 안보이는 상테에서 순서는 별의미 없지만요 ^^;

      주황색은 먼지 저도 잘 모르겠네요

      빨간색과 초록색은 도트매트릭스를 사용할꺼니까 직접 연결하면 되고요

      저항은 보통 220옴 쓰는데 도트매트릭스에서는 불빛이 넘 약해서 달지 않았습니다.

  7. ㅠㅠ 2011.06.11 23:07 신고

    죄송한데 만능기판에 만들어져있는건 없나요?ㅠㅠ

  8. BlogIcon 오또군 2011.11.04 00:51 신고

    네이버 블로그에 정보수집용으로 퍼갑니다 ^^;; 안된다면 네이버 블로그에 글을 남겨 주세요 ㅠ

  9. vivaman 2011.11.15 14:24 신고

    따라하는 초보입니다.
    하트는 만드는데 성공 했습니다..

    감사합니다.

    Green 색으로도 해보고 싶은데.. 어딜 수정하면 될까요..
    그리고, 2가지 색깔을 섞어 주황색도 만들어 보고 싶습니다..

    ^^

이 글은 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 모듈을 이용하여 프로그램을 업로드 해야 합니다.
저근 이부분이 이해가 안돼서 처음에 무지 고생했지요.

직접 만들어보는것도 좋지만 호환보드들도 워낙 저렴하니 호환보드를 구입해서 쓰는것도 추천할만한 방법입니다.
아르두이노에 필이 꽃힌지 2~3주 되었나....

국내 아르두이노 총판인 플러그 하우스가 회사 근처에 있어 충동 구매를 해버렸다.

처음에는 값싼 AVR보드를 사서 arduino부트로더를 올려볼까 생각했는데 (보드는 싼데 isp케이블과 통신 케이블까지 구입하면)거의 비슷한 돈이 들어가고 호환성은 떨어지기 때문에 정품을 구입했다.

충동구매라곤 하지만 예전부터 해보고 싶다고 생각하던것이 아르두이노로 구현 가능하다는걸 알았기 때문에,
구매에 큰 망설임은 없었다.

Duemilanove는 Diecimila의 다음 버전으로 2009라는 뜻이란다.
개선된점
USB전원과 외부전원의 자동인식 및 전환
Auto-Reset 해제가능
과전류 입력으로부터 보호

arduino와 테스트용 몇가지 부품들을 같이 구입했다.
메인 MCU가 ATmega168에서 ATmega328로 변경되었다.

뒷면 모습
정면 모습
같이 구입한 브레드보드, 저항과 LED, 1줄 문자 LCD, 외부 전원용 잭과 9V 아답터



마직막으로 vega와 연결해보았다.

2009/04/03 - [Arduino] - 마이크로 컨트롤러 용어 및 개념 정리
2009/04/06 - [Arduino] - Arduino와 Wiring
MCU (Micro Control Unit) : 
 마이크로 컨트롤러, 일종의 느린 CPU, 대부분 플래쉬 메모리를 내장하고 있슴. 단독으로 동작가능.
 디지털 입력에는 0V 또는 5V 가, 아날로그 입력에는 0V ~ 5V의 전압이 1024단계로 읽힘. 디지털 출력, PWM출력(256단계).
 Atmel이라는 회사의 AVR시리즈 - Atmega168 : 20MHz, 4,400원 정도.


ISP (In System Programer) : 마이크로 컨트롤러를 프로그램 하는 장치, 프린터포트, 시리얼 포트, USB 포트용이 있다.
 임베디드 프로그래밍.

AVR-ISP 포트는 6핀, 또는 10핀( 모양만 다르고 10핀중 4핀은 GND)




P-AVRISP : ISP 다운로드용 프린터 포트 커넥터
 AVR STUDIO에서는 P-AVRISP를 지원하지 않습니다.(쓰기안됨)
AVR STUDIO에서 헥사파일만 만들고 ponyprog2000에서 라이팅한다.

JTAG(Joint Test Action Group): 임베디드 시스템 개발시 디버깅하기 위한 포트이다. 10핀
임베디드 시스템을 개발하기 위해 통합한 회로로 사용되는 IEEE 1149.1의 일반적인 이름이지만, 보통 디버거를 가리킨다.

MCU에 (arduino 같은)부트로더를 올릴려면 프로그래밍 포트(ISP)를 쓴다. 일단 arduino 부트로더가 올라가면 그 다음 부터는 통신 포트(TTL, UART)를 통해 프로그램을 다운로드 할수 있다. 

PWM (Pulse Width Modulation) : 신호를 주기적으로 출력하는 방식, 디지털을 아날로그 처럼 출력하기 위한방법.
출력의 주기가 빠르면 전압이 높고, 주기가  길어지면 전압이 떨어지는 효과가 있다.


AVR : ATMEL사의 MCU 제품군을 말하나 MCU와 같은 의미로 널리 쓰이는것 같다.


arduino 프로그래밍 언어로는 arduino 개발환경과, atmel사의 AVR Stufdio 등이 있다.


sketch : arduino용 프로그램


※ ATmega128
ATmega128은 8비트 RISC(Reduced Instruction Set Computer)구조의  AVR Core를 가지  
는 마이크로컨트롤러로써 대부분의 명령어를 Single Cycle에서 수행하고 I/O구조는 외부에
추가되는소자를최소화할수있도록설계된마이크로컨트롤러입니다 칩내부에는 발진회
로타이머 UART(Universal Asynchronous Receiver and Transmitter)와 SPI(Serial
Peripheral Interface) 및 풀업 저항과 PWM(pulse Width Modulation), ADC(Analog to
Digital Converter), Analog비교기 Watch-doc 타이머를 가지고 있는 칩 입니다.

ATmega128은 내부에 ISP(In-System Programmable) Flash 메모리와 EEPROM 및 SRAM
을 가지고 있어서 편리한 개발 환경을 제공합니다 그래서 실행할 코드와 동작 중 필요한 .
데이터를 저장할 SRAM 및 EEPROM 등을 추가하지 않아도 되므로 다른 마이크로컨트롤러
에 비하여 경제적이고 회로를 간단하게 설계할 수 있습니다.


일반 ATmega 칩을 사용한 AVR을 이용해서 arduino를 만들수 있다.
일반 AVR은 ISP를 이용하여 프로그래밍을 해야 하는데,  arduino는 ISP없이 시리얼 포트로 통신한다.
하지만 최초에 AVR을 arduino로 만들기 위해 한번은 ISP를 이용해 arduino 부트로더를 다운로드 해야한다.
이후에는 ISP없이 시리얼포트로 arduino용 프로그램인 스케치를 다운로드 할 수 있다.

+ Recent posts