[DIY] Arduino Nano보드를 만들기 개요 [기초편]
- Download
- ArduinoNano_0.hex(5.4 KB) 2019-01-1945
- Arduino_Nano를_이용한_보드를_만들기_.pdf(1.1 MB) 2019-01-1976
Arduino Nano 보드를 만들기 개요
아두이노 보드를 직접 이용하는 방법도 있지만 그 회로를 이용한 보드를 적용하여 만들어보는 방법도 있습니다.
그림1. 그림 2 그림3
가령 그림 1은 아두이노 보드와 불꽃 센서이지만 10개의 불꽃 센서를 1개의 아두이노가 제어하는 회로를 만들어 전용 제어기를 만들면 그림 2와 같은 회로가 됩니다.
보통 이럴 때 아두이노 나노나 미니를 직접 보드에 붙이기도 하지만, 좀 뽀다구 나게 하려면 그림 2와 같이 아두이노 나노칩을 직접 보드에 붙입니다.
그럼 아두이노 나노로 프로그램된 MCU칩은 어디서 나오나요?
그건 아두이노 보드에서 뜯어서 붙이면 됩니다. 그림 1과 같이 아두이노 나노칩이 있는 보드에서 아두이노를 뜯어내어 필요한 곳에 붙이면 됩니다. 그 MCU가 뜯겨진 보드가 그림3입니다. 아두이노 칩을 뜯어내는 방법은 간단합니다. 납을 잔뜩 묻히고 살살 인두로 가열하면 아두이노 SMD칩은 그냥 떨어 집니다.
그림2의 보드는 그렇게 아두이노 보드에서 MCU를 뜯어내서 만든 [납품용 산업체] 보드입니다.
이 Atmega328을 뜯어낸 보드는 아두이노나노가 아닌 쓸모 없는 보드가 됩니다.
반대로 그림3의 [납품용 센서 보드]는 비싸집니다.
그래서 필요한 보드에 ATMEGA328 MCU를 직접 붙이고 그 칩을 Arduino의 운영체제를 이용하도록하면 저가격에 편리한 보드를 만들 수있습니다.
여기서는 이 과정을 실험해 보도록 하겠습니다.
아두이노 보드 만드는데 필요한 개발환경 갖추기
1. 필요한 하드웨어
필요한 장비 및 실험 장비를 준비하도록 하겠습니다.필요한 리스트는 다음과 같습니다..
①. Atmel ICE – 1셋
②. PC (Avrstudio 프로그램 설치된 기기)
③. Arduino용 HEX 파일
④. 프로그램 안된 Atmega328
⑤. 실험에 사용할 아두이노 보드
⑥. 납땜인두, 납, 페이스트, 핀셋, 디 솔더윅 등
2. 개발장비 – Atmel ICE
MCU에 프로그램을 하는 프로그래머용으로 ATMEL ICE가 필요한데 이 장비는 조금 지출이 필요합니다. 스타벅스에서 커피 마실 것을 동네 커피점에 가서 마시면 구입이 가능합다. 10번정도 그러시면 비용을 줄이면 국산으로, 20번정도면 그러시면 그림에 보이는것처럼 Atmel {지금은 마이크로칩스]사의 정식 기기로 구입이 가능합니다.
국내나 중국제 저렴한 장비도 사용하는데 전혀 문제가 없으나, 개발환경이 업그레이드 되면 무용지물이 될 가능성이 많습니다. 제 창고에 이런 장비가 엄청 쌓여 있습니다. 필요하신분은 가져가서 사용해도 좋습니다. 당연 옛날 버전 개발 환경에서 기가 막히게 동작합니다.
3. 개발장비 PC
AVR Studio라는 개발환경이 설치된 PC는 USB포트가 있는 버전이 필요하다. Avrstudiofksms 프로그램은 인터넷을 통하여 받아 설치하면 됩니다. 필요한 소프트웨어의 링크는 Atmel사가 Microchip사에 인수합병되어 Microchip사의 홈페이지에서 제공도고 있습니다. 아뜨멜사를 마이크로 칩사는 약 4조3000억원에 2015년에 인수하였습니다. [우리도 열씸히 회사 키워 수조원에 대기업 팔아먹어 보자.!!]
어쨋던 AVR Stduio버전은 2019년 1월 현재 최종 번전은 7.0인데 앞으로 계속 버전 업될 것 같습니다. Avr Studio는 두 가지가 있습니다.
한가지는 개발 소프트웨어 전체를 다 다운받아 설치하는 버전이고, 다른 하나는 웹상에서 설치하며 필요한 파일만 받아지는 방법인데, Microchip사에서는 인터넷 네트웍 부담이 덜한 후자를 선택하라고 추천하고 있습니다. 당연히 꼴통 개발자인 나는 모두다 받아서 설치하는 방법을 선호합니다.
직접 수백메가 다운 받을 사람은 직접 모두 다 받는 파일 주소는
웹상에서 필요한 프로그램만 설치할 사람은 아래 주소로 연결하면 됩니다.
4. Arduino Nano용 HEX파일
아두이노 나노보드에 프로그램 기계어는 BINARY파일이라 부르는데, 보통 읽을 수 있는 16진 숫자의 인텔사 방식의 HEX파일로 저장됩니다. 이 Arduino 운용체제를 가지고 있는 HEX 파일은 아두이노 IDE를 설치하였다면 여러분 컴퓨터에 이미 들어 있습니다. 그 파일의 위치는 Arduino를 무심코 YES, YES하면서 설치하였다면 필시 여러분 컴퓨터의
C:\Program Files (x86)\Arduino \hardware\arduino\avr\firmwares
에 있습니다.
그곳에 있는 HEX파일은 무지 많은데 아쉽게도 16MHz Nano전용은 보이지 않습니다. 어쨌던 그 파일들 중 만만한 UNO를 한번 메모장을 이용하여 열어 보기로 합니다.
그 파일의 정확한 위치는.
C:\Program Files (x86)\Arduino\hardware\arduino\ avr\firmwares \atmegaxxu2\arduino-usbserial\
이고 이곳에 있는 여러 파일중 필요한 열어보아 만만한 파일은
Genuino-usbserial-atmega16u2-Uno-R3.hex입니다.
이 파일을 컴퓨터의 메모장으로 열어보면 위의 그림과 같습니다.
이 인텔사의 HEX파일 구조를 이해하려면
에 잘 설명이 되어 있습니다.
저는 여기서 나노보드 사용환경을 전혀 변경하고 싶지 않아. 현재 사용하는 아두이노 나노보드의 내부 메모리를 홀랑 읽어서 필요한 부분만 저장한 [나만의 Nano HEX]파일을 만들었습니다. 실제 사용되는 칩에서 읽어서 매우 신뢰가 가는 파일입니다.
이 파일은 제가 방장으로 있는 카페에 저장되어 있으니 필요한 분은 가져 가셔서 사용하여도 무방할 듯. 물론 아두이노사에 감사드리는 것은 잊지 말도록하자.
그 카페 주소는 여기로. https://cafe.naver.com/diyelectronics/460
여기 Hell Maker의 이 글의 첨부파일로 첨부된것이 보이시죠?
[이 꼼꼼하고 배려 깊음이란~~~!! ==3==3]
5. ATMEGA 328 구입
MCU인 ATMEGA 328은 어떤걸 구해도 됩니다. 뒤에 P가 붙은것, 없는것, PB가 붙은것등 여러개가 있는데 모두다 가능합니다. 사용 주파수가 16MHz, 5V이므로 생산되는 모든 ATMEGA 328은 적용이 가능하다.
자주 가는 국내 인터넷판매상에서 구입했습니다.
100개 구입하면 개당 1320원 정도하는데, 이 가격에 세금과 택배를 붙이면 Aliexpress에서 구입가격과 거의 같습니다. [알리에서 1400원 중반대임]
올해 사용 할 아두이노 숫자가 대충 헤아려도 500여개가 넘을 것 같은데, 일단 100개만 구입 하기로 하였습니다.
6. 전자회로용 기본 공구준비
전자회로 만드는데, 필요한 기본공구는 준비해 두는 것이 필요하다, 기계라던지 다른것들은 고가의 장비가 필요하지만 전자회로제작에는 비교적 저렴하게 준비가 가능합니다. 필요한 공구는 일괄적으로 구입하지 말고 필요할 때마다 구입하면 됩니다. 일괄 구입하면 비용도 많이 들고, 별로 좋지않은 공구를 구입하는경우가 많습니다. 입무자 키트라는거 거의 80%는 애물단지가 됩니다. 공구는 하나씩 하나씩 좋은 걸로 구입해 나가 자신만의 공구함에 채워가는 재미가 쏠솔할 것입니다. 이번 실험에 필요한 공구는 핀셋- 트위터-와 납땜인두가 제 몫을 할 것입니다.
6-1 핀셋(Pincette) 또는 트위저(Tweezers)
핀셋이나 트위저는 앞이 뽀족한 놈으로 좀 좋은 것을 구합니다. 이 공구는 생각보다 약하니 조심스럽게 사용하도록 합시다. 이 부품을 이용하여 IC를 잡거나 세밀한 조작을 하기에 필요한 공구입니다.
6-2 납땜인두 (Soldering iron)
납땜인두는 영어로 발음하면 ‘소더링 아이언’이라고 합니다. 대부분의 엔지니어들이 ‘L’을 발음하는데 점잖은 정통 영국식 영어로는 발음을 안 하는 '묵음'이 제대로 된 영어발음입니다. [ 이런 이야기 하는 것은 납땜인두에 대하여 할 이야기가 얼마 없어서입니다]
- 구입
‘비싼거 사세요’라고 밖에 할 이야기가 없습니다. 무조건 비싼게 좋습니다. 아마 약 2~30만원정도 투자해야 제대로 된 납땜인두 구입합니다. 그런데 중국에서 나오는 5~6만원대 복제품도 국내에서 만든 몇 만원짜리 보다 훨씬 좋습니다.국내 모 카페에서 정기적으로 DIY 납땜인두 공구하는데 그 성능 일제를 뛰어 넘습니다. 2~30만원대를 카피하니 적어도 그 향기라도.. 저도 조만가 그 DIY참석 할 예정입니다.
제가 사용하는 인두는 여러개가 되는데 그 중 대표적인 인두 2개를 보입니다. 인두팁은 도끼라 불리는 팁을 사용하는게 초보자에게 좋은 납땜인두 품질을 보장합니다.
- 관리
저는 공구를 적어도 10년씩은 사용한다. 그런데 그 공구들 중 관리방법이 특이한 공구가 납땜인두입니다. 납땜인두는 사용 후 납을 묻혀서 인두 끝이 다음번 사용할 때까지 산화방지를 시켜주어야 오래간다. 지저분해 보이는 관리법이지만 인두팁이 무지무지오래갑니다. 깨끗하게 한다고 사용후 인두긑을 깨끗하게 딱아놓는 ‘아둔한’ 종족을 따라가지 말도록..
7. 땜납, 페이스트, 소더윅
소모품류에 속하는 부품은 비용도 크지 않아 대충 넘어가는 경향이 있습니다. 이 소모품은 가급적 고급의 좋은걸 사용하도록 합시다. 땜납은 건강과도 문제되지만, 제품의 품질과 직접 연관이 있습니다. 그러므로 땜납은 좋은걸 사용하도록 합니다. 무연납이라고 납(pb) 납이 없는 땜납이 있습니다. 저 역시 이 무연납을 한 두루마리 있지만 잘 사용하고 있지 않습니다. 납땜이 잘 안 되서입니다.
그리고 페이스트(납땜 용재) 역시 좋은걸 사용하도록 합니다. 이 용제가 못 미더워 바이올리니스트가 사용하던 송진을 사용하는 사람도 있습니다. 쓰기에 악숙하지 않으면 송진은 쓰기 어려운 용제이지만, 길게보면 매우 좋은 용제입니이다.
땜납을 제거하는 장비로 납흡입기 (desoldering pump)이나 소더윅(solder –wick)이 있습니다. 납 흡입기는 써본지 오래되었지만 잘 쓰는 사람이 있는 것 같습니다. 나름 익숙해지면 좋습니다. 저는 소더윅(solder –wick)을 사용하는데 익숙하여, 소더윅을 아주 좋은 것을 사용하고 있습니다. 구입한지 10년 넘게 사용하고 있습니다.
8. 실험용 보드
실험에 사용할 보드는 Atmega328을 뽑아서 못쓰게된(?) 아두이노 나노 보드에 Atmega328-PB를 붙여서 다시 살리는 작업을 하여 보겠습니다. 기본적으로 붙일 16MHz 크리스탈부터 USB Interrface 칩까지 붙어 있어 최적이라하겠다. 그 사진은 앞에서 보여 드렸죠..ㅎㅎ
아두이노 나노 보드 만들기
1. 보드에 MCU 붙이기
SMD부품을 붙이는 작업은 어려워 보이지만 연습하고 위에 소개된 공구가 있으면 익숙해 집니다. 조금 익숙해지도록 연습하면 잘 됩니다.
일단 부품을 자리에 잘 배열합니다.
우선 MCU의 1번을 잘 찾아서 자리에 올려야 됩니다. 다 붙이고 뛰는거 몇번하고 나면 인생이 고달품을 느낍니다.
그리고 MCU의 모든 핀이 각 핀의 자리에 일치하도록 위의 그림처럼 올려 놓습니다. 인내만이 좋은 결과를 가져 옮니다.
그리고 인두로 납을 IC가 자리에서 벗어나지 않도록 핀셋으로 누른 상태에서 납땜작업을 합니다.
그런데 이 작업에 MCU의 핀들간에 땜납이 그림처럼 마구 번질 수도 있습니다.
전혀 걱정하지 말도록..
그림처럼 핀간에 납이 마구 묻어 있다면 납을 제거하려면 소더윅을 이용하여 제거하면 됩니다.
이로서 나노보드 만들기는 80%정도 되었습니다.
그럼 나머지 20% 더 해야 할것이 있습니다?
짜잔 신나는 이야기!!!.
지금 아두이노 나노 보드는 전혀 소프트웨어가 들어 있지 않은 빈 깡통입니다.
이 빈 깡통에 프로그램을 넣어서 나노보드 넣기를 합니다.
참고로 UNO를 넣어 Uno로 인식하게 할 수도 있습니다.
2. Flash 메모리에 프로그램 써 넣기
Arduino Booting 프로그램을 써 넣기로합니다.
프로그램 내용은 HEX로 되어있는 ArduinoNano_0.HEX 파일입니다. 이 파일의 바이너리는 약 1kbyte(word?) 로 전원이 들어가고 Reset이후에 최초로 수행되는 프로그램입니다.
이 프로그램을 써 넣으려면 개발장비을 PC에 연결하고 보드에도 전원이 들어가게 USB로 연결하여 세팅을 합니다.
두개의 USB포트를 사용하시면 됩니다.
그리고 PCdptj AVR Studio를 수행하고, Menu-> Tools ->Device Programming항을 찾아 device program 창을 열면 됩니다.
이 Devcie 관리창을 열고 난후에 memory 항을 눌러 메모리 프로그램 모드로 들어갑니다.
그 전에 ATmega ICE에 연결에 필요한 USB driver라던지, MCU 인식은 생략합니다. 아마 몇주뒤 이 문장대신 그 부분이 들어 있는 게시물이 되어 있을 수 도 있습니다.
메모리항에서 필요한 ArduinoNano_0.hex라는 HEX파일을 찾아서 Flash항을 설정합니다.
Flash Memory(32k)의 영역의 HEX File은 이미 위에서 연급해 드렸죠? 그 파일을 잘 다운받아서 쓸 준비가 되면 됩니다.
program을 누르면 프로그램이 설정됩니다. EEPROM은 설정하지 않아도 됩니다.
3. Fuses 굽기
프로그램이 구워지면 다음은 MCU의 구성을 결정하는 Fuze를 굽기로 합니다.
이 Fuze는 아두이노 메가계열 MCU만의 특징인데 아마 Micro chip도 유사한 기능이 있어 인수한것 같은 기분이..
Fuze 세팅 내용은 발진기, Reset, Watch dog 프로그램, 그리고 전원 모니터등이 들어 있습니다. 이 3바이트정말 간단한 바이트이지만, 이 세 바이트를 잘못 구우면 영영 MCU를 죽이거나 다시 살리는데 고생을 엄청하는 경우가 많습니다. 이전에 학생들 AVR Studio강의 하다, 잘못 프로그램된 MCU 살리다 하루종일 수업못한적도 있습니다.
byte는 LOW, HIGH, EXTEND3 byte입니다. 잘 안보일거 같아서 3바이트 다시 보여 드립니다.
역시 Fuze 3 byte를 프로그램을 하려면, Fuze창의 program 버튼을 마우스로 콕 누르면 됩니다.
4. 아두이노 보드 프로그램 체크
프로그램이 완성한후에 아두니노보드가 정상 동작하는지는
[ Digital13번 핀이 1초에 1번씩 깜박임 ]
이 있나를 체크하면 됩니다. 이 13번 핀의 LED는 UNOsk nano보드 모두 달려 있으므로 13번 핀의 LED가 깜박거리면 ==> 잘된다. 끝 입니다.
아두이노 나노 보드를 기똥차게 사용하기
아드이노 보드의 개발환경은 AVR Studio에 익숙한 엔지니어도 편하게 프로그램할 수 있는 환경을 제공합니다. 물론 byte 단위로 데이터를 출력한다던지하는 일엔 조금 신경써서 프로그램 하여야 하지만 대부분의 소프트웨어 개발엔 매우 편한게 사용할 수 있습니다.
아두이노 개발환경은 ATMEGA MCU의 50%까지만 사용하게 하지만, 프로그램 시간은 거의 1/10이나 1/20이하로 단축시켜 줍니다. 기존의 Atmega 8, 16, 168, 328등을 Arduino nano나 UNO의 아두이노 환경으로 변경하고 사용하면 개발에 편하고 시간을 단축시키며 기존의 개발된 많은 라이브러리를 사용하게 하여 줍니다.
더구나 Arduino는 GNU 컴파일러를 사용하므로 큰 무리없이 아두이노를 고급프로그램으로 이끌어 갈 수 있습니다.
가령 그림 과 같은 형태의 아두이노 매뉴얼에 나오지 않는(?) 프로그램이 가능합니다.
가령 타이머2 제어하는데 AVR Studio에서는 TCCR2B변수를 사용합니다.
그대로 아두이노에서 사용가능합니다.
보통 아두이노만 다루던 프로그래머에겐 TCCR2B 변수가 생소할 것입니다.
어쨋던..
이제 마음껏 아두이노 환경을 즐깁시당..
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
atmega328P가 구하기 힘들어 졌네요. ATMEGA328PB가 저렴하고 성능도 우수하네요.
1. 차이가 하드웨어 적으로는 Pin3과 PIN6이 IO port로 되었네요.
2. 일단 소프트웨어로는 거의 같이 쓸 수 있을거 같습니다.
그래서 나노보드만들었더니 동작이 이상이 있네요..
그래서검토결과 Fuse를 아두이노 와 같이 바꾸면됩니다.
-- 루루 라라라..