docob.dk

CEO @ docob media | 가리나 프로젝트 | 노라조 | 딜라이트 | 괴짜 프로듀서 dk의 잡동사니 모음

  • ABOUT
  • 두콥미디어
  • 음악 & 사운드 관련
  • 컴퓨터 / 기계 관련
  • 영상 관련
  • 스크랩
    • 22 4월 2013

      Adafruit Wave Shield / Seeed Music Shield (1)

      Adafruit Wave Shield for Arduino Kit 조립 (실패) 에서 이어집니다.

      다시 만들었습니다. 오기가 생겨서 다시.
      이번엔 Seeed Studio의 music shield (v2)도 함께 주문해보았습니다.

      Seeed Studio 상품들은 매우 깔끔.

      Seeed Studio 상품들은 매우 깔끔.

      이쪽은 완제품으로 옵니다.

      Seeed Studio Music Shield v2

      Seeed Studio Music Shield v2

      촘촘한 SMD들, 깔끔한 아크릴 덮개까지…
      직접 만드는 것과는 확실히 다르네요. 가격도 $27.5면 괜찮고.

      music shield의 주요 스펙은,

      • Micro SD 사용 (FAT16/32 최대 2GB)
      • Arduino, Arduino MEGA 지원
      • MP3,WMA,WAV,AAC,MIDI,Ogg Vorbis
      • MIDI 지원 가능 (하지만 귀찮음)
      Adafruit Wave Shield

      Adafruit Wave Shield

      이쪽은 제가 만든 것.
      저도 그 사이 납땜 실력이 꽤 늘었습니다? 새로 산 인두기도 도움이 되었고.
      (Hakko FX-951을 쓰고 있습니다)

      wave shield의 주요 스펙은,

      • SD 사용 (FAT16/32 최대 2GB)
      • Arduino Leonardo, MEGA 지원 불가
      • 16Bit 22KHz MONO WAV만 지원

      스펙을 보면 Seeed Studio 제품이 훨씬 낫네요. 역시 중국의 승리.
      (가격은 $5 정도 차이가 있습니다만, 조립비 생각하면 뭐)

      아.

      이번에는 마지막 조립에서 새로 주워들은 팁을 시도해 보았습니다.
      강선을 쓰는 랜선을 까서 쓰면 점퍼 와이어를 대신할 수 있다고…

      마지막 와이어링에 랜선을

      마지막 와이어링에 랜선을

      결과물은 그럭저럭 만족

      결과물은 그럭저럭 만족

      랜선 굵기가 스트리퍼와 안맞고 한가닥 선이라 꺾일 때 끊어질까봐 두렵긴 했는데…
      뭐 나쁘지 않네요. 와이어 없을 때는 이런 방법으로.

      아무튼 하드웨어는 완성되었으니,
      실제로 코딩을 해봐야죠.

      다음편에 계속.

      0 Comments
    • 25 3월 2013

      본격 Robot 제작 삽질기 (5) – 블루투스 테스트

      본격 Robot 제작 삽질기 (4) – 블루투스 연결에서 이어집니다.
      블루투스 연결만 하면 뭐합니까 제어를 해야지.

      원래 스마트폰으로 제어를 하려고 블루투스 연결을 한겁니다만.
      …귀찮으니깐 그냥 남이 만들어놓은 앱으로 버텨볼랍니다.

      unnamed
      안드로이드에 Bluetooth Serial Controller 앱을 받으세요.
      https://play.google.com/store/apps/details?id=mBluetoothSerialController.nomal#?t=W251bGwsMSwxLDIxMiwibUJsdWV0b290aFNlcmlhbENvbnRyb2xsZXIubm9tYWwiXQ..

      비슷한 이름이 많으니까 혼동하지 마세요.
      구글 플레이에는 쓰레기 앱이 천지라서…

      연결합니다.

      오른쪽 위의 CONNECT 누르시면 다음과 같이 뜹니다.
      2013-03-25 15.00.08

      여기서 블루투스 모듈과 연결하시고,
      버튼 세팅을 해보겠습니다.

      2013-03-25 15.01.59
      Preference 들어가시면 Name, Command, Visibility가 있는데
      Command 부분이 뭘 송신할지 적어놓는 부분입니다.

      2013-03-25 15.02.12
      버튼의 배치는 이렇게 정해져있어서 못바꾸고요.
      다만 Visibility에서 일부 안보이게 할 수는 있습니다.

      2013-03-25 15.02.50
      안보이게 하고 싶은걸 체크를 빼버리면 되죠.

      2013-03-25 15.06.58
      저는 이렇게 구성을 해봤습니다.
      로봇의 이동은 w,a,s,d,x
      로봇의 머리는 r,t,y,f,g,h,v,b,n 할당.

      키보드에 보이는대로 쉽게 ㅎㅎ
      그리고 코딩~

      #include <Servo.h>

      // Servo
      #define PORT_SERVO1 9
      #define PORT_SERVO2 10
      Servo servo1;
      Servo servo2;

      void setup()
      {
        Serial1.begin(9600);
        servo1.attach(PORT_SERVO1);
        servo2.attach(PORT_SERVO2);
      }

      void loop()
      {
        if(Serial1.available())
        {
          char incomingByte = Serial1.read();
          moveRobotByChar(incomingByte);
        }
      }

      void moveRobotByChar(char _code)
      {
        switch(_code)
        {
        case 'r'://1
          servo1.write(35);
          servo2.write(5);
          break;
        case 't'://2
          servo1.write(95);
          servo2.write(5);
          break;
        case 'y'://3
          servo1.write(160);
          servo2.write(5);
          break;
        case 'f'://4
          servo1.write(35);
          servo2.write(40);
          break;
        case 'g'://5
          servo1.write(95);
          servo2.write(40);
          break;
        case 'h'://6
          servo1.write(160);
          servo2.write(40);
          break;
        case 'v'://7
          servo1.write(35);
          servo2.write(120);
          break;
        case 'b'://8
          servo1.write(95);
          servo2.write(120);
          break;
        case 'n'://9
          servo1.write(160);
          servo2.write(120);
          break;
        }
      }

      작동 동영상

      머리와 같은 식으로 몸통 움직이는 것도 해보세요.
      저는 몸통 모터가 4개라 배터리도 골치네요.

      1 Comment
    • 25 3월 2013

      ATmega32를 Arduino로 쓰기

      ATtiny85를 Arduino로 쓰기에서 이어집니다.
      ATmega32 요청이 있어서 한번 알아보았습니다.

      ATmega32-16PU

      ATmega32-16PU

      이건 제가 실험을 해보지는 않았으므로,
      해외 자료들을 찾아보고 말씀드리는겁니다.
      (된다는 댓글이 많이 달려있어요)

      먼저 부트로더를 다운 받으시고.
      ArduinoBootloader.zip
      폴더에 보면 부트로더 내용이 들어있습니다.

      Arduino가 설치된 폴더 아래에 (맥에서는 패키지보기 들어가셔야)
      hardware/arduino/bootloaders 폴더에 가셔서

      atmega32 폴더를 만드시고
      makefile
      ATmegaBOOT_32.hex
      ATmegaBOOT_32.c
      얘네를 냅다 넣으세요.
      그리고 터미널에서 make 하시면 컴파일이 좌르륵~
      (그 전에 AVR Toolchain은 깔려있어야죠?)

      arduino/boards.txt에 다음을 추가합니다.

      atmega32.name=minimegaboard
      atmega32.upload.protocol=stk500
      atmega32.upload.maximum_size=28336
      atmega32.upload.speed=19200
      atmega32.bootloader.low_fuses=0xff
      atmega32.bootloader.high_fuses=0xdd
      atmega32.bootloader.extended_fuses=0x00
      atmega32.bootloader.path=atmega32
      atmega32.bootloader.file=ATmegaBOOT_32.hex
      atmega32.bootloader.unlock_bits=0x3F
      atmega32.bootloader.lock_bits=0x0F
      atmega32.build.mcu=atmega32
      atmega32.build.f_cpu=16000000L
      atmega32.build.core=arduino

      이렇게 되면 IDE에 이제 minimegaboard 이름이 뜹니다.
      귀찮으시면 그냥 이거 받아서 쓰세요. 제가 쓰는거.
      boards.txt

      이제 핀 매핑을 바꿔야하는데,
      arduino-mega32-mod.zip
      이걸 받으시고요. hardware/arduino/cores/arduino 폴더에 덮어쓰기.

      이제 아두이노로 쓰시면 됩니다.
      핀 넘버는
      PD0 – PD7 –> 0-7
      PB0 – PB7 –> 8-15
      PC0 – PC7 –> 16-22
      PA0 – PA7 –> 0-7 (ADC)
      4, 5, 7, 11 핀은 PWM 이라고 하네요.

      그럼… 도움이 되셨길 바랍니다.

      0 Comments
    • 23 3월 2013

      ATtiny85를 Arduino로 쓰기

      아두이노로 뭔가를 만들다보니 실험은 재미있긴한데 사이즈가 아쉽더라고요.
      장난감 인형에 센서를 넣어본다던가, 건담 눈에 LED가 번쩍번쩍한다던가…

      꼭 공장에 양산으로 보내지 않더라도 좀 작게 만들 수는 없을까?
      Arduino Nano도 있지만 가격이 막 장난치기엔 부담스럽고.
      (중국산 카피 제품은 비교적 저렴하다고는 해도 15,000원 수준)

      Arduino Nano

      Arduino Nano

      그런데!

      ATtiny 시리즈에 대한 정보 입수!

      Atmel ATtiny85

      Atmel ATtiny85

      Atmel 제품 중에 초소형 프로세서가 있더라고요.
      키보드 위에 보이는 코딱지만한 저것이 바로 ATtiny85.

      Arduino의 원조 격인 AVR이라 호환성이 높다고 하길래
      바로 eBay에서 5개에 $10 정도에 구입했습니다. 싸다!
      http://www.ebay.com/itm/5PCS-Original-NEW-ATTINY85-20PU-DIP-8-ATMEL-/171002060346?pt=LH_DefaultDomain_0&hash=item27d0845e3a

      정말 심플 8핀짜리입니다.

      정말 심플 8핀짜리입니다.

      Arduino IDE를 쓰기 위해서는 부트로더를 올려야하는데요.

      AVR Programmer가 있으면 편리하지만, AVR 관련 물품이 하나도 없어서
      Arduino를 프로그래머로 쓰는 방법을 선택.

      이런거 하나 있으면 정말 편한데...

      이런거 하나 있으면 정말 편한데…

      먼저, 다른 것을 연결하기 전에 Arduino를 준비해야 합니다.
      Uno나 Duemilanove로 칩셋이 ATmega328인 요즘 것으로 쓰라고 하네요.
      예전에는 ATmega168이었죠.

      일단 이 라이브러리를 받으시고…
      https://github.com/damellis/attiny/archive/master.zip
      아두이노 스케치 폴더 아래에 hardware라는 폴더를 만들고
      그 안에 attiny 폴더를 카피해서 넣습니다. (attiny-master 아닙니다)

      그리고 Arduino IDE를 재시작하면,

      ATtiny 등장!!

      ATtiny 등장!!

      ATtiny 시리즈가 지원 목록에 뜨지요. 하지만 아직 건드리지는 맙시다.

      우선 예제에 보시면, “ArduinoISP” 라는 스케치가 있을겁니다.
      불러오셔서 실행~ 그러면 아두이노가 ISP로 변신~

      그리고 나서 아래의 그림처럼 연결합니다.

      이렇게 연결합니다.

      이렇게 연결합니다.

      잘 연결했다면,
      도구 –> 보드 –> ATtiny (자신이 가진 것으로 선택)
      기본 (1MHz) 로 선택하시면 됩니다.

      그리고,
      도구 –> 프로그래머 –> Arduino as ISP 선택.

      아무 예제나 업로드 해봅시다.
      저는 가장 쉬운 예제인 Blink LED 해봤습니다.
      아, 제가 쓴 ATtiny85는 13번 핀이 없으므로 출력핀만 0번으로 바꿔줬죠.

      성공! 이제 여러 프로젝트에 ATtiny85를 투입해야겠습니다.

      13 Comments
    • 22 3월 2013

      본격 Robot 제작 삽질기 (4) – 블루투스 연결

      본격 Robot 제작 삽질기 (3) 에서 이어집니다.

      IR 리모콘의 성능은 만족스럽지 않았습니다. 각도나 거리에 심각한 제한이 있어서,
      TV 리모콘으로나… 아, 하긴 TV 리모콘으로 쓸 때도 답답함을 많이 느꼈던 기억이 있네요.

      스마트폰과 Bluetooth 라면 좀 괜찮을까??
      바로 해보기로 했습니다.

      마침 DFRobot에서 나온 모듈도 갖고 있고.
      (로봇 킷에 포함되어 있더라고요. 따로 사면 비쌈! 보통은 만원 이하)

      TEL0026 Bluetooth Module

      TEL0026 Bluetooth Module

      핀은 4개를 사용합니다. GND, VCC, TX, RX
      ROMEO 모듈 소켓에 연결을 했고요.
      일반 보드 쓰시면 0(RX),1(TX) 디지털핀에 연결하시면 되겠습니다.

      주의1)
      블루투스 모듈의 TX -> 보드의 RX
      블루투스 모듈의 RX -> 보드의 TX 로 연결하셔야 합니다.

      여기서부터 저는 하루를 꼬박 삽질했는데,

      일단 기본적인 개념은 블루투스 모듈과 핸드폰 간의 페어링이 되면
      시리얼 통신 포트가 연결된 것으로 인식됩니다.

      페어링은 보드와의 통신은 상관없고, 모듈에 전원만 들어오면! 되는거라
      페어링 되었다고 해서 “보드와 커넥트되었다!” 는 아닙니다.

      주의2)
      보드에 USB가 연결되어 있는 상황에서는 Serial이 점유되었기 때문에
      블루투스 모듈의 신호가 보드로 전달되지 않을 수 있습니다.

      또한 아두이노 Serial 레퍼런스를 보시면,
      스크린샷 2013-03-11 오전 2.03.00
      http://arduino.cc/en/Reference/serial

      시리얼 포트 통신법이 보드마다 다릅니다.
      The Arduino Leonardo board uses Serial1 to communicate via TTL (5V) serial on pins 0 (RX) and 1 (TX). Serial is reserved for USB CDC communication.

      주의3)
      제가 사용한 보드는 Leonardo 호환 보드이기 때문에, Serial이 아니라 Serial1을 사용합니다.
      위의 레퍼런스 페이지에서 꼭 쓰시는 보드의 시리얼 통신 스펙을 확인하시고 작업하세요!
      저는 그것도 모르고 왜 시리얼 통신이 안되냐며 소켓을 테스터로 다 찍어보고… 흑흑

      그럼 이제 코드 보시겠습니다.
      아, 로봇에 붙인 서보나 DC모터에 대한 설명은 패스하겠습니다.
      그냥 DC모터 좌우 2개씩, 서보모터로는 관절 2개 만들었습니다.

      FIT0045 Pan & Tilt Kit

      FIT0045 Pan & Tilt Kit

      #include <Servo.h>

      // ROMEO V2 SETTING
      #define M1 4 // 모터1방향제어
      #define E1 5 // 모터1속도제어 PWM
      #define E2 6 // 모터2방향제어
      #define M2 7 // 모터2속도제어 PWM

      // Servo
      #define PORT_SERVO1 9
      #define PORT_SERVO2 10
      Servo servo1;
      Servo servo2;

      void setup()
      {
        Serial1.begin(9600);

        pinMode(M1, OUTPUT);
        pinMode(M2, OUTPUT);
        pinMode(E1, OUTPUT);
        pinMode(E2, OUTPUT);

        servo1.attach(PORT_SERVO1);
        servo2.attach(PORT_SERVO2);
      }

      void loop()
      {
        if(Serial1.available())
        {
          char incomingByte = Serial1.read();
          moveRobotByChar(incomingByte);
        }
      }

      void moveRobotByChar(char _code)
      {
        switch(_code)
        {
          //동작 코드를 짜면 되겠지요?!
        }
      }
      2 Comments
    • →
    Page 1 of 4
    • Categories

      • dk (36)
      • 두콥미디어 (3)
      • 알림 (2)
      • ►음악 & 사운드 관련 (57)
        • 음악 작업 (12)
        • 음악 장비 (18)
      • ►영상 관련 (18)
        • 영상 장비 (8)
        • 작업 후기 (1)
      • ▼컴퓨터 / 기계 관련 (111)
        • ►컴퓨터 관련 (43)
          • 매킨토시 / 해킨토시 (6)
          • LINUX (7)
          • cocos2d-x (5)
          • 라즈베리파이 (8)
          • Unity (3)
        • ▼아두이노 (24)
          • 삽질의 기록 (20)
          • 참고자료 (3)
        • ►멀티콥터 (13)
          • 멀티콥터 비행 (5)
          • 멀티콥터 제작 (6)
          • 항공 촬영 (1)
        • 전기/전자 (2)
      • ►스크랩 (21)
        • 작품모음 (4)
        • Kickstarter Project (6)
    • Recent Comments

      • 개발자에 음악도 하는게 제 목표인데 그걸 이루신 dk님은 부러움의 대상입... Easy Sent in Where's My Eye?! 작업
      • 헐.. 다 제가 좋아하는 곡들인데 메이저 프로듀서이셨군요 ㅜ 존경합니다! 오른발잡이는 in 노라조의 새로운 출발, 쇼케이스겸 미니콘서트
      • 저도 같은 제품으로 리버스 도색을 했는데 흰색으로 도색한 부분은 안벗겨... 오른발잡이는 in 마스터 건반 리버스 도색 작업
      • 질문이 있습니다. 저는 로지텍 C270 을 쓰고 있는데 제가 sudo apt-get install 명... 이재성 in 라즈베리파이 세팅 (3) – 웹캠 설치 Logitech C170 Webcam
      • FS1울 안사고 빅버튼을 샀는데 안먹혀요ㅠ 전수현 in SSL Sigma용 푸쉬 스위치 제작
    • 그 밖의 기능

      • 로그인
      • 글 RSS
      • 댓글 RSS
      • WordPress.org

Copyright 2014 Minimal was created in WordPress by Obox Themes.

WordPress Blogging Theme by Obox