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

전체 페이지뷰

이 블로그 검색

최신글

[Blender] 3D viewport 사용법

[강좌] 6. 아두이노 시리얼 모니터로 디지털 신호 읽어오기


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

6. 시리얼 모니터로 디지털 신호 읽어오기


아두이노에서 스위치 등 다른 하드웨어를 이용하여 LED등 어떠한 부품들을 제어하고자 한다면, 디지털 신호를 읽을 줄 알아야 합니다.

여기서 말하는 디지털 신호란, 전압이 HIGH인 상황 LOW인 상황 두가지를 말합니다.
우리는 컴퓨터와 같은 전자장비들이 0과 1로 신호를 주고받는다는 사실을 알고있습니다.

아두이노도 마찬가지로 전압이 HIGH인 1과 LOW인 0 두가지로 디지털 신호를 주고받습니다.

그럼 이 0과 1로 이루어진 디지털 신호를 읽는다고 했습니다.  단, 시리얼 모니터로 읽어온다고 하였지요. 그럼 시리얼 모니터가 무엇일까요?

시리얼 모니터를 이용하면 아두이노와 PC간의 통신이 가능합니다. 시리얼 모니터로 아두이노에 연결된 센서 혹은 스위치의 변화하는 값들을 우리 눈에 볼 수 있도록 띄워줄 수도 있습니다. 이 외에도 명령어를 미리 만들어두면 아두이노로 명령어를 전송하여 여러 기능을 할 수 있습니다.


이번 강좌부터는 아두이노 외부에 따로 회로를 구성합니다. 
택스위치를 사용하여 스위치의 열림, 닫힘으로 디지털 신호를 입력받아 시리얼 모니터에 출력합니다.

준비물 ( 아두이노와 PC는 기본입니다 )

브레드보드, 점퍼케이블, 텍스위치, 저항 10k옴



먼저, 아래 이미지와 같이 아두이노 보드와 각종 부품들을 연결해 줍니다.
5V 전원이 스위치로 들어가고 스위치의 열림, 닫힘에 따라 2번 핀으로 들어가는 전압이 달라집니다.  아래 회로에서 10k옴 저항은 스위치의 풀다운저항입니다. 

스위치도 물리적인 장치이니, 스위치를 작동할 때 입력 핀 쪽으로 전압이 HIGH LOW 두가지 경우가 정확히 나눠지는 것이 아니고, HIGH LOW의 상태가 번갈아 나타나는 현상이 발생합니다. 이를 플로팅 현상이라 하고 이러한 현상을 해결하기 위해 저항을 추가해 줍니다. 원리는 회로 속에 남아있는 전류를 저항을 통해 - 극으로 흘려주어 전압 상태를 깔끔하게 유지하는 것 입니다. 


다음으로, 아두이노에서 예제 소스를 불러와 줍니다.



/*
  DigitalReadSerial

  Reads a digital input on pin 2, prints the result to the Serial Monitor

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/DigitalReadSerial
*/
/*
  2번 핀의 디지털 입력을 읽고, 결과값을 시리얼 모니터로 출력합니다.
*/

// digital pin 2 has a pushbutton attached to it. Give it a name:
// 디지털 2번 핀에는 푸쉬스위치가 연결되어 있습니다. 이름을 정해줍니다 :
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  // 시리얼 통신의 속도를 9600으로 지정합니다.
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  // 푸시 스위치가 연결된 핀의 모드를 입력으로 지정합니다.
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  // 입력 핀의 값을 읽어옵니다.
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  // 버튼의 상태를 시리얼 모니터에 출력합니다.
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
}


이번 예제 코드에는 아래의 명령어들이 추가되었습니다.

  int pushButton = 2;

int는 여러 변수의 종류 중 정수형 변수를 지정할 때 붙이는 것입니다.
정수형 변수로 그 이름을 pushButton이라 정하고 이 pushButton 정수형 변수의 값이 2라고 지정된 것입니다.


  Serial.begin(9600);

Serial 통신을 사용하기 위해 아두이노와 PC 사이의 통신 속도를 지정해야 합니다.
기본적으로 9600을 많이 사용합니다.


  int buttonState = digitalRead(pushButton);

buttonState라는 정수형 변수의 값을 digitalRead(pushButton)으로 지정합니다.

digitalRead(pushButton)는 괄호()안에서 언급된 핀의 디지털 신호를 읽어옵니다.
pushButton 변수의 값이 2였으니, 2번핀의 디지털 신호를 읽어온다는 뜻입니다.


  Serial.println(buttonState);

Serial 통신 기능의 명령어 중 하나입니다.
괄호() 안의 값을 시리얼 모니터에 띄워줍니다.



위 강좌를 모두 익혀 시리얼 모니터로 디지털 값을 읽어올 수 있으면, 직접 작품을 제작할 때 회로를 구성한 후 각 스위치 등 센서들이 정상작동을 하는지 시리얼 모니터를 통해 확인할 수 있습니다.




[추가 설명]

위 코드를 보면 그 어떠한 함수에도 속해있지 않는 제일 상단의 int 변수와 loop()함수 내부의 int 변수가 있습니다.

변수를 지정해주는 int의 위치에 따른 차이점이 존재합니다.

제일 상단, 어떠한 함수에도 속해있지 않는 int 변수는 전역변수로서 해당 스케치 내부에 어디서든 그 값을 불러올 수 있습니다.

그러나 loop()함수 내부에서 지정된 int 변수는 지역변수로서 loop()함수 외의 다른 함수에서는 그 값을 불러올 수 없습니다.



시리얼 통신의 명령어는 여러가지가 있습니다.

여러 값들을 옆으로 나란히 나열하고 싶은 경우에는 Serial.print 명령어를 사용합니다.

위 예제에서 사용된 Serial.println은 줄 바꿈 기능이 들어있는 명령어로, 괄호()안의 내용을 출력한 후 줄 바꿈을 해 줍니다.
그에반해 print 명령어는 줄 바꿈 없이 이전의 내용 옆에 쭉 이어서 출력됩니다.



setup() 함수에서 pushButtonpinModeINPUT으로 설정하였습니다.

위 아두이노 회로도를 보면 풀업저항으로 10k옴 저항을 사용하고 있습니다.

위와 같이 회로도에서 풀업저항으로 플로팅 현상을 제거하는 방법 외에도, 소프트웨어적으로 아두이노에서 pinModeINPUT_PULLUP으로 지정해 주면 풀업저항을 장착하지 않고 플로팅 현상을 제거할 수 있습니다.



[강좌] 5. 아두이노 내장 LED 제어하기


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

5. 내장 LED 제어하기


보통 소프트웨어 교육을 시작하면 "Hello World"를 출력하는 방법을 먼저 가르쳐줍니다.
아두이노 프로그램 자체에 내장되어있는 예제에서도 첫번째 예제는 시리얼 모니터로 아날로그 센서의 값을 읽어오는 것이 있지요. 

하지만 본 강좌에서는 일반적인 아두이노 교육에서 가장 먼저 배우는 LED 제어를 알려드립니다.

이번 강좌에서는 아두이노에 자체 내장된 LED를 제어할 것으로, 추가적인 회로 구성은 필요하지 않습니다. 
아두이노와 PC를 연결시키고 포트를 잡아줍니다.


아두이노에서는 13번 핀과 내장 LED가 연동되어있습니다.

이말은 즉슨, 아두이노 코드를 짤 때, 13번 핀에 굳이 회로를 만들지 않고도 코드를 짜면 아두이노 보드에 있는 LED가 작동됩니다.


아두이노 우노 ( Arduino UNO ) 보드를 기준으로 빨간 표시된 위치에 LED가 있습니다.


아두이노와 PC를 USB 케이블로 연결 후 아두이노를 켜 줍니다.

본 강좌에서는 아두이노 프로그램에 내장되어있는 예제 소스들을 분석하는 방식으로 강좌를 진행합니다.



일단 예제 파일에서 1.Basic -> Blink 를 열어줍니다.


Blink 예제를 열어주면 아래와 같은 소스가 열립니다.
/* */으로 이루어진 주석 부분에는 해당 예제에 대한 간단한 설명이 들어있습니다.



/* 
깜빡임
LED를 1초간 킵니다, 그리고 1초간 끕니다, 반복적으로.
대부분의 아두이노는 제어가 가능한 LED가 내장되어 있습니다. UNO 보드 MEGA보드, ZERO보드에 13번 디지털 핀으로 내장되어 있습니다. MKR1000보드의 경우 6번 핀에 연결되어 있습니다. 
~중략
더 많은 보드들의 LED가 내장된 핀 번호를 알고 싶으면 아두이노 사이트를 참고하라고 합니다.
~중략
*/
/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.
  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/
// 셋업 기능은 보드에 리셋 버튼을 누르거나 보드에 파워를 넣으면 한번만 작동됩니다.

// the setup function runs once when you press reset or power the board
void setup() {

  // LED가 내장된 핀 번호를 출력 모드로 설정해 줍니다.

  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}
// 반복 기능은 계속 영원히 반복됩니다. 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  // LED를 킵니다.  HIGH 는 전압의 정도를 나타냅니다.
  delay(1000);                       // wait for a second
  // 잠깐 기다려줍니다.
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  // LED의 전압을 LOW로 하여 꺼 줍니다.
  delay(1000);                       // wait for a second
  // 잠깐 기다려줍니다.
}



굉장히 기초적인 코드입니다.

LED_BUILTIN 이라는 핀을 출력모드로 정하고, 반복구문에서 LED_BUILTIN 핀에 전압을 높여주고 1초간 쉬었다가 전압을 낮춰주고 1초간 쉬는 작업을 반복합니다.



지난 강좌에서 setup() 함수와 loop()함수에 대해 설명하였기에, 본 강좌에서는 해당 내용을 언급하지 않고 새로이 등장한 명령어에 대해 설명하겠습니다.

위 코드에서 아래 명령어들이 새로 등장하였습니다.

pinMode(LED_BUILTIN, OUTPUT);
  보통 setup()함수에서 pinMode(핀번호, 모드); 의 형태로 사용합니다.
  핀번호에서 지정된 핀이, INPUT 인지 OUTPUT 모드인지 지정할 때 사용합니다.

  위 코드에서는 LED 출력을 위해 사용한 핀이라 OUTPUT 모드로 지정되어있습니다.

  UNO 보드를 사용한다면 LED_BUILTIN을 13 으로 수정해주면 됩니다.

digitalWrite(LED_BUILTIN, HIGH);
  디지털 출력을 담당하는 명령어입니다.
  digitalWrite(핀번호, 상태); 의 형태로 사용합니다.

  위 코드에서는 LED에 불을 키고 끄기 위해 LED_BUILTIN을 UNO보드를 사용한다면 13으로 바꿔줍니다.  전압의 상태를 0과 1 또는 LOW와 HIGH로 조절합니다.

  LED를 키고 끄기 때문에 위 소스에서는 HIGH 와 LOW 가 반복적으로 사용되고 있습니다.

delay(1000);
  1초간 잠시 기다려주는 명령어입니다.
  digitalWrite명령어 사이에 사용되어, LED에 전압을 인가한 후 1초간 기다려주는 목적으로 사용되고 있습니다. 
  
  delay(시간); 형식으로 사용되며, 시간 단위로는 ms(밀리세컨드)를 사용합니다.
  1초의 지연을 위해서는 1000을 입력해 주어야 합니다.


본 예제에서 언급된 새로운 코드 3가지를 이용하여 LED를 더욱 다양하게 제어할 수 있습니다.

다음 강좌에서는 1. Basic 예제의 DigitalReadSerial에 대해 설명해 드리겠습니다.

[강좌] 4. 아두이노 코딩의 기초


무작정 보고 따라하며 배우는 아두이노 강좌입니다.

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



4. 아두이노 코딩의 기초


미리 C 언어 등 다른 프로그래밍 언어를 익히신 분이라면 아두이노 코딩은 쉽게 할 수 있습니다.

C언어와 같이 아두이노는 절차 지향 언어입니다.
절차 지향 언어란 프로그램이 물 흐르듯이 순차적으로 위에서 아래로 진행되는 방식이고, 이 방식에서는 문제의 해결 순서를 절차적으로 표현하여야 합니다.

아두이노를 첫 프로그래밍으로 접하신 분이라면 절차지향이든 뭐든 용어가 어렵게 느껴질 수 있습니다.

실제 코딩은 다음 강좌부터 예제 파일을 분석하며 진행할 것으로 아직은 걱정할 것이 없습니다.

이번 시간에는 코딩을 하기 위한 가장 기초, 아두이노에서의 코딩 규칙(?)이라 할 수 있는 정해진 틀을 알려드립니다.


먼저 아래 이미지를 보면 새 스케치를 생성한 후 아두이노의 모습입니다.

setup()loop() 가 미리 생성되어 있죠.
이 셋업과 루프함수가 기본 틀이라고 생각하시면 됩니다.


아두이노를 비롯한 모든 코딩에서는 꼭 지켜야 하는 사항이 있습니다.

바로 ;(세미콜론) 과 { } 중괄호 인데요, 각 명령 뒤에는 세미콜론이 필수로 붙어야 하고, 모든 함수들은 중괄호로 시작과 끝을 지정합니다.  세미콜론을 붙이지 않거나, 함수의 시작과 끝 그 중 하나를 지정해 주지 않는다면 제대로 컴파일 되지 않으므로, 가장 중요한 기초적인 부분이라고 볼 수 있습니다.

세미콜론과 중괄호를 넣는 부분은 뒤의 강좌에서 예제를 살펴보며 이해하도록 합니다.


- setup()

// 한번만 실행시킬 셋업 코드를 여기 넣으세요

이 setup() 함수는 보드에 전원이 공급되고 딱 한번 작동하는 함수입니다. 
이 함수에 변수들을 시작값으로 정해주는 코드,  시리얼 통신의 경우 통신속도를 지정, 해당 핀의 입/출력 모드 선택 등등 수많은 용도로 사용할 수 있습니다.

예를 들어 13번 핀은 입력으로 선언하고 12번 핀을 출력으로 선언한다면 다음과 같은 코드가 필요합니다.

pinMode : 핀의 입/출력을 설정하는 함수입니다.  pinMode(핀번호, 입/출력); 과 같이 사용합니다.  

이 코드에서도 알 수 있듯이, setup()이라는 함수 뒤에 중괄호로 { 시작 표시가 되어있습니다. 그리고 코드가 끝나는 시점에 중괄호로 } 끝 표시가 되어있지요. 그리고, 각 코드의 끝에는 세미콜론이 붙어 있습니다.  


- loop()

// 반복 실행시킬 메인 코드를 여기 넣으세요

이 loop() 함수는 setup() 함수 이후에 메인으로 처리해야 할 코드들을 담는 곳입니다. 

setup() 함수가 실행되고 난 후, loop() 함수의 윗부분부터 차례대로 한줄씩 코드가 진행되며 loop() 함수 내의 마지막 코드가 실행되고 나면 다시 위에서부터 반복합니다. 
계속 반복한다고 하여 loop 라고 부르는 것입니다.



[강좌] 3. 아두이노 IDE 기본 사용법


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



3. 아두이노 IDE 사용방법


IDE란?  IDE를 처음 들어보신 분도 있으실 겁니다.
IDE는 [Integrated Development Environment] 의 약자로 한문장으로 요약하자면, 효율적으로 소프트웨어를 개발하기 위한 통합개발환경 소프트웨어 어플리케이션 인터페이스입니다.

저번 강좌에서 설치했던 프로그램은 코드를 작성하여 아두이노 보드에 쉽게 업로드 할 수 있게 도와주니 아두이노 IDE(통합개발환경)이라고 할 수 있습니다. 


이번 강좌에서는 지난 강좌에서 설치한 아두이노 IDE를 사용하는 방법에 대해 알아보겠습니다. 무작정 보고 따라하는 강좌이니 각 항목에 대한 자세한 설명보다는 어떤 기능을 하는 항목인지 간단히 소개만 하도록 하겠습니다.

해당 강좌에서 사용된 아두이노 버전은 1.8.5 입니다.


먼저, 아두이노 IDE의 사용자 인터페이스는 어떻게 생겼는지 확인해 볼까요?




1. 메뉴

  아두이노 프로그램의 메뉴는 파일(File), 편집(Edit), 스케치(Sketch), 툴(Tools), 도움말(Help)로 이루어져 있습니다.

  - 파일 (File)



    새 파일 : 말 그대로 새로운 아두이노 스케치를 생성합니다.

    열기 : 기존의 아두이노 스케치를 불러옵니다.

    스케치북 : 기존에 스케치한 것을 모아 놓은 곳입니다. 

    예제 : 기초 아두이노 스케치들의 예제를 모아 놓은 곳입니다. 
LED 깜빡이기, 서보모터 제어하기 등등 수많은 기초 예제들이 있으니, 이 예제들을 이해하면 아두이노는 어렵지 않습니다.

    페이지 설정 : 인쇄를 위한 설정입니다. 한글, 워드와 같은 문서의 프린트 설정과 유사합니다.

    인쇄 : 아두이노 스케치 코드를 인쇄합니다.

    환경설정 : 아두이노 프로그램의 환경설정에서는 스케치북의 저장경로, 글자크기 등 여러 설정을 변경할 수 있습니다.


- 편집 (Edit)



    기본 기능은 여러 프로그램의 편집과 같습니다.
    
    포럼용으로 복사 : 아두이노 프로그램에서의 코드를 포럼에 업로드하기 좋게끔 색상까지 복사하여 줍니다.

    HTML로 복사 : HTML을 사용하여 글을 업로드할 때 보기 좋도록 편집해 줍니다.

    Go to line : 해당 줄로 이동합니다.

    주석추가/주석삭제 : 프로그램에서 주석이란 부연설명과 같습니다.  설명하는 내용이 코드로 인식되지 않도록 특정 표시를 해 주는 것입니다.    
아두이노에서는 보통 글 앞에 "//"를 달아주거나 글 앞뒤에 "/*" "*/" 를 달아 줍니다.

    Increase/Decrease Font Size : 글자 크기를 조절합니다.

    찾기... : 코드 중 검색한 내용을 찾아줍니다.


- 스케치 (Sketch)



    확인/컴파일 : 고급언어 ( 인간이 알아볼 수 쉽게 작성된 프로그래밍 언어 ) 를 기계가 알아볼 수 있게끔 기계어로 번역하여 주는 기능입니다. 컴파일을 통해 코드에 오류가 없는지 확인해 볼 수 있습니다.

    업로드 : 프로그램을 컴파일하고, 연결된 아두이노로 업로드 합니다.

    프로그래머를 이용해 업로드 : 일반 업로드와 달리 외부 프로그래머를 사용하여 장치에 코드를 업로드 할 경우 사용합니다.

    컴파일된 바이너리 내보내기 : 아두이노에서 부트로더 없이 ISP를 이용하여 바로 프로그램을 올릴 수 있는 .HEX 파일을 내보냅니다.

    스케치 폴더 보이기 : 윈도우 탐색기를 열어 스케치가 위치한 폴더를 열어줍니다.

    라이브러리 포함하기 : 라이브러리 헤더 파일을 가져옵니다.

    파일 추가... : 파일 내용을 스케치 코드에 추가합니다.


- 툴 ( Tools )



    자동 포멧 : 난잡하게 적힌 코드들을 자동으로 정렬해 줍니다.

    인코딩 수정 & 새로 고침 : 잘못된 작업을 다시 원래대로 돌릴 때 사용합니다.

    시리얼 모니터 : 아두이노와 시리얼 통신을 할 때 사용하는 모니터입니다.

    시리얼 플로터 : 시리얼 모니터보다 보다 시각적으로 변화하는 값을 확인할 수 있게 그래프를 그려주는 툴 입니다.

    보드 : 현재 사용하는 보드의 종류를 선택합니다.

    포트 : 현재 사용하는 보드가 꽂힌 포트 번호를 선택합니다.

    프로그래머 : 아두이노를 업로드할 프로그래머를 선택할 수 있습니다.

    부트로더 굽기 : 해당 프로그래머의 부트로더를 구울 수 있습니다.


- 도움말 ( Help ) 


아두이노 프로그램을 사용하며 참고할 수 있는 여러 도움말 정보입니다.



2. 아이콘


아두이노에는 주로 사용하는 기능들을 아이콘으로 지정하여, 매번 메뉴장에서 찾아서 실행해야하는 번거로움을 줄여 줍니다.

왼쪽부터 순서대로 6개의 아이콘이 있습니다.

1. 컴파일 : 코드를 기계어로 번역하고 오류가 있는 내용을 찾아줍니다.

2. 업로드 : 코드를 컴파일하고 아두이노에 업로드합니다.

3. 새파일 : 새 스케치를 열어줍니다.

4. 열기 : 기존의 아두이노 파일을 불러옵니다.

5. 저장 : 현재 스케치를 저장합니다.

6. 시리얼 모니터 : 아두이노와 시리얼 통신을 할 때 사용합니다.



3. 메세지 & 콘솔



아두이노에서도 타 개발환경과 같이 메세지 창과 콘솔 창이 존재합니다. 

메세지 창에서는 컴파일 결과, 업로드 진행상황을 볼 수 있습니다.

콘솔 창에서는 아두이노 보드에서 전송하는 메세지나 코드에 대한 결과값, 혹은 코드에 오류가 있다면 어떤 오류인지 자세한 내용을 보여줍니다.



[강좌] 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 (설치) 버튼을 눌러 설치를 마무리 해 주면 됩니다.
설치 버튼을 누르기 전, 아두이노를 설치할 경로를 지정하는 창이 뜹니다. 아두이노 설치 경로에 한글도 된 파일명이 존재하면 이후 소스 업로드에 오류가 발생할 수 있어 주의합니다.

구글 블로그 네이버 검색 노출 방법


국내 최대 포털사이트인 네이버에서 운영하는 블로그는 구글 블로그와 다르게 많은 사람들이 쉽게 글을 찾을 수 있습니다.

반면에, 구글 블로그를 시작한다는 것은 네이버 검색 시 검색결과에 뜨지 않습니다.

모두들 각자의 이유가 있어 편리하고 접근성이 뛰어난 네이버 블로그를 사용하지 않고 구글 블로그를 사용하는 것일 텐데요, 이러한 구글 블로그도 네이버 검색결과에 띄울 수 있습니다.



네이버 검색결과에 구글 블로그 게시글을 띄우기 위해 사용할 도구는 네이버 웹마스터 도구 입니다.

http://webmastertool.naver.com 의 주소로 들어가서 회원가입 혹은 로그인을 해 주세요.




이제 게시글을 노출시킬 사이트를 추가해 줘야합니다.

사이트 추가 버튼을 눌러주세요.




사이트 정보를 입력하는 창이 나오면 블로그 주소를 입력해 줍니다.




그 이후에는 사이트가 본인 사이트가 맞는지 확인하는 절차가 진행됩니다.

구글 블로그의 소유 확인 방법으로는 HTML 태그를 테마 html에 추가하는 방법을 사용합니다.

HTML 태그를 복사하여 블로그 테마 HTML의 <head> 색션 아래에 붙여 주세요.




이후 사이트의 소유 확인이 완료되면 게시글을 등록해 줘야 합니다.

요청 항목의 웹 페이지 수집을 클릭해 줍니다.




 웹 페이지 수집 항목에서 각 게시글의 블로그 주소 뒤 상세주소를 입력해 주면, 네이버 검색 결과에 구글 블로그 게시글이 뜨게 됩니다.






Genie 3D 프린터 업그레이드


기존의 지니 3D 프린터에는 정면, 윗면 도어가 장착될 구멍만 있고, 실제로 도어는 존재하지 않았습니다.

이번 업그레이드를 통해 PC 판을 이용하여 정면, 윗면 도어를 만들어 주고, 정면 도어에는 자석 원터치 빠찌링을 장착하여 보다 편리하게 문을 고정하고 여닫을 수 있게 하였습니다.

또한, 기존의 벨트 수평이 맞지 않던 문제를 추가 구조물을 장착하여 벨트 수평을 맞춰 줬습니다.

왼쪽 이미지의 빠찌링을 정면 도어에 사용하였습니다. 원터치 자석 빠찌링으로 금속으로 된 부품이 빠찌링에 닿으면 붙어있는 것을 기본으로, 빠찌링을 눌러서 문을 톡 튀어나오게 할 수 있습니다.



위 원터치 차석 빠찌링을 전면판에 ㄱ자 철판을 이용하여 고정할 수 있도록 제작하였습니다.



PC판에 금속 부품을 부착한 후 사용중인 모습입니다.
문을 자석에 붙힌 후 누르게 되면, 위 사진처럼 닫힌 모습이 됩니다.
문을 열때는 투명한 판을 안으로 꾹 눌러주면 딸깍 하고 문이 톡 튀어나옵니다.



Genie 3D 프린터의 정식 발매 전 수많은 테스트 중, 프린터 품질을 더욱 향상시킬 수 있는 방법으로 개선하였습니다.

기존의 방식에서도 벨트의 장력만 팽팽하게 조여 준다면, 프린터 품질은 만족할 수 있는 편이였으나, 젤트 장력을 조절하는 것에 실패하면, 진동에 의해 출력물 표면이 출렁이는 현상이 발생합니다.

 기존의 벨트는 왼쪽 사진과 같이 수평이 맞지 않는 구조로 되어 있습니다. 최대한 콤팩트한 기기 크기에 최소한의 제조단가로 제작하다 보니 생긴 문제점입니다.

벨트가 살짝 틀어져 있어도 대형 프린터가 아니라, 출력물에 큰 오차는 없습니다.
 이 벨트 수평 조절을 통해 더 쉬운 장력조절과 출력물의 표면 진동을 줄이기 위해 벨트 수평을 잡아주는 부품을 출력하여 장착하였습니다.

SK8 부품의 볼트와 같이 고정되어 2개의 MF105 플렌지 베어링이 사용되었습니다.

작동 결과는 이전보다 헤드의 진동이 줄어들어 표면이 더욱 더 깔끔하게 출력됩니다.







저렴한 가격에 양질의 3D 프린터를 얻고 싶으시다면 언제든 연락주세요

http://storefarm.naver.com/madeall/products/755355535

구글 블로그 테마(템플릿) 변경방법 / 나눔고딕체 적용방법


구글 블로그 ( Blogger )사용 시 블로그의 테마를 변경하는 방법입니다.
기본적으로 구글에서 제공하는 기본 템플릿이 여럿 있지만, 그 이외의 템플릿을 사용하고 싶은 사용자는 직접 제작하거나, 다운로드받은 템플릿 파일을 적용시킬 수 있습니다.

바로 본론으로 넘어가서 테마의 변경방법은 아래 순서와 같습니다.

먼저 블로거에 접속해 줍니다. Blogger.com
이후, 메인 화면에서 왼쪽 패널의 테마를 클릭해 줍니다.



테마 메뉴에 접속하면 아래와 같은 화면이 뜨게 됩니다. 외부 테마를 적용하기 전, 예기치 못한 오류가 발생할 수 있는 관계로 미리 현재 테마를 백업해 줍니다.

우측 상단의 백업/ 복원 버튼을 눌러 줍니다.



테마 > 백업/복원 탭입니다.
먼저 테마를 백업하여 위해 테마 다운로드 버튼을 눌러 현재 테마의 .xml 파일을 다운로드 받아 줍니다.

이제, 직접 제작하거나 다운로드받은 테마 .xml 파일을 아래 파일 선택 버튼과 업로드 버튼으로 올려 줍니다.

아래는 무료 템플릿 다운로드 사이트 목록입니다.




필자는 Hudson 이라는 템플릿을 다운받아 업로드하였습니다.

테마를 업로드 한 후, 모바일 화면이 비활성화 되어 있는것을 볼 수 있습니다.
모바일 테마를 활성화 시켜주기 위해서 모바일 항목 아래의 톱니바퀴를 눌러줍니다.


모바일 아래의 톱니바퀴를 눌러주면 아래와 같은 설정창이 하나 뜨게 됩니다.

아래 창에서 모바일 테마를 사용하는 것을 체크하면, 여러 테마가 선택 가능해지는데 사용할 테마를 선택해 주면 됩니다.


모바일 테마를 씌워주고 나서, 템플릿이 잘 적용되었는지 확인해 봤습니다. 확인결과, 템플릿에 본문 속 한글이 조금씩 흐릿하게 보이는 현상이 발생하였습니다.

이를 해결하기 위해서 나눔고딕 폰트를 템플릿에 적용해 주었습니다.

폰트 적용 방법은 아래와 같습니다.

먼저 테마 항목에서 HTML 편집을 들어가, <head> 태그 아래에
<link rel='stylesheet'  href='http://fonts.googleapis.com/earlyaccess/nanumgothic.css'/>
코드를 작성해 줍니다. 

이후 실제 테마에 적용시키기 위해 테마 항목에서 맞춤설정에 들어가 줍니다.


맞춤설정을 들어가면 새로운 웹 페이지가 뜨게 됩니다.
이 페이지 상단에 고급-너비조정을 클릭하면 CSS 추가 패널이 뜨게 됩니다.



해당 CSS 패널에 아래 코드를 붙여 줍니다.

body, h1, h2, h3, h4, a, div, input, p, span, td, label, select, textarea, iframe {
    font-family: 'Nanum Gothic';
}



.post-body {
    font-family: 'Nanum Gothic';
}
.Header .description, .Header h1 {
    font-family: 'Nanum Gothic';
}
.main-inner .widget h2.date-header span {
    font-family: 'Nanum Gothic';
}
h3.post-title {
    font-family: 'Nanum Gothic';
}
h3.post-title a {
    font-family: 'Nanum Gothic';
}
.sidebar .widget {
    font-family: 'Nanum Gothic';
}


글꼴이 나눔고딕체로 변경된 것을 확인할 수 있습니다.
블로그에 적용 버튼을 눌러 저장해 줍니다.

이후 적용된 테마의 위젯들을 수정하고 싶다면 레이아웃 항목에서 기호에 맞춰 수정하면 됩니다.


네이버 스토어팜 입점하기


인터넷 세상이 점점 커지고 있는 세상에서, 온라인 쇼핑의 규모도 점점 커지고 있습니다.

변화하는 세상에 맞춰 살아가기 위해 온라인 쇼핑몰 창업을 하려 합니다.

기존에 활동하던 카페에서 취미생활로 만든 것들을 판매하곤 했는데, 이 규모를 키워 정식 사업자로 수익을 창출하여 취미생활에 필요한 장비들을 구입하기 위해 작은 쇼핑몰을 개살하였습니다.

온라인 쇼핑몰의 장점은, 오프라인 쇼핑몰과 달리 판매할 사무실 혹은 가게가 필요하지 않고 가정에서도 쉽게 시작할 수 있습니다. 초기 자금이 적게 들며, 인터넷을 통한 구매자의 접근성이 뛰어납니다. 또한, 전문적으로 쇼핑몰을 운영하는 것이 아니고, 소규모로 몇개의 제품만으로 판매를 시작하는 판매자에게 유리한 프로그램입니다.

온라인 쇼핑몰을 개설하게 되면, 원활한 판매를 위해 노력해야 하는 점이 하나 있습니다. 인터넷 사용자에게 쇼핑몰과 제품을 알리는 마케팅 작업을 해야 합니다.

그래서 저는 네이버 스토어팜을 사용하여 네이버 쇼핑에 제 쇼핑몰의 상품들이 뜰 수 있도록 하였습니다. 

네이버 스토어팜의 경우 타 오픈마켓의 수수료(약 10%이상)보다 저렴한 수수료를 지불합니다.



네이버 쇼핑을 사용하는 대가로 지불하는 2%와 네이버페이를 사용하여 지불하는 수수료를 합하여도 최대 5.85%로 타 오픈마켓보다 저렴한 것을 알 수 있습니다.



그럼 이 스토어팜을 어떻게 시작해야 할까요?

온라인 쇼핑몰을 개설하는 것도 하나의 사업이기 때문에, 사업자 등록증과 같은 서류가 필요합니다.

네이버 쇼핑을 처음 시작할 때, 입점을 위해 준비해야 하는 서류는 아래와 같습니다. 
  • 사업자등록증
  • 통신판매업신고증
  • 대표자 인감증명서
  • 대표자 혹은 사업자 명의 통장

저는 경험을 바탕으로 스토어팜 개설 및 운영을 포스팅하기에, 제가 입점에 사용한 개인 사업자 이외의 항목(개인, 법인, 해외거주)에 대해서는 포스팅하지 않습니다.




해당 서류들을 관할구청에서 발급받은 후, 준비가 다 되었다면 스토어팜에 가입을 하면 됩니다.

http://storefarm.naver.com 의 주소로 접속하면 아래와 같은 화면이 뜨게 됩니다.

우측 상단을 보면 스토어 만들기 버튼을 눌러 스토어팜 계정을 생성할 수 있습니다.



스토어 만들기 버튼을 눌렀다면, 아래 창에서 원하는 방법으로 가입을 진행해 주면 됩니다.

저는 네이버 아이디와 별개로 새로운 아이디로 가입하였습니다.