분명 고3일 때 하라는 공부는 안 하고 블로그에 글을 쓰고 있었는데, 정신차려보니 어느덧 군 복무도 끝나가고 있습니다.
    새로운 마음으로 공부하고 작업한 내용을 기록하고자 새 Jekyll 블로그를 만들었습니다.

    댓글을 쓰셔도 보기가 어려우니, 불편하시더라도 궁금한 점은 옮긴 새 블로그에 댓글로 달아 주시면 성심성의껏 답변해 드리겠습니다. 감사합니다.
    2021년 2월 14일

    새 블로그 주소는 https://luftaquila.io입니다.
     

    LUFT - AQUILA

    A sky sailing Electron.

    luftaquila.io




    블로그를 이전하면서 글도 같이 옮기고 있습니다.

    블로그 이전 공지 : https://luftaquila.tistory.com/56

     

    이 글은

    https://luftaquila.io/blog/diy/arduino-hid-control-2/

     

    아두이노로 마우스 & 키보드 입력 제어 (2)

    HoodLoader2

    luftaquila.io

    로 이동되었습니다!


    댓글을 쓰셔도 보기가 어려우니, 불편하시더라도 궁금한 점은 옮긴 새 블로그에 댓글로 달아 주시면 성심성의껏 답변해 드리겠습니다.

     

     

    원래 글을 보려면 더 보기를 누르세요

    더보기

     

    전 편에 이어서 이번에는 앞서 설명드린 HoodLoader라는 부트로더를 우노에 지글지글 구워볼 겁니다.

     

    전 편 보기 : 아두이노로 마우스 / 키보드 입력 제어 (1) - HID 장치로 만들기

     

    모든 편 링크 :

    아두이노로 마우스 / 키보드 입력 제어 (1) - HID 장치로 만들기

    아두이노로 마우스 / 키보드 입력 제어 (2) - HoodLoader2

    아두이노로 마우스 / 키보드 입력 제어 (3) - 조이스틱 제작

     

    --------------------------------------------------------------------------------

     

    오늘 설명드리는 내용은 전부 HoodLoader 깃허브 위키 페이지를 기반으로 작성한 글입니다.

    난 필자를 못 믿겠다(!) 하시는 분들께서는 여기 가서 영문으로 보셔도 됩니다.

     

    우선 부트로더 설치를 위한 하드웨어 배선 작업인데요, 두 개의 선택지가 있습니다.

    100nF 커패시터(콘덴서)를 가지고 계신 분은 1번을, 없으신 분은 2번을 따라오시면 됩니다.

    대신 2번은 아두이노 보드가 두 개 필요합니다.

     

    우선 1번입니다. 100nF 커패시터가 필요하지만 배선은 훨씬 간단합니다.

     

    이렇게 그림대로 연결하시면 됩니다.

     

     

    2번은 말씀드렸다시피 아두이노가 두 대 필요합니다.

    이렇게 배선하시면 됩니다. 업로드 받을 보드에도 전원을 주어야 하기에 5V와 GND도 서로 연결해 주세요.

     

     

     

     

    배선이 끝나셨으면 코드를 업로드하셔야 하는데요, 일단 작업 전에 모든 아두이노에 전원을 차단해 주세요.

    전원 공급은 업로드 직전에 하시면 됩니다.

     

    HoodLoader2.zip
    다운로드

    https://github.com/NicoHood/HoodLoader2

     

    그리고 첨부된 파일 또는 링크에서 다운로드를 하신 후, 압축을 풀어 아두이노 설치 폴더의 hardwares 폴더에 붙여넣어 주세요.

     

    avr/examples/Installation_Sketch 폴더에 들어가시면 Installation_Sketch.ino 파일이 있습니다.

    이게 업로드 코드인데요, 코드 맨 앞부분에 보면 이런 부분이 있습니다.

     

     

    부트로더를 업로드할 보드의 MCU에 따라 하이라이팅된 부분을 밑의 숫자로 바꿔주셔야 합니다.

    예를 들어, 제가 사용하고 있는 건 우노이고, USB MCU가 ATmega16u2이므로, 하이라이팅 된 부분을 3으로 바꾸면 됩니다.

     

    USB포트 쪽에 달려있는 작은 MCU의 모델명을 찾으셔야 합니다.

    큼지막하게 다시마같이 생긴 I/O MCU 모델명 찾으시면서 어 왜 없지?! 하시면 안 돼요! 필자가 그랬다곤 절대 말 못 합니다.

     

    바꾸셨으면 업로드 전에 아두이노 배선이 잘 되어 있는지 다시 한 번 확인해 보시고, 아두이노와 컴퓨터를 USB로 연결한 다음 업로드해 주세요.

    업로드 중에는 배선을 절대 바꾸면 안 됩니다. 아두이노가 벽돌이 되어 영구적으로 사용불가능하게 될 수 있습니다.

     

    2번 방법으로 진행하시는 분들은 업로더에 전원을 공급하시고, 업로드 받을 보드는 USB를 연결하시 마세요.

     

    -------------------------------------------------------------------------------

     

    코드를 업로드하셨으면 이후 작업은 자동으로 진행됩니다. 전원 공급이 시작된 지 10초 후에 굽기 작업이 이루어집니다.

    진행 상황을 보고 싶으시다면 시리얼 모니터를 115200 보드 레이트로 띄우시면 됩니다.

     

    모든 작업이 끝났다면 시리얼 모니터에 programming finished 메시지가 뜹니다.

    그리고 아두이노 보드에 탑재된 빌트인 LED가 0.1초에 한 번씩 빠르게 깜빡입니다. 완료됐으면 USB를 뽑으세요.

     

    만약 LED가 0.1초가 아니라 1초에 한 번씩 느리게 깜빡인다면 작업 실패입니다.

    작업이 실패한 경우 자동으로 10초마다 재업로드를 시도하는데,

    전원 공급을 시작한지 1~2분이 넘어도 0.1초에 한 번씩 LED가 깜빡이지 않으면 일단 USB를 뽑아 주세요.

     

    정상적으로 진행되면 30~40초 이내에 작업이 완료됩니다.

    실패하신 경우 아래 사진을 참고하셔서 배선을 바꾸신 다음 다시 업로드를 시도해 보세요.

    일부 호환 보드에서 ISP 핀이 180도 돌아간 상태로 배열되어 있는 경우가 있다고 합니다.

     

     

    설치가 제대로 됐는지 확인하시려면 장치 및 프린터에 들어가셔서 해당 아두이노 속성을 확인해 보세요.

     

     

    사진과 같이 모델명에 HoodLoader2가 붙고, 장치 관리자 세부 속성 탭의 하드웨어 ID 항목에 REV_0205라는 문구가 있으면 성공입니다.

     

    국내엔 리눅스 사용자 분들이 별로 안 계서서 생략했지만, 리눅스 쓰시는 분이 계시면 아래 링크를 참고하세요.

    https://github.com/NicoHood/HoodLoader2/wiki/Verify-installation

     

    ----------------------------------------------------------------------------------------------

     

    이제 하드웨어 작업과 부트로더 설치 작업은 끝났고, 컴퓨터에서 몇 가지 작업을 해 주어야 합니다.

    윈도우 10, 맥, 리눅스 사용자나 USB MCU가 32u4이신 분은 다음 작업을 생략하셔도 됩니다.

     

    윈도우 7/8 사용자 분들은 아래 링크에 들어가서 하이퍼링크 처리된 Teensy Driver 링크를 클릭해 다운로드 후 설치해 주세요.

    https://github.com/NicoHood/HoodLoader2/wiki/Software-Installation

     

    또는 이 링크를 누르시면 바로 다운로드됩니다. https://www.pjrc.com/teensy/serial_install.exe 

     

    아두이노 IDE는 무조건 1.6.6 이상 버전을 사용해주어야 합니다. 요즘 버전은 1.8.X대 버전이니 아마 이건 상관 없을 겁니다.

     

    일단 이걸로 HoodLoader 부트로더 과정은 끝났습니다.

     

    다음 마지막 3편에서 HoodLoader가 업로드된 보드를 사용하는 방법과,

    어째 흐지부지되어 버린 것 같은 본래 목적 조이스틱 만들기를 마무리하겠습니다.

     

    헉헉 힘드네요... 역시 삽질의 길은 멀고도 험난합니다.

    고달픈 필자가 학교 앞 문구점에서 100원짜리 불량식품이라도 사먹을 수 있게 광고 한 번만 클릭해 주세요! ㅠㅠ

     

    ------------------------------------------------------------------------------------------------

     

    이전 편 보기 : 아두이노로 마우스 / 키보드 입력 제어 (1) - HID 장치로 만들기

    다음 편 보기 : 아두이노로 마우스 / 키보드 입력 제어 (3) - 조이스틱 제작

     

    모든 편 링크 :

    아두이노로 마우스 / 키보드 입력 제어 (1) - HID 장치로 만들기

    아두이노로 마우스 / 키보드 입력 제어 (2) - HoodLoader2

    아두이노로 마우스 / 키보드 입력 제어 (3) - 조이스틱 제작

     

    Posted by LUFT - AQUILA
    • BlogIcon 아두이노 초보
      2017.12.18 19:52

      안녕하세요. 글 잘 봤습니다 ㅎㅎ 제가 아두이노를 처음 시작해 기본 예제들을 익히고 이 글을 따라 마우스/키보드 입력 제어를 하려고 하는데 궁금중이 생겨 글을 남겨 봅니다. 위에서 하이라이팅 된 부분을 바꾸라는 소리가 hex 다음에 3을 붙이라는 소리인가요? 근데 자꾸만 오류가 나네요 ㅠㅠ 아 참고로 저도 우노 r3 입니다.. 괜찮으시다면 답변 부탁드려요 ^^

      • BlogIcon LUFT - AQUILA
        2017.12.18 20:35 신고

        하이라이팅된 부분 전체를 해당하는 보드 숫자로 바꿔주셔야 합니다. 저 같은 경우엔 #define HEXFILE 3 이 되도록 바꾸는 거죠. 우노인데 계속 에러가 뜨신다면 I/O MCU가 ATmega328이 맞는지랑 USB MCU 모델을 다시 한 번 확인해 보세요

    • 아두이노 초보
      2017.12.26 21:16

      그럼 위에 나온 노란색 부분을 다 지우고 3이라 쓰면 되는 건가요?? #define HEXFILE 3 이렇게만 작성하면 되나요??

    • 아두이노 초보
      2017.12.26 21:17

      저렇게 했는데 보드 Arduino/Genuino Uno 컴파일 에러가 뜹니다... ㅠㅠ

      • BlogIcon LUFT - AQUILA
        2017.12.26 21:19 신고

        컴파일 에러요...? 라이브러리 예제라 컴파일 에러가 나지는 않을 텐데요... 실수로 문자 한두개 입력하지는 않으셨나 확인해 보시고 그래도 그러면 라이브러리를 재설치해 보세요. 해결이 안 되면 무슨 에러인지 에러 메시지를 저한테 알려주세요.

    • 아두이노 초보
      2017.12.27 00:17

      해결했습니다... 하하 제가 바보같은 짓을 했네요. 파일을 아두이노 설치 폴더에 넣었어야 했는데 바로 예제를 켜서 컴파일 에러가 뜬 거 같더라구요... 정말 감사합니다!!

    • 레오나르도 살껄
      2018.05.03 13:19

      게시글 잘읽었습니다.
      제가 우노 smd로 작업을 하고 있는데, smd와 같은 경우에는 어떻게 연결해야하나요?

      • BlogIcon LUFT - AQUILA
        2018.05.06 14:12 신고

        atmega328 SMD 부품 말씀이신가요? 그럼 데이터시트 핀맵 보시고 맞는 핀 찾으시면 됩니다.

    • newb
      2018.06.19 20:30

      아두이노 java.io.ioexception: 액세스가 거부되었습니다 라고 뜨는데 해결 방법이 있을까요??

    • 혹시 알수있을까요
      2018.10.01 22:38

      Attempting to enter programming mode ...
      Entered programming mode OK.
      Signature = 0x1E 0x95 0x0F
      Processor = ATmega328P
      Flash memory size = 32768 bytes.
      LFuse = 0xFF
      HFuse = 0xDE
      EFuse = 0xFD
      Lock byte = 0xEF
      Clock calibration = 0xA2
      Bootloader address = 0x7E00
      Bootloader length = 512 bytes.
      Programming the chip with the bootloader ...
      Erasing chip ...
      Writing bootloader ...
      Committing page starting at 0x7E00
      Committing page starting at 0x7E80
      Committing page starting at 0x7F00
      Committing page starting at 0x7F80
      Written.
      Verifying ...
      No errors found.
      Writing fuses ...
      LFuse = 0xFF
      HFuse = 0xDE
      EFuse = 0xFD
      Lock byte = 0xEF
      Clock calibration = 0xA2
      Done.
      Programming mode off.

      하고 0.1초마다 점멸합니다 방법은 2번이고요 근데 연결하면 일단 아두이노 처럼 나옵니다.
      혹시 호환보드는 불가능한가요

      • BlogIcon yswysw
        2020.12.16 09:23

        호환보드는 가능한게 있고 가능하지 않은 게 있는 것 같아요.
        https://luftaquila.tistory.com/24
        이 글 보고 확인해 보실래요?