아두이노 (mBlock)

[아이들과 놀기] 맥에서 mBlock을 사용하여 아두이노 (Arduino) 제어하기

여우래비 2018. 7. 29. 13:31
반응형


교육용으로 아두이노가 

최고라는 이야기를 들어왔는데 

아두이노로 하드웨어를 제어하려면 

어린이들에게는 다소 어려운 (?) 

코딩을 해야 한다.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double __var__44592_45796_47548;

void setup(){
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(5,INPUT);
    pinMode(12,OUTPUT);
    pinMode(11,OUTPUT);
    pinMode(13,OUTPUT);
    pinMode(6,INPUT);
    pinMode(8,INPUT);
    analogWrite(5,0);
    analogWrite(6,0);
    analogWrite(8,0);
}

void loop(){
    if(((digitalRead(5))==(1))){
        __var__44592_45796_47548 = 0.01;
        digitalWrite(12,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(12,0);
        _delay(__var__44592_45796_47548);
        digitalWrite(11,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(11,0);
        _delay(__var__44592_45796_47548);
        digitalWrite(13,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(13,0);
        _delay(__var__44592_45796_47548);
    }
    if(((digitalRead(5))==(0))){
        digitalWrite(13,0);
        digitalWrite(12,0);
        digitalWrite(11,0);
    }
    if(((digitalRead(6))==(1))){
        __var__44592_45796_47548 = 0.05;
        digitalWrite(12,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(12,0);
        _delay(__var__44592_45796_47548);
        digitalWrite(11,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(11,0);
        _delay(__var__44592_45796_47548);
        digitalWrite(13,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(13,0);
        _delay(__var__44592_45796_47548);
    }
    if(((digitalRead(6))==(0))){
        digitalWrite(13,0);
        digitalWrite(12,0);
        digitalWrite(11,0);
    }
    if(((digitalRead(8))==(1))){
        __var__44592_45796_47548 = 0.5;
        digitalWrite(12,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(12,0);
        _delay(__var__44592_45796_47548);
        digitalWrite(11,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(11,0);
        _delay(__var__44592_45796_47548);
        digitalWrite(13,1);
        _delay(__var__44592_45796_47548);
        digitalWrite(13,0);
        _delay(__var__44592_45796_47548);
    }
    if(((digitalRead(8))==(0))){
        digitalWrite(13,0);
        digitalWrite(12,0);
        digitalWrite(11,0);
    }
    _loop();
}

void _delay(float seconds){
    long endTime = millis() + seconds * 1000;
    while(millis() < endTime)_loop();
}

void _loop(){
}

(아이쿠야.. 보기만 해도 포기할 것 같다.)


그런데, 스크래치와 같은 블럭코딩으로 

간단히 아두이노를 제어할 수 있다는 

자료를 보고 시도해 보았다.



■ mBlock


블럭코딩으로 제어가능한 프로그램은 

아래 3가지 정도가 있다.


1. 엔트리

2. S4A (Scratch for Arduino)

3. mBlock


그 중에서 mBlock 은 

스크래치와 동일 코딩이 가능, 

스크래치로 작성한 프로그램을 업로드하여

 독립적인 하드웨어로 활용 가능하다는 점에서 

큰 장점을 가지고 있다.

(사실, 업로드가 된다는 점이 가장 큰 장점이다.)



mBlock은 중국에서 만든 블럭코딩 프로그램으로, 

자체적인 하드웨어 (mBot) 등을 사용할 수도 있으나, 

아두이노 우노도 활용 가능하다.


■ mBlock 설치하기


http://www.mblock.cc/ 로 접속하여 

아래와 같이 프로그램을 다운 받자.


1. 다운로드 클릭 및 "mBlock for PC" 클릭


2. mBlock 3 클릭


(mBlock 5는 Arduino 지원 불가)


3. Mac OS download 클릭 후 

찾기 쉬운 곳에 다운로드



데스크탑에 아래와 같이 아이콘이 생긴다.



그런데, 클릭해도 실행이 되지 않는다.


맥에서는 보안 문제로 웹에서 다운받은 프로그램에 대해

실행 제한이 걸려있다.


이 경우, 파인더 (Finder)에서 실행하면 가능하다. 

파인더에서 한 번 실행 한 경우에는,

데스크탑에서 클릭해도 실행 가능하다.


■ mBlock 설정하기



영어로 설정되어 있는 경우에는, 

언어-한국어 로 설정하면 된다.


이제 연결-아두이노 드라이버 설치 를 클릭하여 드라이버를 설치 하면, 




아래와 같이 장치가 잡힌다.



두 개 중 아래가 아두이노 우노 보드이다.


상단 바에는 연결안됨으로, 

그리고 "로보트" 를 클릭해 보면 

빨간색 불이 들어와 있다.

연결이 안되어 있다는 표시다.



연결-시리얼포트-두번째 장치를 선택하면 

아래와 같이 장치가 연결된다.



이왕 연결하였는데, 간단한 LED 제어는 해봐야 겠다.


디지털 핀으로 입력받아, 

1번 스위치 누르면 0.01초 간격으로

2번 스위치 누르면 0.05초 간격으로

3번 스위치 누르면 0.5초 간격으로

3개의 LED를 순차적으로 점등시키는 프로그램이다.


아래와 같이 하드웨어를 구성하고,





첨부와 같이 프로그램을 작성하면,


스위치에따라불빛속도조정.sb2


간단하게 LED를 제어 할 수 있다.



아이들과 실험을 위해 웹상에서 

널리 파는 픽X키트 를 구매했다.


다음 포스팅에는 키트에 들어있는 

여러가지 부품들을 활용해 보겠다.


끝.


반응형