자파리 :: 마이크로비트 블록코딩 어떻게 시작하지?
반응형

[머리말]

최근 코딩의 핵심 키워드는 블록 코딩이다.

스크래치나 엔트리같은 프로그램을 사용하여 블록을 쌓아가듯이 프로그램을 하는 것을 말한다.

필자의 블로그에서는 아주 초심자의 입장에서(필자가 그렇다) 코딩에 입문하는 과정을 써 보려고 한다.

그래서 어려운 것은 과감히 생략하거나 건너 뛰고 실전 위주로 써나가려고 하며 쓰다가 실패를 하더라도 가감없이 그대로 쓰고자 한다. 필자의 실패 경험을 토대로 독자들은 더 발전할 수 있을 것이기 때문이다.

[도입]

자....우선 필자가 이 글을 쓰기 전에 어떤 착오가 있었는지 먼저 말해야 겠다.

많은 초보자들은 코딩을 검색하거나 들은 풍월로 아두이노를 먼저 생각하는 경우가 많다.

그래서 그냥 사 보았다. 시작하는 사람들을 위한 킷(선들이랑 이것저것 체험할 수 있게 들어 있다)을 구매하여 책도 읽으면서 일주일 정도 공부하다가 심각한 결점을 발견하게 되었다. 

필자는 스크래치를 통해 블록코딩을 공부하였고 컴퓨터와 연결을 시키면 아~주 기본적인 것은 구동이 가능하지만 아두이노는 블록코딩을 고려하고 만들어진 기계가 아니기 때문에 호환성이 낮다는 것을 알 수 있었다.

즉 이런 것이다.

1. 텍스트 코딩을 할 수 있다면 프로그램을 아두이노에 주입시켜놓아서 전원만 연결하면 컴퓨터와 연결할 필요 없이 아두이노 자체가 작은 컴퓨터 역할을 수행한다.

2. 텍스트 코딩을 할 수 없다면 기본적으로는 아두이노에 코딩을 심어서 단독 작동을 할 수 없다. S4A라는 프로그램을 써야 블록코딩과 컴퓨터연결을 통해 아두이노를 제어해 볼 수 있고 mblock이라는 중국산 프로그램을 써야 아두이노에 코딩을 심어 놓아서 단독 작동을 시킬 수 있는데 기능도 매우 제한적이게 된다. 

이 단계에서 매우 좌절한 필자는 미개한 과학 발전에 대하여 욕을 하면서 다른 방법이 없는지 찾아보았다.

필자는 텍스트 코딩이라는 것이 어떤 것인지 대충은 알고 있다. 약30년전쯤 컴퓨터학원에서 C언어라는 것으로 도형그리기 같은 것을 해보고 토나올뻔 했던 기억이 난다. 익숙해지면 쓸 수 있지만 까먹기도 쉽고 초보자에게 그렇게 친숙한 환경이 아니다. 당연히 지금은 다 까먹었지.

왜 우리는 프로그래밍을 그렇게 어렵게 배워야 할까?

많은 이유가 있겠지만 필자가 생각하기에는 우선 컴퓨터언어(C언어)라는 것은 기본적으로 영어를 기본으로 하고 있다. 

또한 c언어라는 것은 서로간의 약속이기 때문에 띄어쓰기, 오타를 허용하지 않으며 약속한 장소에 약속한 구문을 넣어주어야 하고 이것을 외우고 있어야 한다.

자 그럼 내가 시언어를 한번 영어로 만들어 본다고 치자.

circle red 255,210 r30 t2

원을그리는데 빨간색으로그리고 좌표는 255,210에서 시작해라. 반지름은 30이고 두께는 2다. 이런식으로 약속을 했다면 세상의 모든 사람은 이 순서를 외우고 있어야 한다. 

한국이 세상을 지배해서 한글로 c언어 만들어 졌다면 어땠을까?

직사각형 검은색 0,0 길이20,10 두께2...............

끄아악!!! 아 이것도 똑같이 돌아버릴 것 같다.

만들고 싶은 것은 많은데 컴퓨터 언어는 싫다!!!!

빌게이츠가 윈도우를 만들기 전에는 모두가 도스를 썼다. 그렇게 해서 정보와 기술의 독점은 줄어들었고 그 혜택을 우리가 보고 있는 것이다.

블록 코딩은 단순히 초등학생에게 논리적 사고를 기르고 텍스트코딩에 입문하기 위한 과정이 아니라고 생각한다.

결국 텍스트 코딩은 사라지고 블록 코딩과 같이 윈도우와 같이 그래픽 유저 인터페이스를 사용하는 프로그램이 그 자리를 대체할 것이다. 그리고 우리는 그 과도기에서 기술이 덜 성숙된 시점에서 공부를 시작하는 것이므로 ...아 그런데 왜 글이 이렇게 길어졌지....아무튼 구입한 마이크로비트 소개를 시작한다.

필자가 구입한 부품 LCD모듈, 보드, 건전지넣는 소켓, GPS, 확장보드다. 약 45,000원이 들었다.
전원 부분을 유심히 보자 에지 접속기라는 번역이 나오는데 아래에 설명하겠다.
당연한 설명을 길게 하고 있다.

에지 접속기라고 번역된 것은 마이크로비트에서 그...머랄까 게임팩 꼽을때 그 접속부위 처럼 생긴 부분?(게임충이라 설명해도 이렇게 밖에 안된다) 그 부분을 말하는 것이다. 마이크로비트는 3가지 방식으로 전원 주입이 가능한데 컴퓨터 USB포트 같은 곳에서 많이 쓰는 핸드폰충전기선을 통해 충전하는 방법, 건전지 2개를 직렬연결해서 3볼트를 공급하는 방법, 엣지 접속하는 방법이 있다. 

그런데 자파리를 많이 하셨던 분들은 이런 의문이 생길 수 있다.

컴퓨터 USB포트의 출력 전압은 5볼트인데 마이크로비트은 3볼트를 사용하고 있지 않나? 설명서대로 그냥 꼽아도 괜찮을까? 필자도 그런 의문이 생겼다. 정전압 레귤레이터가 있다면 모르지만 이 작은 보드에 그런게 달렸나? 생각이 들었기 때문이다. 거기에 대한 설명은 아래의 긴 영문 글이 설명하고 있지만 요약하자면 괜찮다는 것이다.

Power to the micro:bit can be provided by 3 sources: The USB, the battery connector, and the 3V pad on the edge connector.
For USB powering, the KL26 interface processor has an on-board regulator that brings the external USB voltage into the correct range for the micro:bit board.
A low-Vf diode (in this case about 0.23V max) is used to switch between sources. The diode prevents back-powering of any source from any other source.
Care should be taken if powering the micro:bit from the 3V pad on the edge connector, as the trace from that pad is connected directly to the IC’s on the board. Please check the datasheets for the appropriate IC’s for their maximum tolerable voltages.

3볼트가 기본이라는 것은 상당히 필자의 입장에서는 거슬리는 부분이다.

USB도 그렇고 무선조종장치의 수신기 전압도 기본이 5볼트이기 때문이다. 기계 장치에 부착할때는 전압부분에서 케이블을 새로 만든다던가 하는 작업이 필요해질 것 같다.

전원을 연결하면 마이크로비트 엘이디에 불이 들어오면서 간단한 게임을 할 수 있나보다.
홈페이지를 통해 블록에디터 프로그램을 실행해보라고 꼬드기는 글이다.

아래의 영문글은 마이크로비트의 스펙을 보여주는 것이다.

엘이디가 기본장착에 블루투스랑, 가속도계, 자력계, 온도계 뭐 그런게 된다는 거다.

Hardware

 

  • Overview
  • Getting Started With the micro:bit Hardware
  • Schematics
    • Edge Connector
    • LEDS 9 x 3
    • Interface
    • Sensors
    • Power Supply
    • Application Processor
  • Hardware Description
    • nRF51 Application Processor
    • Bluetooth Wireless Communication
    • Low Level Radio Communications
    • Buttons
    • Display
    • Accelerometer
    • Magnetometer
    • Temperature Sensing
    • General Purpose Input/Output Pins
    • Power Supply
    • Interface
    • USB Communications
    • Debugging
    • Mechanical

 

자. 모든 준비는 끝났다. 죽이되든 밥이되든 이제는 실전이다.

반응형
Posted by 드워프의 자파리
: