Vim 설치



저번에 기본적으로 제공되어있는 vi로 작업을 하려고 했는데 

뭔가 자꾸 오류가나서 그냥 Vim을 설치 하기로 했다.



1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim
cs


다음의 명령어를 라즈베리에 입력해 준다.


apt는 라즈비안에서 사용하는 패키지 관리자를 의미한다.

update는 설치된 파일이나 라이브러리의 업데이트 내용이 있으면 갱신해 주는 명령어이다.

upgrade는 업데이트가 갱신된 파일이나 라이브러리를 설정하거나 설치하는 명령어이다.

그러므로 반드시 update 다음에 upgrade 명령어를 실행하기 바란다.

마지막으로 install vim이라는 명령어를 입력해주는것 만으로 vim 의 설치가 완료된다.




문법 하이라이팅 기능 추가


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
set number            " line 표시를 해줍니다.
set ai                    " auto index
set si                    " smart index
set cindent            " c style index
set shiftwidth=4      " shift를 4칸으로 ( >, >>, <, << 등의 명령어)
set tabstop=4         " tab을 4칸으로
set ignorecase      " 검색시 대소문자 구별하지않음
set hlsearch         " 검색시 하이라이트(색상 강조)
set expandtab       " tab 대신 띄어쓰기로
set background=dark  " 검정배경을 사용할 때, (이 색상에 맞춰 문법 하이라이트 색상이 달라집니다.)
set nocompatible   " 방향키로 이동가능
set fileencodings=utf-8,euc-kr    " 파일인코딩 형식 지정
set bs=indent,eol,start    " backspace 키 사용 가능
set history=1000    " 명령어에 대한 히스토리를 1000개까지
set ruler              " 상태표시줄에 커서의 위치 표시
set nobackup      " 백업파일을 만들지 않음
set title               " 제목을 표시
set showmatch    " 매칭되는 괄호를 보여줌
set nowrap         " 자동 줄바꿈 하지 않음
set wmnu           " tab 자동완성시 가능한 목록을 보여줌
 
syntax on        " 문법 하이라이트 킴"
cs


사실 vim 하나를 놓고 보았을 때 텍스트 에디터로 동작하기 때문에 윈도우에서 사용하는 메모장과 다를바가 없다.

그럼에도 불구하고 vim이 꾸준하게 사랑 받는 이유는 많은 확장성과 문법 하이라이팅 기능을 제공해주기 때문이다.

단축키가 익숙해지면 어느 텍스트 에디터보다 편리하다는 점도 있지만, 나는 아직 그 정도 까지는 아니다.


문법 하이라이팅 기능을 추가해주기 위해서

vi ~/vimrc

명령어를 터미널에 입력하자

그러면 아무것도 없는 텅텅 빈 창이 나올텐데, 거기에다가 위의 텍스트를 긁어서 복사붙여넣기 한다.

위 텍스트에서 " 는 주석을 의미한다.





문법 하이라이팅 기능이 잘 동작한다면 위와 같은 그림처럼 될것이다.

이것 외의 기능을 설명해 놓은 블로그가 많은데 구글링을 하면 이에 대한 정보를 얻을 수 있다.

문법 하이라이팅 기능에 대해서는 아래의 블로그를 참고했다.

http://norus.tistory.com/13


저작자 표시
신고

'임베디드 > 라즈베리파이' 카테고리의 다른 글

[Raspberry] Vim 설치  (0) 2017.06.11
[Raspberry] 정적 IP 할당  (0) 2017.06.11
[Raspberry] 맥에 라즈비안 OS 설치  (0) 2017.06.11

정적 IP 할당



라즈베리 파이를 연결하면 DHCP를 이용해서 IP 주소를 동적으로 할당 받게된다.

이렇게 되면 라즈베리파이에 접근하는데 있어서 불편한 점이 한두가지가 아니다.

따라서 IP주소를 고정적으로 할당하는 것이 편하다.



고정 IP를 할당하기 위해서 내부에 있는 파일을 건드려야 할 필요성이 있는데

sudo vi /etc/network/interfaces

명령어를 입력하면 ip가 저장되어 있는 파일을 열수 있다.

vi가 아니라 nano 등의 에디터로 열어도 상관없다.





파일을 수정하기 전에는 다음과 같이 설정이 되어있다.

이더넷과 무선 연결에 대해 세팅하는 의미인데, 현재는 auto로 동적 할당 받게 된다.





vi가 잘 안되서 그냥 nano로 편집했다.

여기서 수정할 곳은 auto eth0 부터이다.

위의 사진과 차이점을 잘 파악하여 변경해 주면된다.

여기서 할당되는 IP는 address 뒤에 있는 IP이며, 될수 있으면 상용IP 범위내에서 지정하도록하자.


모든 과정이 끝났으면 sudo reboot를 입력해서 라즈베리파이를 재 가동시키도록한다.





ssh로 접근했을 때 미리 설정한 IP로 접속됨을 확인할 수 있다.

ifconfig를 입력하면 IP가 바뀌어 있고 이로써 정적 IP할당이 완료된다.

저작자 표시
신고

'임베디드 > 라즈베리파이' 카테고리의 다른 글

[Raspberry] Vim 설치  (0) 2017.06.11
[Raspberry] 정적 IP 할당  (0) 2017.06.11
[Raspberry] 맥에 라즈비안 OS 설치  (0) 2017.06.11

맥에 라즈비안 OS 설치





미니 컴퓨터인 라즈베리 파이를 동작 시키기 위해서 OS(Operate System)를 설치해줘야한다.

여러가지 운영체제들이 있지만 그중에서 라즈베리파이에 최적화 된 라즈비안을 설치 하도록 하겠다.


구글에서 라즈비안이라고 검색하면 제일 최상단에 공식 홈페이지가 나온다.

홈페이지에 들어가면 바로 첫 페이지에서 라즈비안을 다운 받을수 있는데,

왼쪽은 풀 버전이며, 오른쪽은 좀더 가벼운 라이트 버전이다.


빠른 진행을 위해서 라이트 버전을 다운받았다.





라즈베리에 운영체제를 설치하기 위해서 저장 공간으로 미니 SD카드를 사용한다.

우선 미니 SD 카드를 자신의 맥에 연결하는데,

연결 후 'diskutil list' 명령어를 터미널 창에 입력하면 현재 마운트 된 장치들의 리스트를 확인할 수 있다.


여기서 SD카드는 /dev/disk3로 인식되었다.

뒤쪽의 external, physical은 외부 물리적 장치임을 뜻한다.

모든 장치가 같은 이름으로 입력되는 것이 아니기 때문에 설치 전에 꼭 확인 할 필요가 있다.


자신의 장치가 인식되었으면 언마운트를 시켜줘야하는데

'diskutil unmountDisk 자신의 장치이름' 명령어로 실행이 가능하다.

언마운트가 성공하면 Unmount of all volumes on 장치 was successful이라는 알림이 뜬다.






SD카드가 언마운트 되었으면 이미지를 SD카드에 넣어줘야한다.


'sudo dd bs=1ms if=~/Downloads/2017-04-10-raspbian-jessie-lite.img of=/dev/rdisk3'


명령어를 입력하는데 이때 주의사항은 다음과 같다.

1) if 뒤의 경로는 반드시 자신의 컴퓨터에 내려받은 이미지의 경로와 동일하게 입력해야한다.

2) of 뒤의 장치 명도 /dev/disk3가 아닌 /dev/rdisk3로 입력해야한다.


명령어를 입력하면 아무 변화 없이 터미널이 멈춘 것 같지만 이미지 입력이 진행중이므로 가만히 놔둔다

lite 버전을 기준으로 1~2분 정도 걸린것 같다.

이미지 입력이 완료되면 밑에 전송이 되었다고 알림이 뜬다.






이미지 쓰는 것이 완료되었으면 라즈베리에 SD카드를 끼운 후 외부장치를 연결해서 바로 사용할수 있다.

그러나 이러한 주변장치를 연결하기 번거로우므로 정적 IP를 설정하여 윈도우에서는 putty, 맥에서 ssh로 접근할 수 있다.


IP를 설정하기 위해서 방금 이미지를 넣어준 SD카드 폴더를 연다.

여기서 cmdline이라는 텍스트 파일을 열어서 IP를 할당해야한다.





파일을 연 다음 가장 마지막 줄에 자신이 원하는 ip를 입력해 주면 된다.

이제 맥에서 SD카드를 뽑고 라즈베리에 연결하여 부팅해주면 정상적으로 동작하는 것을 볼 수 있다.

이와 같이 IP를 설정 할 경우 컴퓨터에서 라즈베리로 이더넷 케이블을 직접 연결 하는 경우만 ssh로 접근이 가능하다.



저작자 표시
신고

'임베디드 > 라즈베리파이' 카테고리의 다른 글

[Raspberry] Vim 설치  (0) 2017.06.11
[Raspberry] 정적 IP 할당  (0) 2017.06.11
[Raspberry] 맥에 라즈비안 OS 설치  (0) 2017.06.11

시리얼 통신



시리얼 통신이란 통신의 방법으로 직렬 통신이라고도 부른다.

이유는 한개의 통신선을 따라 한 비트씩, 시간의 흐름에 따라서 전송되기 때문이다.







직렬통신은 속도가 느리지만 통신거리가 길다는 장점이있다

(병렬은 이와 반대)

시리얼 통신은 RX(수신), TX(송신) 핀이 필요한데, 아두이노 우노 기준으로

디지털 0번핀이 RX(수신), 디지털 1번핀이 TX(발신)이다.


오늘은 PC와 아두이노의 통신 예제를 다루어 볼 것이다. 

USB 커넥터에 RX/TX핀이 모두 연결되어있기 때문에 USB로 통신을 하면 된다.

별도의 회로 구성은 필요없다.

다만 다른 기기와 중복 통신이 발생할 수 있으므로 RX/TX핀의 사용을 자제하자.





소스코드(시리얼 에코)



먼저 시리얼 통신에 사용되는 주요 함수를 살펴보자


Serial.begin() : 보드와 디바이스와의 통신 주파수를 맞춰주는 작업이라고 생각하면 된다. 

보레이트는 기준 값들이 있으므로 마음대로 숫자를 넣으면 안된다.

Serial.available() : 버퍼를 읽어온다고 설명되어있으나 if문과 함께 사용되어 버퍼에 데이터가 있는지 확인하는 용도로 많이 사용된다.

Serial.read() : 버퍼 내부 데이터를 읽어온다.

Serial.write(var) : 디바이스로 데이터를 보낸다.





 

1
2
3
4
5
6
7
8
9
10
11
12
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}
 
void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available()){
    Serial.write(Serial.read());
    }
}
 
cs



다음은 시리얼 에코(Echo) 소스이다.

PC에서 보낸 데이터를 보드에서 그대로 반환하여 다시 PC로 전송한다.






이를 아두이노 IDE에 입력 후 보드에 업로드한다.

이후 오른쪽 상단의 돋보기 버튼을 누르면 통신창이 나온다.







통신창은 아래위로 나뉜다.

전송 버튼 옆쪽의 텍스트 창은 자신이 보드에 보낼 텍스트를 입력하고

아래쪽 큰 화면은 보드에서 보낸 메세지를 출력한다.

또한 오른쪽 하단에 보레이트를 설정할 수있다. 초기에 보레이트 설정 시, 이를 참고하면 된다.





예제 실행




전송창에 보낼 텍스트를 입력하고 전송버튼을 누른다.





보드로 전송되었다가 다시 PC로 출력되는 것을 확인할 수 있다.


시리얼 통신을 활용하여 가장 많이 사용하는 것은 바로 ADC,

바로 센서값이다.

센서값을 눈을 볼 수 없기 때문에 보드에서 센서값을 숫자로 바꾸어 PC로 출력하게 된다.

다음 예제는 ADC 컨버팅, 센서값에 출력에 대해 다루어 보겠다.

저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19

아두이노 인터럽트


아두이노는 setup과 loop 함수로 이루어져 있다.

loop함수는 계속 순환하며 내부의 코드들을 실행한다.

그렇다면 이러한 순환구조를 탈출하여 비정기적으로 발생하는 이벤트를 어떻게 처리할까

답은 바로 인터럽트이다.


인터럽트의 사전적 정의는 방해하다/중지시키다 이다.

이와 마찬가지로 아두이노에서의 인터럽트도 실행중인 loop를 중지시키고

서브 프로시저를 실행후 다시 메인으로 복귀하는 구조를 가진다.







즉 위의 그림과 같은 순환 구조를 가지게 되는것이다.

이를 쉽게 설명하자면, 철수가 책을 읽는다고 가정할 때,


철수가 책을 읽는다(메인함수) -> 엄마가 철수를 부른다(인터럽트 발생) -> 책갈피를 꽂는다(복귀주소 저장)


->엄마의 심부름을 한다(이벤트 함수처리) -> 책갈피에 있는 책을 펴고 책을 읽는다(메인함수 복귀)


다음과 같은 구조로 인터럽트 함수를 처리하게 된다.







아두이노 뿐만아니라 AVR MCU같은 경우 인터럽트를 사용할 수 있는 핀이 정해져있다.

우노는 위의 그림에서 보듯이 2번(INT 0), 3번(INT 1)을 사용할 수 있다.

그러므로 추후에 작품설계 시, 인터럽트 핀에 대해 고려해야 한다.






핀배치는 간단한다

앞서 실습한 LED ON/OFF와의 차이점은 스위치의 입력핀이 2번핀으로 옮겨졌다는것 뿐이다.

바로 소스코드를 보도록 하자





 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int led = 7;
int btn = 2;
boolean state = false;
 
void setup() {
  pinMode(led, OUTPUT);
  pinMode(btn, INPUT_PULLUP);
  attachInterrupt(0, isr, CHANGE);
 
  digitalWrite(led, LOW);
}
 
void loop() {
  delay(1000);
}
 
void isr() {
  if (state == false) {
    digitalWrite(led, HIGH);
    state = true;
  } else {
    digitalWrite(led, LOW);
    state = false;
  }
}
 
cs


우선 소스내부에서 짚고 넘어가야 할 함수가 있다.

바로 attachInterrupt 이다.


attachInterrupt(PIN, ISR(Interrupt Service Routine), mode)


1.PIN

2/3번은 각각 0번(INT 0), 1번(INT 1) 인터럽트 핀이다

따라서 자신이 어떤 인터럽트 핀을 사용할 지 정한 후 인자를 명시해 주면 된다.


2. ISR(Interrupt Service Routine)

인터럽트 함수를 등록해야한다.

예제소스에서는 isr이 인터럽트 함수이다.

이때 등록한 함수는 인터럽트 실행시 수행되며, 직접 작성한다.


3. MODE

어떤상황에서 인터럽트를 동작시킬지 선택한다.

모드는 크게 4종류가 있다.

FALLING : 하강 엣지 시 인터럽트 발생

RASING : 상승 엣지시 인터럽트 발생

CHANGE : 상태가 변할때마다 인터럽트 발생

LOW : 신호가 LOW일 때 인터럽트 발생


이 3가지를 모두 입력하여 인터럽트 함수를 등록하면,

소스 업로드 후 이벤트가 발생하였을 때 인터럽트 함수가 정상적으로 동작하는것을 확인 할 수 있다.


저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19

LED ON/OFF


이번에는 스위치로 입력을 받아 LED를 켜보도록 하자

스위치는 가장 간단한 INPUT이다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int led = 7;
int btn = 6;
int state = 0;
 
void setup() {
  pinMode(led, OUTPUT);
  pinMode(btn, INPUT);
}
 
// the loop function runs over and over again forever
void loop() {
  state = digitalRead(btn);
 
  if (state == HIGH) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }
}
 
cs

 

소스코드는 다음과 같다.

처음 소스에서 버튼과 버튼의 상태를 나타내는 변수만 추가되었다.

setup에서는 입출력에 대한 설정이 완료되었다.(입력 - 7번핀, 출력 - 6번핀)

이후 loop를 돌며 조건문으로 버튼의 상태를 확인하여 led를 ON/OFF하게된다.









핀배치는 다음과 같다. 

스위치는 다리가 4개이다.

각각의 다리는 대각선으로 연결이 되어있으므로 대각선 방향으로 

한쪽은 Ground(0v), 한쪽은 Data pin(5v)을 연결해 주면 되겠다.







스위치는 또다른 고려사항이 있는데 바로 바운싱이다.

스위치의 접점이 닫히거나 열릴 때 아주 짧은 시간동안 접점이 닿히거나 열림으로 인해

노이즈가 발생한다.

이로 인해 원치 않은 인터럽트나 HIGH/LOW 변환이 발생하게 되고

스위치 인식에 장애가 생긴다.






이러한 바운싱을 잡아주는 것을 디바운싱이라고 하며

소프트웨어와 하드웨어적인 방법으로 해결할수 있다.

위의 회로는 하드웨어적인 디바운싱 방법이다. 캐페시터를 이용하여 충/방전되어

스위치의 바운싱을 잡아준다.

일단, 여기서는 바운싱의 고려 없이 스위치만으로 회로를 구현해 보았다.







실제로 회로를 구성했을때 LED가 잘 깜빡이는 것을 확인할 수 있다.

동영상 찍기전에 회로가 단순하여 노이즈를 잡아줄 수 없어서 그런지

많은 떨림이 관찰되었다.

캐패시터가 없어서 따로 회로를 구성하지 못하였지만 정확한 동작을 위하여

회로의 보강이 필요한 것 같다.



스위치 바운싱 출처 :

http://studymake.tistory.com/344


 

저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19

LED ON/OFF


C언어를 처음 배울 때 콘솔창에 "Hello World"를 출력하듯이

MCU(마이크로 컨트롤러)의 기본 기능인 IO(Input/Output)을

LED를 통하여 확인해보는 것이다.







우선 기본 예제를 통하여 LED를 켜보도록 하자.

파일 -> 예제 클릭시 여러개의 예제항목이 나온다.

여기서 Basic -> Blink를 로드하자.

Blink는  내부 LED 깜빡이 예제이다.






 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}
 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
 
cs


예제는 위와 같다.

우선 setup부터 살펴보자.

pin의 상태를 설정해준다. pinMode에 의해 13번 핀이 출력으로 설정된것을 볼 수 있다.


다음은 loop이다.

13번핀을 HIGH상태로 설정하고 1초뒤에 다시 LOW상태로 변경한다.

이를 통해 LED는 1초 간격으로 깜빡이게 된다.







즉, 다음과 같이 전류가 흐르게 된다.

HIGH에서 다음 HIGH 상태까지의 간격은 1초이다.

그렇다면 13번 핀의 LED의 확인을 위해 배선 해야하는걸까.







아두이노를 확인해보자

전면부의 붉은 원안의 LED를 보자.

13번 핀은 위의 붉은 원 안의 LED와 연결되어 있다.

따라서 13번 핀으로 신호를 줄 경우 붉은 원의 LED가 깜빡이게 된다.

따라서 별도의 배선을 할 필요가 없다.







실제 아두이노로 업로드 완료시 사진이다.

13번핀이 켜졌다






내부의 LED를 켜보았으니 외부에서 회로를 구성하여 LED를 켜보도록 하자.

출력핀으로 디지털 7번 핀을 사용한다.


여기서 주의해야 할 점은 LED가 극성이 있다는 것이다.

보통 긴쪽이 (+), 짧은쪽이 (-)이다

다리가 짧아 확인 하지 못한다면 LED 머리를 확인해본다

안쪽의 쇠가 작으면 (+), 크면(-)이다.


핀 배치는 다음과같다.






여기서 LED 옆에 저항이 왜 달려야 하는 걸까.

보통  붉은색 5파이 LED의 경우 정격 전압이 2V 내외이다.


아두이노는 핀을 출력으로 설정 했을 시 HIGH에서 5볼트를 내보낸다.

따라서 있는 그대로 LED를 달아버리면 버티지 못하고 터지거나

버틴다고 해도 수명이 짧아지는 부작용이 있다.

따라서 저항을 부착함으로써 안정인 밝기와 수명을 보호하는 효과가 있는 것이다.


중학교 과학시간에 배운 옴의 법칙(V = IR)으로 계산하면 입력전압이 5V일 때

사용해야하는 저항의 값을 금방 구할 수 있다.

이 때, 저항의 값을 계산한 것보다 조금 크게 잡는것이 안정적이다.





 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(7, OUTPUT);
}
 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
 
cs


코드도 처음과 별반 다르지 않다.

핀의 셋팅만 7번으로 바꾸어 주었다.






LED가 켜지는 모습

LED Blink, 잘 동작한다.


저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19

Arduino IDE 설치



IDE(Intergrated development environment)는 통합 개발환경을 뜻한다.

예를 들어 Visual studio나 Eclips같은 통합적 프로그래밍이 가능한 환경이다.

우리는 Arduino 공식 홈페이지에서 제공해주는 IDE를 사용할 것이다.


공식홈페이지의 주소는 아래와 같다.

https://www.arduino.cc/






IDE설치




먼저 아두이노 공식 홈페이지에 접속한다.

상단의 카테고리 중 Download를 클릭,






오른쪽을 확인하며 여러 OS에 따라 다운로드 할 수있다.

윈도우의 경우 Installer를 선택, 다운로드 하면 알아서 설치해주는 실행파일이 다운된다.






다운로드 클릭을 하면 다음과 같은 화면이 뜬다.

이는 다운로드하기위해 돈을 내라는 뜻이 아니라 기부금을 설정해 달라는 말인데

Just Download 클릭시 기부 없이 다운로드가 가능하다.

이클립스를 포함하여 일부 해외 사이트의 경우,

다운로드 클릭 시 기부금과 관련된 내용이 출력되는 경우가 종종있다.






 다운받은 인스톨 파일을 실행후 열심히 Next를 클릭하여 설치해준다.

이후, 바탕화면의 아두이노 실행 버튼을 누르면 IDE가 정상 동작하는 것을 확인할 수 있다.





알아 두어야 할 것




1


아두이노를 처음 실행시키고 setup과 loop 두개의 함수가 덩그러니 놓여있다.

이 함수들은 아두이노를 이루는 가장 기본적인 함수이다.

(C 언어의 main이라고 생각하면 간단할수 있으나 조금 다르다.)


우선 Setup은 프로그램 실행시 내부의 코드가 딱 한번만 실행된다.

설정을 위한 함수라고 생각하면 된다.


두번째로 loop는 말그대로 무한대로 loop를 돌며 내부의 코드들을 실행하게 된다.

loop는 main함수라고 할수 있으며 반복문의 사용하지 않고 반복을 실행할 수있다.


loop를 빠져나오려면 인터럽트 등의 이벤트를 사용해야하는데 추후에 설명하도록 하겠다.

프로그램 실행시 함수의 실행은 다음과 같다.


setup(1번) -> loop(무한)





2


다음은 IDE에 자신이 사용하는 보드의 종류와 port를 설정하는 것이다.




포트 종류와 보드가 일치하지 않거나 설정이 되지 않으면,

자신의 코드가 보드로 업로드 되지 않으니 주의한다.


보드종류는 자신이 구입한 보드의 전면부에 적혀있고,

포트의 경우 자동으로 탐색해주니 선택만 하면된다.


저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19

아두이노



아두이노는 2005년 이탈리아 디자인 학교에서 마시모 벤지를 주축으로

학생들이 제어가능한 디자인 작품을 쉽게 제작하기 위해 만들어진 마이크로 컨트롤러이다


아두이노의 메인 칩셋은 아트멜 AVR 계열이며 라이브러리를 제공함으로써

프로그래밍에 어려움을 느끼는 일반인들도 쉽게 프로토타이핑을 할 수 있는 장점이 있다.



아두이노



아두이노의 장점


1. 저가 : 아두이노는 오픈 소스 하드웨어 플랫폼이므로 회로도가 일반에게 공개 되어 있다.

따라서, 아두이노 호환보드의 경우 저가형은 1만원 미만의 가격에 구입할 수 있다.


2. 크로스 플랫폼 : 아두이노 소프트웨어는 윈도우 뿐만아니라 여러 운영체제에서 동작한다.

또한, 프로그래밍도 아두이노에서 제공하는 툴이외에 이클립스, Visual Studio에서 개발할 수있다.


3. 간단함 : 개발자가 아닌 디자인 스쿨 학생들이 프로토타이핑을 하는 목적으로 제작 되었기에,

별다른 지식 없이 간단한 C언어의 문법만 습득하고 있다면 손쉽게 프로그래밍이 가능하다.


4. 오픈소스 : 초기 제작 당시 HW/SW 모두 오픈소스로 제공 되는것을 목적으로 하였다.

따라서 여러 개발자들의 라이브러리를 이용할 수 있으며 이를 사용하여 폭 넓은 개발이 가능하다. 



이중 아두이노의 가장 큰 장점은 단연코 간단함이라고 할 수 있겠다.

일반적인 8비트 AVR과 비교하였을 때 IO기능만 하더라도

데이터 시트로 내부 구조를 확인하고 레지스터의 이름과 설정을 해야하지만

아두이노는 간단한 몇개의 명령어로 손쉽게 동작을 구현할 수 있다.


이러한 장점으로 인해 아두이노는 현재 가장많이 사랑받는 보드이며

가장많이 사용되는 교육용 보드라는 타이틀을 모두 거머쥐고 있다.

저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19

+ Recent posts

티스토리 툴바