전자, 전기, 소프트웨어, 기계, 3D 프린터, 아두이노, 라즈베리파이, 쇼핑몰 창업

전체 페이지뷰

이 블로그 검색

최신글

[Blender] 3D viewport 사용법

레이블이 아두이노인 게시물을 표시합니다. 모든 게시물 표시
레이블이 아두이노인 게시물을 표시합니다. 모든 게시물 표시

[강좌] 2. 아두이노 연결하기


무작정 보고 따라하며 배우는 아두이노 강좌입니다.
아두이노 공식 사이트에서 제공하는 강좌를 바탕으로 작성되었습니다.
해당 게시글은 Arduino UNO 보드를 기준으로 작성되었습니다.

2. PC에서 아두이노 연결하기


지난 강좌에서 아두이노 보드에 소스를 업로드할 프로그램을 설치했다면, 이번에는 아두이노 프로그램에서 아두이노 보드를 연결시키는 방법을 알려드립니다.

설치한 아두이노 프로그램을 켜줍니다.
아두이노 보드를 USB 포트에 연결합니다.


아두이노를 USB 포트에 연결하고 장치를 사용할 준비가 되었으면, 아두이노 프로그램에서 툴 -> 보드 -> Arduino/Genuino Uno를 선택해 줍니다.

아두이노 프로그램을 업로드 하기위해 어떤 아두이노 보드를 사용하는지 선택해 주는 과정입니다. 이 과정에서 알맞은 보드를 선택해 주지 않으면 이후 소스 업로드시 정상적으로 업로드가 되지 않습니다.



보드를 선택한 후 툴 -> 포트에서 아두이노가 연결된 USB 포트를 선택해 줍니다.

어떤 아두이노 보드를 사용할지 선택한 후 해당 보드가 어떤 USB 포트에 연결되어있는지 지정해 주는 작업입니다. 컴퓨터에는 여러개의 USB 포트가 있고 여러개의 아두이노가 연결되어있다면, 어떤 포트에 연결된 아두이노에 프로그램을 올리는지 잘 정해줘야 합니다.

만약 아두이노를 연결하였음에도 불구하고 포트가 잡히지 않으면 
위 게시물을 참고하시기 바랍니다.



정상적으로 보드 선택/ 포트 지정을 한 후 아두이노 프로그램 하단에 뜨는 문구입니다.


[강좌] 1. 아두이노 설치하기


무작정 보고 따라하며 배우는 아두이노 강좌입니다.
아두이노 공식 사이트에서 제공하는 강좌를 바탕으로 작성되었습니다.
해당 게시글은 Arduino UNO 보드를 기준으로 작성되었습니다.



1. 아두이노 설치하기


아두이노를 설치하려고 이 글을 보시는 분들은 아두이노가 무엇인지, 어디에 사용되는지 알고 이 글을 보신다 생각하여, 아두이노에 대한 소개는 생략하도록 하겠습니다.

아두이노의 개발환경을 구축하기 위해서는 먼저 아두이노 소스을 보드에 업로드 할 수 있는 프로그램이 필요합니다.

바로 설치방법으로 넘어가서, 먼저 아두이노 공식사이트에 접속해 줍니다.
arduino.cc }



아두이노 사이트 상단에 SOFTWARE를 클릭해 줍니다.



다음에 뜨는 창에서 DOWNLOAD 부분에 자신의 운영체제에 맞게 선택해 줍니다.
일반적인 가정의 윈도우 운영체제라면 상단의 Windows Installer 를 클릭해 주면 됩니다.


이후 아두이노 후원여부를 묻는 창이 뜹니다. 
아두이노에 후원을 하지 않고 무료로 다운받으실 경우 JUST DOWNLOAD,
일정 금액을 후원하고 다운받으실 경우 초록색 버튼을 눌러주시면 됩니다.



파일이 다운로드된 후 실행해 줍니다.
보안 경고창이 뜬다면, 실행 버튼을 눌러줍니다.

이후 Agree (동의), Next (다음), Install (설치) 버튼을 눌러 설치를 마무리 해 주면 됩니다.
설치 버튼을 누르기 전, 아두이노를 설치할 경로를 지정하는 창이 뜹니다. 아두이노 설치 경로에 한글도 된 파일명이 존재하면 이후 소스 업로드에 오류가 발생할 수 있어 주의합니다.

아두이노 EEPROM 초기화 방법


아두이노를 기반으로 작동되는 3D 프린터에서 오프셋, 모터 스텝 값과 같은 설정값을 아두이노 상에서 변경할 시, 이전의 메모리로 인해 새 설정값이 적용이 안되는 경우가 있습니다. 이때, EEPROM을 clear 해 주고 다시 업로드를 해 주면 문제가 해결됩니다.


EEPROM 이란 전기 공급이 끊긴 상태에서도 장기간 기억하는 비휘발성 기억 장치입니다.
쉽게 말해 아두이노에 있는 작은 SSD 같은 장치입니다.
기록된 데이터를 지우고 쓰는 것이 가능하며, 아두이노에서의 EEPROM 작성 보장 횟수는 100,000회 입니다.
아래는 각 아두이노별 EEPROM 용량입니다.
EEPROM 용량은 스케치 크기에 영향을 미치지 않는 독립적인 용량입니다.

  • Arduino Duemilanove: 512b EEPROM storage.
  • Arduino Uno: 1kb EEPROM storage.
  • Arduino Mega: 4kb EEPROM storage.


EEPROM 초기화 방법입니다.

먼저 아두이노를 실행해 주세요.



파일 -> 예제 -> EEPROM -> eeprom_clear 를 선택해서 불러와 줍니다.




불러와진 예제의 소스를 그대로 업로드하면 EEPROM만 초기화됩니다.

혹시 필요하신 분을 위해 소스코드를 아래에 첨부합니다.

#include 

void setup() {
  pinMode(13, OUTPUT);
  for (int i = 0 ; i < EEPROM.length() ; i++) {
    EEPROM.write(i, 0);
  }
  digitalWrite(13, HIGH);
}

void loop() {
}

아두이노에서 포트 인식이 안될 경우 해결방법


아두이노에 스케치를 업로드 할 때, 종종 포트가 인식되지 않는 오류가 발생하곤 합니다.

이 문제의 원인은 여러가지이고, 문제 해결 방법도 그에 따라 여러가지가 있습니다. 문제가 해결되지 않더라도 좌절하지 마시고, 더 많은 정보를 찾아보시길 권장합니다.



아두이노를 기반으로 작동되는 3D 프린터에는 Marlin 이라는 펌웨어를 올려줍니다. 그런데 Marlin을 평소처럼 업로드 하던 도중 문제가 발생하였습니다.

업로드 오류 문구는 아래와 같습니다.

avrdude: ser_open(): can't open device "\\.\COM3": 지정된 파일을 찾을 수 없습니다. 
avrdude: ser_drain(): read error: 핸들이 잘못되었습니다. 
보드에 업로딩중에 문제 발생. 다음을  참고하세요.


위 문구의 내용은 COM3에서 장치를 열 수 없다고 합니다.
COM3은 별 다른 것이 아니라, 포트 이름입니다. COM1, COM2, COM3......

아래는 펌웨어가 정상적으로 업로드 될 때의 사진입니다.


정상적으로 업로드가 될 때에는 툴 - 포트 항목에 사용중인 아두이노의 포트가 자동으로 잡히고, 포트 번호가 정상적으로 뜹니다.

그러나 업로드 오류가 발생하면 아래와 같이 포트가 뜨질 않습니다..ㅜㅠ




이때, 아두이노의 문제가 아니라 PC의 인식 문제라면 간단한 해결책이 하나 있습니다.
컴퓨터가 어떠한 이유로 장치를 인식하지 못할 때, 장치를 제거했다가 다시 인식시키는 방법입니다. 일반적으로 이러한 방법을 행하기 위해 USB를 뽑았다 끼우실 텐데요, 이미 해당 USB 장치가 알 수 없는 장치로 저장되어있는 경우 계속 같은 문제가 발생합니다.



아래는 해당 USB 장치의 저장된 정보를 제거하여 재인식시키는 방법입니다.
먼저 제어판에 들어간 후 하드웨어 및 소리에 들어가 줍니다.



장치 관리자를 켜 줍니다.




장치 관리자에 들어가 보면 위 사진과 같이 알 수 없는 장치라고 표시된 것이 있습니다.
위 장치를 제거해 주고, 다시 USB 케이블을 연결 해 주시면 정상적으로 인식될 것입니다.

물론 아두이노에 아무런 문제가 없고, PC에서도 잘 인식되던 아두이노가 갑자기 오류가 날 시 가장 먼저 시도해 볼 방법입니다. 이 방법이 모든 오류상황에서 해결책이 될 것이라는 보장은 할 수 없습니다.



아두이노 ATmega328 칩 내부클럭(8MHz) 부트로더 굽는 방법


2016.01.13

아두이노 디지털 스폿 용접기를 제작할 때, Arduino Uno에 쓰이는 Atmega328칩을 메인 컨트롤러 칩으로 사용합니다.

이 칩을 구동하기 위해서는 크리스탈이라는 부품을 사용하여 16mhz의 외부클럭 속도로 사용하는 것이 기본 설정입니다. 

그러나 제작 단가를 낮추기 위해서는 외부클럭 등 여러 부품들을 제외하고 Atmega328p-pu칩만 사용할 수 있습니다. 외부클럭을 제외하고도 ATMega328칩은 8mhz의 내부클럭을 지원합니다.

8mhz의 내부클럭을 사용하기 위해서는 ATMega328칩에 8mhz전용 부트로더를 구워야합니다. 완전 정밀한 값이 필요한 빠른 작업이 아니라면, 8mhz 만으로도 충분한 결과가 나온다는 이야기를 듣고 도전해 봤습니다.

기본 내용은 낭만베짱이님의 블로그를 참고하였습니다.

수십번의 삽질을 거쳐 성공한, 부트로더 굽는법을 자세히 포스팅 해 봅니다.

준비물
  • ATmega328p-pu칩
  • 16mhz 크리스탈
  • 22pf 세마릭 콘덴서 2개
  • 브레드보드 및 점퍼선
  • 아두이노 우노 칩이 장착된 우노보드

8mhz 부트로더 굽는 방법

먼저 아래의 이미지와 같이 부품들을 배선해 줍니다.
이때, 유의해야 할 점은 아두이노 보드에 메인 칩이 장착된 상태여야 합니다.




모든 부품들을 정상적으로 연결했다면, 컴퓨터와 아두이노 보드를 연결하고 Arduino ISP 업로드를 위해 아두이노 프로그램을 켜 줍니다. Arduino ISP 업로드는 아두이노 프로그램에서 파일-예제-Arduino ISP-업로드 순서로 하면 됩니다.
이때, 성공적으로 Arduino ISP가 업로드 된다면 아래와 같은 사진이 떠야 합니다.


* Arduino ISP 업로드 시 보드 설정을 Arduino UNO (자신의 보드) 로 설정하고 하셔야 합니다. 위 이미지에서는 8mhz 부트로더 업로드 후 이미지라 보드가 8mhz 보드로 뜨는데, ISP업로드 시에는 연결된 자신의 보드로 업로드해야 합니다.



ISP 업로드가 성공적으로 완료되었다면, 그대로 보드를 ATmega328 on a breadboard (8 MHz internal clock)으로 설정하여서 부트로더를 업로드 해 줘야 합니다.

그런데, 일반적으로 보드 설정을 위해 툴-보드에 들어가보면, 위와 같은 이름의 보드는 존재하지 않습니다. ATmega328 on a breadboard (8 MHz internal clock) 보드 항목을 추가하기 위해서는 https://www.arduino.cc/en/uploads/Tutorial/breadboard-1-6-x.zip 에 접속하여 8MHz 보드가 등록이 가능하게 만들어주는 파일을 다운받아야 합니다.

ZIP파일을 다운받았다면, 컴퓨터마다 다르겠지만 아두이노가 설치된 폴더 속 hardware 폴더에 압축을 풀어주면 됩니다. 일반적인 경로는 C:\ProgramFiles(x86)\Arduino\hardware 입니다.

압축 해제 후 폴더 경로는 C:\ProgramFiles(x86)\Arduino\hardware\breadboard\avr 으로 압축이 해제되었다면, 정상적으로 보드 항목에 추가될 것입니다.

다시 아두이노에 돌아가서 보드선택 항목을 보면, ATmega328 on a breadboard(8MHz internal clock) 보드가 추가되어 있습니다.

이제 프로그래머를 Arduino as ISP 로 선택하고 보드를 위 8MHz 보드로 변경하여 업로드하면, 부트로더가 정상적으로 업로드되며, "부트로더 굽기 완료"라는 표시가 뜹니다.

이제 8MHz 부트로더가 구워진 칩은 외부 크리스탈과 22pF 콘덴서없이도 전원만 넣어주면 작동이 가능합니다!