Home » [손톱두이노(Nail_Duino)]라즈베리파이 모델 A+/B+/2 모델 B에서 손톱두이노 부트로더 올리기

안녕하세요 산딸기마을 이장 나무꾼 입니다.

요즘은 다가오는 토요일에 진행되는 “앙코르 라즈 조이박스” 공개프로젝트 준비를 하느라, 프리오더를 진행 중인 손톱두이노에 대한 포스트를 작성하지도 못했다.

이에 필자는 간단하게나마 마이크로 타입 아두이노인 손톱두이노에 대한 포스트를 하나씩 준비 해 보려 한다.

 

0. 준비물

nailduinoide_0

 

1. 라즈베리파이(모델 A+/B+/2 모델 B) 와 손톱두이노(Nail Duino) 연결하기

손톱두이노는 사전에 배포된 사용자 메뉴얼에도 나와 있듯이  일반적인 아두이노 제품과 와 다르게 흔히 전문 엔지니어분들이 표현하는 깡통 MCU 상태로 출고가 된다.

손톱두이노가 이러한 형태로 출시가 되는 것에는 두가지 이유가 있다.

첫번째는 손톱두이노는 라즈베리파이만 있다면 기존 ISP 제품을 사용하지않고, 손쉽게 부트로더 업로드가 가능하도록 만들어졌다는 것 이다.
두번째는 일반적으로 아누이노에는 UNO , NANO, Mini , pro 등과 같은 여러제품의 아두이노가 존재하지만, 대부분은 한가지의 MCU를 사용하고 있다. 하지만, 일반적인 아두이노의 경우에는 각각의 제품을 구입해야하는 번거로움이 있다 하지만 손톱두이노는 앞서이야기한 첫번째 특징을 기반으로  사용자가 원하는 형태의 아두이노로 변형이 가능하기 때문이다.
*깡통MCU : 부트로더가 설치되어 있지 않은 MCU

nail_connect

[그림1] 라즈베리파이 와 손톱두이노 연결방법

 

필자는 “손톱두이노“에 아두이노 부트로더를 올리기 위해 아래와 같이 손톱두이노를 브레드보드에 연결 후, 라즈베리파이 GPIO 와 연결을 했다.

nail_connect2
[사진1] 라즈베리파이 와 손톱두이노 연결사진

 

2. 라즈베리파이에 손톱두이노 프로그램 다운로드 및 설치하기

 

2-0. 라즈베리파이에서 손톱두이노(Nail Duino) 설치영상.

2-1. 손톱두이노(Nail Duino) 파일 다운로드

라즈베리파이를 부팅 후, 다음과 같은 명령어를 입력 하자.

pi@raspberrypi ~ $ git clone https://github.com/rasplay/nail_duino

nail_cmd
[사진2] 라즈베리파이에서 손톱두이노(Nail Duino) 소프트웨어 다운로드 완료 사진

 

2-2. 손톱두이노(Nail Duino) 설치하기

라즈베리파이에서 손톱이두이노(Nail Duino)를 사용하기 위해선, 손톱두이노 관련 프로그램 설치와 아두이노 IDE 를 설치 해 주여야만 한다.

pi@raspberrypi ~ $ cd nail_duino
pi@raspberrypi ~/nail_duino $ sudo sh nail_duino.sh

nail_cmd2
[사진3] 라즈베리파이에서 손톱두이노(Nail Duino) 소프트웨어를 실행 하는 사진

nail_cmd3
[사진3] 라즈베리파이에서 손톱두이노(Nail Duino) 소프트웨어실행을 정상완료된 사진

 

3. 라즈베리파이에 손톱두이노(Nail Duino) 아두이노 우노 버전으로 부트로더 올리기

3.1. 라즈베리파이에서 아두이노 IDE 실행하기

앞서 필자가 이야기한것과 같이 손톱두이노는 기본적으로 아두이노에 기반한 하드웨어로 설계가 되어 있기에 기존 아두이노 사용유저라면 문제가 없도록 GUI환경에 맞추어 소프트웨어 개발과 관련된 모든 것을 아두이노 IDE 개발 환경에 맞추어져 있다.

우선 앞서 산딸기마을에서 배포하는 nail duino shell script를 설치하게 되면 아래와 같이 라즈베리파이에서 아두이노 IDE를 사용 할 수 있도록 자동 설치가 된다.

그럼 이제, 라즈베리파이에서 아두이노 IDE 프로그램 을 실행 해 보자.

nailduinoide_1
[사진4] 라즈베리파이에서 아두이노IDE를 실행하는 화면

 

3.2. 아두이노 IDE 프로그래머 와 변경 할 아두이노 제품 선택하기

라즈베리파이를 이용해 손톱두이노(Nail Duino)에 부트로더를 올리기 위한 설정 중 하나로 필자는 라즈베리파이 GPIO를 이용해 리셋기능을 대체하는 것으로 활용을 하였다.

가장 먼저 Tools  Programer 에서 RaspberryPi  GPIO 옵션을 선택 해 주어야만 부트로더가 업로드 될 수 있다.

다음으로 아두이노 중 Atmega 328p 제품 군 중에서 사용자가 설정하고 싶은 아두이노를 선택하도록 하자.

필자는 아두이노의 기본이 되는 우노 제품을 선택해 보도록 하겠다.

* Tip : 손톱두이노의 경우, 아두이노 우노에는 포함되지 않은 A6, A7 의 핀이 추가로 나와 있다
이 역시 일반 우노 버젼에서는 사용을 할 수가 없지만,  손톱두이노에서는 우노버젼에서도 모두 사용이 가능하다.

nailduinoide_2
[사진5] 아두이노 IDE 프로그래머 및 타겟 보드 선택 화면

 

 3.3. Arduino ISP 불러오기 및 아두이노 우노 부트로더 업로드 하기

일반적으로 ISP는 기본통신이 SPI 를 통해 부트로더 이미지를 업로드 하도록 만들어 졌다.

손톱두이노 역시 이러한 기반으로 아두이노 ISP 를 호출 한 뒤, 라즈베리파이 와 손톱두이노 간에 SPI 통신을 이용해 아두이노 부트로더를 MCU인 Atemega328p에 저장하도록 제작을 하였다.

nailduinoide_3
[사진6] 라즈베리파이에서 아두이노 부트로더 업로드하는 화면 1

nailduinoide_4
[사진7] 라즈베리파이에서 아두이노 부트로더 업로드하는 화면 2

nailduinoide_5
[사진8] 라즈베리파이에서 아두이노 부트로더 업로드하는 화면 3

 

위와  같은 과정을 통하여, 라즈베리파이에서 깡통 MCU인 손톱두이노(Nail Duino)에 아두이노 우노 부트로더를 업로드 해 보았다.

이후에는 일반적인 아두이노 를 사용하는 방법이 모두 동일하다.

 

필자는 `13년 2월 부터 산딸기마을 을 통해 라즈베리파이 활용법을 중심으로 한 D.I.Y 활용 관련 포스트를 진행하면서 라즈베리파이 와 아두이노에 대한 결합 필요성을 강조하면서

결국은….  멀티두이노 → 멀티두이노 REV 0.8 → 손톱두이노 의 버전으로 발전되어

산딸기마을 자체 개발 아두이노인 최종 손톱두이노(Nail Duino)라는 브레드보드 지원형 초소형 아두이노(25mmx25mm)가 개발이 되기까지 조금만 전문 개발집단과 함께 했더라면 짧아질 길을 참 먼길을 돌아온 것이 아닌가 하는 아쉬움은 남아있다.

산딸기 마을은 언제나 저희와 같은 마음으로 기업 이윤 5%~10% 미만으로 함께 새로운 세상을 만들어가 길 원하는 협업 프로젝트를 함께 할 기업을 찾고 있습니다.

 

[참고자료]

o 손톱두이노(Nail Duino) 사용자 메뉴얼

o 손톱두이노(Nail Duino) git hub

산딸기마을 포스트 검색

공동제작 공동프로젝트 무상후원 기관

산딸기마을 기부하기

산딸기마을 방문자 현황

Flags Countries Visits Page views
South Korea 626063 1845660
United States 10882 26091
Japan 5011 13204
Germany 2755 5151
India 1897 2902
Canada 1729 4640
United Kingdom 1596 2642
Australia 1240 2901
Russia 1219 1677
China 1077 2239
Total Pageviews: 1936700