[U-HUB V1 허브-모듈과 NODE-ON V1 모듈을 Arduino ISP로 만들어 ATtiny85를 위한 아두이노 개발환경 구성]
ATtiny85를 아두이노 IDE에서 사용해보자.
ATtiny85를 사용할 일이 생길 것 같아 사전에 조사를 해보려고 보드를 구매했습니다.
처음에는 Digispark사의 클론 보드일 것으로 생각하고 USB 부트로더가 올라가 있는 보드라고 생각했습니다.
그래서 해당 USB 드라이버만 설치하면 아두이노 IDE와 연결될 것이라 생각했는데 실제로 해보니 예상과 달랐습니다.
해당 드라이버도 잡을 수 없을 뿐더러, 해당 장치가 연결 시도하다 끊어지는 동작을 반복했습니다.
그래서 Digispark사의 아두이노 IDE에 사용할 수 있는 USB 부트로더와 제공하는 드라이버를 찾아 사용하려고 했습니다.
위 사이트에는 Digispart사의 OS별 USB 드라이버와 회로도, ATtiny85 퓨즈비트 설정, USB 부트로더 등 관련 기술 자료가 제공됩니다.
(개인의 제작 목적에는 제한이 없는 라이센스입니다.)
그러나 추후 상용화에 문제가 있을 수도 있을 것 같아 위 방식이 아닌 Arduino를 ISP로 사용하여 프로그래밍하는 방식을 선택했습니다.
참고로, ATtiny85는 6개의 I/O가 있으나 아두이노 개발환경에서 사용할 때는 PB5번은 리셋핀으로 사용하지 않습니다.
따라서 총 사용할 수 있는 I/O 수는 5개입니다.
APPSKIT을 활용한 Arduino as ISP 보드를 만들어 보겠습니다.
아래 사진은 제가 사용한 ATtiny85 보드입니다. 그러고 보니 보드의 USB는 스케치 업로드로 사용 못하겠네요.
[ATtiny85 보드 및 핀-헤더 조립 사진]
NODE-ON V1 악세사리 모듈은 사용자 회로를 구성할 수 있으며,
U-HUB V1 허브-모듈을 장착하여 아두이노로 사용할 수 있습니다.
본 포스팅에서는 이 두 모듈을 결합하여 ATtiny85를 위한 ISP(프로그래머)로 사용했습니다.
NODE-ON V1 악세사리 보드에 ATtiny85 모듈을 장착할 수 있도록 6핀 헤더소켓으로 구성하고, 12핀 헤더소켓은 U-HUB의 I/O를 사용할 수도 있어 연결을 했습니다.
[NODE-ON V1 악세사리 모듈에 헤더소켓 장착 사진]
U-HUB V1 허브-모듈의 SPI 핀과 ATtiny85 보드의 SPI핀을 서로 연결하여 ATtiny85에 아두이노 IDE를 위한 부트로더 및 스케치를 업로드하기 위해 배선을 연결했습니다.
핀 연결 구성은 다음과 같습니다.
다음은 위에서 설명한 NODE-ON V1과 ATtiny85 간 배선 사진입니다.
ATtiny85 보드의 전원 핀 중, VIN 핀(규격에는 DC 7~35V)은 사용하지 않습니다.
[NODE-ON V1 악세사리 모듈과 ATtiny85용 헤더소켓간 배선 사진]
다음은 NODE-ON V1 악세사리 모듈과 ATtiny85 모듈을 장착한 사진입니다.
[NODE-ON V1 악세사리 모듈과 ATtiny85 보드 장착 사진]
다음은 ATtiny85 모듈과 결합된 NODE-ON V1 악세사리 모듈에 U-HUB V1 허브-모듈을 장착했습니다.
U-HUB V1 허브-모듈에는 "ArduinoISP" 스케치를 업로드한 뒤, 이 ISP 기능을 통해 ATtiny85 아두이노 부트로더와 스케치를 업로드할 계획입니다.
[NODE-ON V1 악세사리 모듈과 ATtiny85 보드 그리고 U-HUB V1 허브-모듈 장착 사진]
이제 필요한 하드웨어는 준비되었습니다.
먼저 U-HUB V1 허브-모듈에 "ArduinoISP" 스케치를 업로드하겠습니다.
단계1. "ArduinoISP" 스케치를 불러옵니다.
[ArduinoISP 스케치 불러오기]
단계2. 불러온 스케치를 업로드하기위해 U-HUB V1 허브-모듈의 환경을 설정합니다.
보드는 "Arduino Pro or Pro Mini", 프로세서는 "ATmega328P (5V, 16MHz)", 포트는 연결된 시리얼 포트 번호를 선택합니다.
[U-HUB V1 허브-모듈의 보드와 프로세서, 포트 설정]
단계3. 불러온 스케치를 업로드합니다.
[ArduinoISP 스케치 업로드]
다음으로 ATtiny85 모듈에 아두이노 부트로더를 업로드하겠습니다.
ATtiny 보드 패키지를 아두이노 IDE에 추가해야 합니다.
단계1. ATtiny 보드 패키지를 아두이노 IDE에 추가를 위해 파일 메뉴의 "환경설정"을 클릭합니다.
[ATtiny 보드 패키지 추가를 위해 환경설정 이동]
단계2. "추가적인 볻 매니저 URLs" 항목에 다음 ATtiny 보드 패키지 URL를 복사해서 넣습니다.
ATtiny 보드 패키지 URL:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
그리고 "확인" 버튼을 누릅니다.
[ATtiny 보드 패키지 URL 추가]
단계3. 보드 매니저 설치를 위해 "툴" 메뉴의 "보드" 그리고 "보드 매니저..."를 클릭합니다.
[보드 매니저 이동 화면]
단계4. 보드 매니저 창이 활성화되면 제일 아래로 스크롤해서 내려가면 "attiny by David A.Mellis" 버전 1.0.2 가 리스트에 나타납니다. 해당 리스트를 클릭하면 "설치" 버튼이 활성화되며, 이 버튼을 눌러 설치를 시작합니다.
[보드 매니저 내 ATtiny 보드 패키지 설치 화면]
단계5. 정상적으로 설치되었으면, ATtiny25/45/85 보드가 나타납니다. "ATtiny25/45/85"를 선택합니다.
[보드 매니저 내 ATtiny 보드 선택]
단계6. ATtiny 프로세서는 "ATtiny85"를 선택합니다.
[ATtiny 프로세서 선택]
단계7. ATtiny Clock는 "Internal 8 MHz"를 선택합니다.
[ATtiny 시스템 클록 선택]
단계8. 프로그래머는 "Arduino as ISP"를 선택합니다.
[프로그래머 선택]
단계9. ATtiny85에 아두이노 부트로더를 올립니다.
[아두이노 부트로더 굽기]
다음과 같이 "부트로더 굽기 완료" 메시지가 나타나면 ATtiny85에 아두이노 부트로더가 성공적으로 업로드되었습니다.
[아두이노 부트로더 굽기 완료 화면]
ATtiny85에 아두이노 부트로더를 업로드하였으니 샘플 스케치를 업로드하겠습니다.
단계1. 빈 스케치 파일을 생성합니다.
[스케치 새파일 만들기]
단계2. 다음과 같이 ATtiny85의 아두이노 1번 핀을 출력으로 지정해서 간단한 스케치를 작성합니다.
1번 핀을 사용한 이유는 구매한 ATtiny85 보드에서 1번 핀에 LED가 연결되어 있어 확인하기가 용이합니다.
[스케치 작성하기]
단계3. 위에서 작성한 스케치를 업로드합니다.
[스케치 업로드하기]
스케치 업로드 환경은 반드시 다음(붉은 색 박스)과 같이 미리 설정되어 있어야 합니다. 업로드를 마쳤으면 ATtiny85 보드의 LED가 켜졌다 꺼짐을 반복합니다.
[ATtiny85를 위한 아두이노 환경 설정]
다음은 위에서 설명한 ATtiny85를 아두이노 개발환경에서 사용하는 동영상입니다.
[ATtiny85 as Arduino 작동 동영상]
이상으로 APPSKIT을 활용하여 ATtiny85를 아두이노 IDE에서 사용할 수 있는 방법에 대해 알아보았습니다.
감사합니다.