마이크로비트로 8X8 도트매트릭스를 연결하여 간단하게 제어 하는게 목표다. 정확하게 말하자면 64개의 도트를 켰다 껐다 하는것이다. 이걸 하는 최종 목표는  HT16K33 IC를 이용하여 문자를 도트맥트릭스로 보여주는 것이다.


 언제나 그랬듯이 동영상을 보자

<마이크로비트로 제어하는 8X8 도트매트릭스 동영상>


 8X8 도트매트릭스 핀 사진과 DATASHEET는 아래와 같다.

<8X8 도트매트릭스 실제 사진>


<8X8 도트매트릭스 데이터시트 사진>

처음 연결할 때 혼동이 조금 있었다. 핀의 위치를 정확하게 기억하자.


---------------------------------------->

13 14 15 16 17 18 19 20 21 22 23 24

12 11 10 09 08 07 06 05 04 03 02 01

<----------------------------------------


핀의 위치를 해석해 보면

1      -> 2        -> 3     -> ...... 

ROW -> GREEN -> RED -> ......


마이크로비트는 연결할 수 있는 핀의 개수가 제한되어 있어 24개 전부 연결 할 수 없다. 그래서 ROW PIN 8개와 COL PIN 8개(그린)만 사용한다. 지금은 단색으로만 제어 하고, 나중에 HT16K33 IC를 이용하여 24개 제어하여 3가지 색을 제어할 것이다.




이제 마이크로비트에 8X8 도트매트릭스를 연결해 보자

<마이크로비트와 8X8 도트매트릭스 연결 사진>


<fritzing으로 표현한 연결 사진>

 사진이 보이는 것 처럼 마이크로비트, 8X8 도트매트릭스, 브레드보드, 브레이크아웃 보드 아탑터, 점퍼선이용하여 연결해 준다.


 중요한 사실! 처음에 마이크로비트 0, 1, 2핀을 빼고 3부터 사용하여 20번까지 이용하여 제어를 시도 하였으나 col1에 해당하는 부분에 불이 안들어 오고 두 줄씩 켜지는 문제가 발생 했다. 


마이크로비트    8X8 도트매트릭스

P19 SCL  -----> 22 

P20 SDA -----> 23


 도트매특릭스 22, 23 핀은 1행과 1열에 관련된 핀으로 마이크로비트 P19, P20에 해당되고, 이 핀들은 I2C 통신에 관련한 핀들이다. 그래서 나중에 


마이크로비트    8X8 도트매트릭스

P0         -----> 23 

P1         -----> 22


변경하여 연결하였다.


 8X8 도트매트릭스를 제어를 위한 연결은 다 됐다. 블록 코딩을 해보자.

<블록코딩 #1 사진>


<블록코딩 #2 사진>

microbit-8X8도트매트릭스 (2).hex

 간단한 예제순차적으로 64개의 도트ON/OFF 하는 것이다. 그러나 기존 블록으로는 원하는대로 도트매트릭스를 제어 할 수 없다. 그래서 블록이 아닌 필요한 부분만 javascript로 직접 코딩하여 작업 했다. 회색으로 나온 블록들이 그런것들이다. 걱정할 필요 없다. 그냥 몇개만 더 써주면 되는것이니까!!!!!! 


 잠깐! 블록을 보고 의문이 들 것이다. DigitalPin.P1...... 순서대로 쓰면 되지 왜 번호가 뒤죽박죽일까?? 이유는 간단하다. P1, P2 순서대로 쓸려니 처음 마이크로비트와 도트매트릭스를 연결할 때 이것저것 생각해가면서 연결해야 하고, 잘못 연결하면 찾기도 불편하다. 그래서 핀은 순서대로 연결하고 프로그램상에서 마춰주기로 했다. 훨씬 편하고, 문제가 생겼을 때 금방 찾아서 고칠 수가 있다


 1행 1열에 있는 도트를 ON 할려면 

R1의 값은 1

C1의 값은 0 으로 설정하면 된다. 반대로 하면 OFF가 된다.




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
let cols: number[]
let rows: number[]
rows = [DigitalPin.P1, 
        DigitalPin.P3, 
        DigitalPin.P15, 
        DigitalPin.P5, 
        DigitalPin.P13, 
        DigitalPin.P7, 
        DigitalPin.P11, 
        DigitalPin.P9]
cols = [DigitalPin.P0, 
        DigitalPin.P4, 
        DigitalPin.P16, 
        DigitalPin.P6, 
        DigitalPin.P14, 
        DigitalPin.P8, 
        DigitalPin.P12, 
        DigitalPin.P10]
led.enable(false)
basic.forever(() => {
    for (let indexRow = 0; indexRow <= 7; indexRow++) {
        pins.digitalWritePin(rows[indexRow], 1)
        for (let indexCol = 0; indexCol <= 7; indexCol++) {
            pins.digitalWritePin(cols[indexCol], 0)
            basic.pause(500)
            pins.digitalWritePin(cols[indexCol], 1)
            basic.pause(500)
        }
        pins.digitalWritePin(rows[indexRow], 0)
    }
})
 
cs

javascript는 참고!


그럼 하트를 표현 할려면 어떻게 해야 할까?? FND나 도트매트릭스에 항상 따라다니는 것이 있다. 스태틱 제어다이나믹 제어다. 아래의 동영상 마지막 부분에 보면 밝지는 않지만 다 켜진것처럼 보였을 것이다. 빠르게 ON/OFF 하여 항상 켜진 것처럼 보이는 잔상 효과를 이용한게 다이나믹 제어다. 

<전류가 부족하여...... 동영상>


몇개의 핀으로 도트매트릭스를 제어할 수 있는  HT16K33 IC를 알리에서  주문해 놨다. 

https://www.aliexpress.com/item/5pcs-lot-CJMCU-HT16K33-LED-Dot-Matrix-Drive-Control-Module-Digital-Tube-Driver/32688435492.html?spm=a2g0s.9042311.0.0.HHKFFa


기다리면서 관련 라이브러리와 부족한 전류를 해결 할 수 있는 방법을 찾아봐야 겠다.

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

2018.02.27 추가 사항

 정상적으로 도트매트릭스의 도트가 밝게 출력 될려면 회로를 구성해야 함. 회로 구성하지 않고 하면 전류가 모자라 도트가 흐리게 출력 됨


BI-COLOR 8X8 DOT MATRIX를 가지고 아두이노와 마이크로비트로 제어를 해볼려고 한다.


BI-COLOR 8X8 DOT MATRIX 특징은 빨강색, 녹색 LED를 통하여 빨강색, 녹색, 주황색 3가지를 표현할 수 있다. 


목표

-------------------------------------------------------------------------------------------------------------------------

1. IC를 사용하지 않고 쌩으로 아두이노와 마이크로비트로 제어 한다.

   IC를 사용하지 않기 때문에 아두이노 우노와 마이크로비트로 단색만 표현 가능하다.


   아두이노 우노 + 8X8 도트매트릭스 <- 아두이노 메가로 제어 하는걸로 함.

   마이크로비트  + 8X8 도트매트릭스 <- 완료


2. 생으로 아두이노 메가로 3가지 색을 제어 한다.

   메가는 핀수가 많다.

   아두이노 메가 + 8X8 도트매트릭스 


3. MAX7219 IC를 사용하여 제어 한다.

   1개로는 단색만 제어할 수 있고 3가지 색을 표현하려면 2개로 제어 해야 한다.


4. HT16K33 IC를 사용하여 제어 한다.

   18X8까지 제어 가능한 IC다. 


5. 도트가 밝게 출력될 수 있도록 회로 구성 한다. <- 2018.02.27 추가

-------------------------------------------------------------------------------------------------------------------------


4번 부터 1번 순으로 하면 그래도 쉽게 쉽게 진행될거 같은데...... 그러나 알리에서 어제 주문해서 시간이 걸린다. 3주 동안 1번부터 해야 할 거 같다. 그러면서 배우는 거니까^^. 목표를 해결하는 과정에서 나온 결과물을 정리하면 꽤 괜찮은 컨텐츠가 될거 같다.

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

 오늘은 마이크로비트서보모터제어하여 무선으로 전등을 켜고/끄는 IOT 제품흉내 내볼까 한다. 항상 그래 왔듯이 동작하는 동영상을 먼저 보자. 흉내를 내는 것이기 때문에 깔끔하게 조립하지는 않았다. 그냥 프로토타입이라고 생각하면 된다.


 첫번째 동영상은 전등 스위치에 장착 하기전동작이 잘되는지 확인 하는 동영상이다.

<동작 확인 동영상>


 두번째 동영상실제 전등 스위치설치하여 동작 해보는 동영상이다.

<실제 전등 스위치에 설치하여 동작 확인하는  동영상>


 세번째 동영상전등 스위치쪽 동작 확인 하는  동영상이다.

<전등 스위치쪽 테스트 동영상>


 마이크로비트 2개서보모터제어하여 전등 스위치 IOT를 흉내낸 것이다. '서보모터가 안보이는데? 그리고 동영상 속의 길고 하얀 그것은 무었일까? 그럼 저안에 서보모터가 들어있는건가?'라고 생각 할 것이다. 맞다! 그렇다! 저 안에 서보모터가 들어가 있다. 블록코딩을 하기 전에 서보모터가 들어가 있는 그것에 대해 알아 보자. 


그것은 스위처! <- 클릭


홈페이지상에 있는 제품과는 많이 다르다. 맞다. 내가 가지고 있는건 몇년전에 구매한 스위처다. 클라우딩펀드로 구매한 스위처 첫번째버전! 여자친구가 침대에 있다가 잘려고 불 끄러 갈때 잠이 깨서 휴대폰으로 끌 수 있는 제품을 찾다가 구매한 제품이다. 이외에 다른 제품도 있는데, 스위처는 전등 스위치에 붙히고 블루투스로 연결하여 편하게 쓸수 있는 제품이다. 스위치배선에 연결하는 제품은 설치가 쉽지 않아서 이 제품을 구매했다. 그러나 완벽함을 추구하는 여자친구는 가끔 블루투스가 정상적으로 연결이 안되어서 불편함을 호소하여 지금까지 내가 가지고 있었다. 그리고 마이크로비트로 전등 스위치 IOT를 흉내내 보자 해서 뚝딱 하고 마들어 봤다. 정말 뚝딱 하고 만들어 졌다.


 그럼 이제 시작해 보자. 부제인 '단지 서보모터를 제어했을 뿐인데'를~~~~~~~~ GO GO GO!


 블록코딩 하기 전스위처 안은 어떻게 생겼는지 보자! 아래 사진처럼 서보모터(SG90), 조도센서(Cds), 충전모듈(TP4065), 블루투스&MCU로 구성되어 있다. 내가 필요한건 하우징& 서보모터다! 나머지는 마이크로비트가 제공하는 기능으로 할 것이다. 

<스위처 내부 사진>


 마이크로비트와 위의 재료로 전등 스위치 IOT를 흉내 낼건지 큰 그림그려보자.

<큰 그림>



필요한 재료

마이크로비트 2대

마이크로비트 확장보드 1개

서보모터(SG90) & 스위처 하우징

보조배터리


 

<준비된 사진>


 준비는 되었다. 그럼 블록코딩을 해보자.

<송신쪽 마이크로비트 블록코딩> 

microbit-전등mb1 (2).hex

 

송신쪽 마이크로비트 블록코딩간단하다.

A버튼을 누루면 1송신

B버튼을 누루면 0송신


1 -> 전등 켜기

0 -> 전등 끄기



<수신쪽 마이크로비트 블록코딩>

microbit-전등mb2 (2).hex


 

수신쪽(서보모터 제어) 마이크로비트 블록코딩도 간단하다.


무선으로 값을 받으면 서보모터제어한다.

값이 1이면 전등 스위치 켜기

값이 0이면 전등 스위치 끄기


 마이크로비트 2개를 가지고 전등 스위치 IOT흉내 내어 보았다. 기존 제품품질이나 디자인이나 성능은 많이 차이가 난다. 왜냐면 목적 자체가 무선으로 켜고/끄기간단하게 동작 원리만 흉내낸 것이기 때문인다. 스위처 처럼 제품으로 만들려면, 비용적인 부분, 디자인적인 부분, 기능적인 부분, UX적인 부분 이외에도 많은 부분을 고려해야 한다. 어쨋든 나는 마이크로비트를 가지고 아이디어를 표현하고, 제품으로 가능성이 있는 것들전문가한테 맡겨야 겠다. 


 내일 부터 설연휴다. 재미있게 보내자!



반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

<펄러비즈 하트 사진> 

출처 : http://blog.naver.com/amin0831/220667134588

 

 사진에 보이는 것처럼 펄러비즈로 만든 하트 모양을 마이크로비트 네오픽셀 LED를 이용하여 만들어 보려고 한다.  


재료는 아래와 같다.

 * 마이크로비트 1개 

 * 네오픽셀 RGB LED 27개

 * 점퍼선 3개

 * 하트모양 아크릴 앞 뒤 한개씩

 * 고정 너트(3개)와 볼트(6개) 



완성된 것을 먼저 보자

<27개의 네오픽셀에다가 레인보우적용한 것>


<27개의 네오픽셀에다가 내가 원하는 색을 적용한 것>


첫번째화려하지만, 오늘 목표두번째다. 자 이제 작해 보자! 크게 두 부분으로 나눠서 해야 된다. 한 부분은 내가 원하는 동작을 할 수 있게 재료들연결 해줘야 한다. 즉 피지컬(물리적인) 부분이다. 다른 한 부분소프트웨어다. 내가 원하는 색으로 네오픽셀 LED동작하게 끔 마이크로비트 블록코딩을 해야 한다. 먼저 소프트웨어 부분 부터 해보자.


 

<간단하게 목표 정리한 노트>

 

 다음은 종이에 정리한 내용이다.


 * 얼굴 부분과, 눈 부분 각각 제어

   한번에 전부 제어 할려면, 눈 모양 만큼 똑같은 걸 반복해야 해서, 

   반복을 피하려고 얼굴 부분과 눈 부분을 분리하여 제어 한다.


 * 오른쪽 하트속의 숫자

   네오픽셀 위치다. 위치는 0부터 시작 하기때문에 0~26을 사용 한다.


 * 을 제어할 네오픽셀 위치

   눈의 위치는 5, 6, 8, 9, 12, 13, 15, 16다.

   00 00 ->  5  6  8  9

   00 00     1223 1516


 * 눈 모양은 8가지로 한다.

   OO OO | OO OO | OO OO | OX  XO | XO  OX | XO  XO | OX  OX | OO OO 

   XO XO  | OX  OX | OX  XO | OO OO | OO OO | OO OO | OO OO | XO  OX




종이에 정리한 내용을 가지고 블록코딩을 하자. microbit-하트 (8).hex

얼굴 부분




눈 부분

 

얼굴 부분 - face 배열 변수에는 얼굴 부분에 해당하는 네오픽셀 LED 위치가 저장되어 있다.

*얼굴색바꾸기 함수는 face 배열 변수의 있는 값을 하나씩 꺼내 그 위치에 있는 LED 색을 그린으로 설정한다.


눈 부분 - eyes 배열변수에는 눈 부분에 해당하는 네오픽셀 LED 위치가 저장되어 있으며, eyeShape 배열 변수에는 0,1로 눈 모양을 표현한 값들이 들어 있다. 예들 들면 다음과 같다.

  00 00 -> 0, 0, 0, 0 

  0X X0     0, 1, 1, 0

*눈모양바꾸기 함수는 랜덤으로 0~7 중에 한 숫자를 선택하여 눈모양을 결정하고, eyes 배열 변수와 eyeShape 벼열 변수의 값들을 가지고 눈 모양 위치에 있는 LED 색을 정해진 색으로 지정한다


<블록코딩 사진>


얼굴 부분과 눈 부분을 쉽게 제어하기 위해 배열을 사용했다. 블록코딩으로 배열은 가독성이 떨어져 코드로 아래와 같이 표현 한다.

face = [0, 1, 2, 3, 4, 7, 10, 11, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]

eyes = [5, 6, 8, 9,
12, 13, 15, 16]
eyeShape = [[0, 0, 0, 0,
1, 0, 1, 0],
[0, 0, 0, 0,
0, 1, 0, 1],
[0, 0, 0, 0,
0, 1, 1, 0],
[0, 0, 0, 0,
1, 0, 0, 1],
[0, 1, 1, 0,
0, 0, 0, 0],
[1, 0, 0, 1,
0, 0, 0, 0],
[1, 0, 1, 0,
0, 0, 0, 0],
[0, 1, 0, 1,
0, 0, 0, 0]]

 

 


이제 다른 한 부분피지컬(물리적인) 부분을 보자. 완성된 피지컬 부분은 아래 사진과 같다.

<만든어진 하트를 마이크로비트와 점퍼선으로 연견할 사진>


<하트모양 아크릴 & 네오픽셀 LED>


내가 사용한 네오픽셀은 스트립 타입이다. 그래서 옆의 사진처럼 필요한 만큼 짤라서 쓰고 이어서 쓸수 있다. 개수로 27개가 필요하다. 아크릴은 예전에 수원 셀프제작소에서 레이저로 잘라 만든 것이다. 시중에서 파는 것이 아니다...... 일단 저렇게 고정해 놓고, 잘린 부분은 선으로 이어 주면 된다.

 

<선을 연결 하기 전>


<선 연결 후>


사진에 보이는 대로 래 한줄인 네오픽셀 스트립을 필요한 만큼 잘라 하트 모양을 만들고 잘려진 부분을 으로 연결한 것이다. 네오픽셀 스트립을 이용하는 이유는 3선으로(GND, +5V, DI)로 쉽게 제어가 가능하기 때문이다.

피지컬(물리적인) 부분은 이것으로 완성이다. 


네오픽셀 LED는 사용&제어가 쉬워서 응용할 수 있는 부분이 많다. 할 수 있는 것들을 찾아봐야 겠다.

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,


사진 왼쪽에 있는 ATTINY85 모듈 WS2812B 네이픽셀 RGB를 구동해보려고 한다. 일반적으로 연결 하는 부분은 아두이노같지만, 마지막 업로드 하는 부분에서 다르다. 이전에 이런 작업을 하지 않아도 따라하면 될 만큼 써보겠다. 왜냐면, 선 행동 후 정확하게 알기 위해서다.


엄청 자세한 내용은 https://blog.naver.com/roboholic84/220388177048에서 확인 하면 된다. 나도 이 게시물을 보고 따라 했다.


일단 대략적인 과정이다

 1)프로그램 다운로드 - 일단 소스를 작성할 수 있는 프로그램다운 받자!

 2)프로그램 실행 - 설치된 Arduino IDE - Digistump Release 프로그램실행 하자! 

 3)ATTINY85 보드 설정 - 가지고 있는 ATTINY85 모듈에 맞는 보드를  선택 하자!

 4)업로드 테스트 - 첫 업로드를 해보자!

 5)ATTINY85에 업로드 - 여기부터가 일반 아두이노업로드 하는 방법과 다르니 잘 보자.

 6)네오픽셀 연결 - ATTINY85네오픽셀연결하자

 7)네오픽셀동작할 수 있는 소스작성해보자. 



1)일단 소스작성할 수 있는 프로그램다운 받자! 

    https://github.com/digistump/DigistumpArduino/releases/download/v1.5.8C/DigistumpArduinoInstall1.5


  실행파일 이므로 다운로드 받고 설치 하자!

  

2)설치된 Arduino IDE - Digistump Release 프로그램실행 하자! 

아래 사진의 아이콘을 더블클릭하여 실행 하면 된다.

<실행 사진>


3)가지고 있는 ATTINY85 모듈에 맞는 보드를  선택 하자!

   도구 > 보드 > Digispark (Default - 16.5mhz)

<Digispark (Default - 16.5mhz 선택 사진>


4)첫 업로드를 해보자!

파일 > 예제 > Digispark_Examples > Start 순으로 클릭 한다.


5)여기부터가 일반 아두이노업로드 하는 방법과 다르니 잘 보자.

일단 보자

업로드 버튼 누르고 시간이 지나면  아래와 같은 메시지표시 된다.


Running Digispark Uploader... 

Plug in device now... (will timeout in 60 seconds)


이때 ATTINY85모듈을 컴퓨터 USB에 연결 한다.


그럼 아래와 같이 동작하고


> Please plug in the device ... 

......

>> Micronucleus done. Thank you!


Thank you!가 나오면 끝 그리고 모듈에서 빤짝빤짝 빛나고 있는 LED확인 할 수 있다


이제 목표했던 네오픽셀 RGB LED를 연결할 차례다!


6)ATTINY85네오픽셀연결하자

<ATTINY85&네오픽셀 연결 사진>


사진처럼 잘 연결해 주자.

5V    - +5V

P1    - DI -> 프로그램을 작성할때 중요한 것이므로 잘 기억하자

GND - GND


7)네오픽셀동작할 수 있는 소스작성해보자. 

아래 동영상은 예전에 만들어 놨던 하트에 ATTINY85를 연결하여 LED를 동작시킨 것이다. 예제만 살짝 바꾼것이니 그냥 따라하면 된다.


네오픽셀 사용하는 방법은  빨간색으로 강조한 부분이다. 기본 설정값(1)가지고 네오픽셀 제어할 수 있는 객체만들고(2), 초기화(3) 하고, 각각의 LED의 색을 지정(4)하고, 보여 준다(4).

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson

// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

#include <Adafruit_NeoPixel.h>


// Which pin on the Arduino is connected to the NeoPixels?

#define PIN            1


// How many NeoPixels are attached to the Arduino?

#define NUMPIXELS      23


// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.

// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest

// example for more information on possible values.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


int delayval = 500; // delay for half a second


void setup() {

  pixels.begin(); // This initializes the NeoPixel library.

}


void loop() {

  // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.

  for(int i=0;i<NUMPIXELS;i++){

    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255

    pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color.

    pixels.show(); // This sends the updated pixel color to the hardware.

    delay(delayval); // Delay for a period of time (in milliseconds).

  }

}





(1)네오픽셀에 DI를  ATTINY85 P1핀연결하기 위해서 PIN1로 한다.



(1)네오픽셀 LED수를 설정 한다. 4개면 4 20개면 20으로 해준다.




(2)네오픽셀제어하기 위해 변수에 네오픽셀 객체를 만들어 저장 한다. 기본 예제는 NEO_GRB 가 아니고 NEO_RGB로 되어 있으니 고쳐 준다.



(3)초기화 한다.






(4)setPixelColor() 함수로 원하는 위치에 원하는 색을 설정한다. (5)show()함수실행하기 전까지지정한 색으로 표시 되지 않는다.  



반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,


이번에 알리익스프레스에서 구매한 GPIO 확장 보드다. 집에는 다른 종류의 확장 보드들이 있지만 심플하고 가격착하여 몇개 구매를 했다. 지인도 하나 줄겸^^ 간단하게 테스트할때는 악어클립을 이용하도 괜찮겠지만 간단한거 이외에 여러개를 연결할 경우 보드에 직접 땜질 할 경우가 아닌 이상 너무 불편하다. 그냥 보드에 땜질하는건 아무리 생각해도 아닌거 같다--.--. 싸게 구매해서 막써도 괜찮을 거 같다 ㅋ~

<BBC micro:bit GPIO Expansion board 사진>


그리고 아래사진은 마이크로비트 핀맵이다.

<마이크로비트 핀 맵 사진>

몇개의 LED랑 연결된 핀에 LED 연결하여 시험하면 제대로 동작 안되는 것들이 있으니깐 주의해야 겠다.

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

정보처리기능사 실기 알고리즘 달팽이 형 문제를 마이크로비트 웹에디터이용하여 원리이해해 보려고 한다. 정보처리기능사 실기는 문제 형태는 변하지 않았지만, 작년부터 객관식에서 주관식으로 바뀌었다. 그래서 이해를 못하면 찍지도 못하는 그런 시험이 되었다. 예전 지인에게 알고리즘 알려 주면서 프로그램언어를 이용하면 더 쉽게 이해하지 않을까 생각했었다. 그럼 마이크로비트 웹에디터로 해보자.










































<정보처리기능사 실기 알고리즘 달팽이형 문제> 


<블럭 사진>

플로우차트대로만 만들면으로 확인 할 수가 없어배열에 저장 되는 것을 시각적으로 보기 위해  이미지 변수를 하나 만들어 사용 하고 그 부분만 함수로 만들었다. 그리고 노란색으로 하이라이트 된 부분을 보자! 불록 코딩하면서 전혀 볼 수 없었던 문자들이다. 그렇다. 블록으로 표현 못하는 부분은 저렇게 문자로 표현 된다. 즉 현재 제공된 블록으로는 다 표현을 할 수 없다는 것이다. 그렇지만  처음 생각했던 대로 마이크로비트 웹에디터이용하여 더 쉽게 이해 할 수 있다.

microbit-알고리즘 (4).hex


한단계 한단계 실행하며 확인 하다 보면 금방 이해 될 것이다. 동영상으로 확인~

<실행 동영상>


그럼 한장의 사진을 더 보고 다음 질문생각을 해보자

<자바스크립트 사진>


플로우차트, 블록, 자바스크립트 중 

어느 것이 아이디어를 잘 표현할 수 있을까??

어느 것이 바로 만들 수 있을까??

어느 것이 이해가 쉬울까?? 

어느 것이 눈에 확 들어올까?? 


분명 서로장단점존재 한다. 결국은 거의 대부분 배우고 사용해야 하는데, 어떻게 하면 재미있고 쉽게 할 수 있는지는 눈에 보일것이다



반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

최근 HM-10HC-06 블루투스설정변경해야 하는 일이 생겼다.

아두이노와 블루투스가 연결 된 상황이라, 기본 제공된 코드로 아두이노를 통하여 블루투스시리얼 통신을 하여 블루투스 설정을 변경 했다.

중요한건 바꾸고 확인 할 때마다 코드수정하고 업로딩 하고 여러단계를 거치는게 한두번이야 하겠지만 나중을 생각하니 ......  귀찮다. 그래서 방법을 찾아봤다.


방법간단하다. USB TO TTL연결하여 아두이노 시리얼 모니터사용 또는 그 어떤 시리얼 통신 프로그램으로 설정을 변경 할 수 있다. 다행이도 집에 아두이노 프로미니 업로딩용 USB TO TTL이 있었다.


아두이노

*USB TO TTL을 PC와 연결

*시리얼포트 번호 확인

*아두이노 IDE에서 툴>보드 선택은 나두고 포트를 확인된 시리얼포트로 변경

 시리얼 모니터를 실행하여 블루투스 설정 변경

 -putty나 하이퍼 터미널을 이용해도 된다.


혹시나 아두이노 우노 같은 경우 TX, RX가 있어 거기에 연결해서 해봤는데 ㅋㅋㅋ, 실패다. 안된다. ㅋ





반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

본 체험 제품은 element14 의 후원을 받아 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.


이번 시간에는 마이크로비트에 대해 개인적인 생각들을 써보려고 한다. 

귀엽다. 첫눈에 작고 앙증맞은 것이 귀엽다. 개인적인 생각이다. 코니가 앞에 있어도 돼지콧구멍시선이 간다^^

<작고 앙증맞고 귀여운 마이크로비트 사진>


재미있다. 코니가 웃으면서 흔들어 주길래 나는 두손으로 흔들어 줬다^^. 돼지콧구멍에서 외계인으로 변신시켜 줬다.

<두손으로 흔들고 있는 마이크로비트>


사진으로 보기엔 아쉽다. 그래 동영상으로 보자

<두손 흔드는 마이크로비트 동영상>  microbit-getting-started (1).hex



간단하고 쉽다. 두손 흔들고 있는 외계인 마이크로비트를 LED로 표현하기 위해서 마이크로비트 홈페이지접속하고, 코드 만들기 페이지로 들어가 블럭을 만들고, 다운로드 하여 마이크로비트에 복사하기만 하면 끝이다. 기본적으로, 따로 따로 제어할 수 있는 25개의 LED 불빛들프로그래밍 가능한 2개의 버튼하드웨어 확장 가능 핀센서와 온도 센서들, 움직임 센서들(가속도 센서와 나침반(자기) 센서), 라디오(Radio)와 블루투스 (Bluetooth)를 이용한 무선 통신 기능이 제공되어 내가 생각한 것들어려움 없이 만들 수가 있다.


재미있는 만보기 - 아래의 기능을 하는 만보기를 만든다고 가정해 보자!(만들어 올릴 예정^^)

 * 버튼을 눌러 만보기의 기능을 시작 

 * 가속도 센서를 이용하여 움직일 때마다 숫자를 증가

 * 특정 숫자에 도달하면 응원하는 음이나 LED로 표현, 

 * 버튼을 눌러 현재 얼마만큼이나 걸었는지 확인

마이크로비트는 당장이라도 뚝딱뚝딱 만들어서 밖으로 나가 제대로 동작하는걸 확인 할 수 있다! C언어 같은 프로그램 언어를 모르더라도 말이다. 만약에 자바 스크립트파이썬을 사용하고 싶다면, 블록코딩에서 아쉬운 몇%를 채울 수가 있어서 더욱 좋다^^.


아래의 사진은 재단 소개페이지다. '마이크로비트 교육 재단은 비용리 조직으로서 전 세계의 어린이들이 학교교육/모둠활동/집에서 컴퓨터과학기술을 활용해 창의성을 키우고 디지털 지식과 활용 능력들을 키울 수 있도록 하는 것을 목표로 하고 있습니다.'  위의 재미있는 만보기의 예처럼 아이디어를 마이크로비트를 통하여 현실로 만들수 있도록 도와 주는게 마이크로비트 교육재단의 목표이다.

<마이크로비트 소개 및 목표 사진>


돈이 많이 든다. 단품으로도 충분히 기능들 활용하여 아이디어를 표현할 수 있다. 그러나 기본으로 제공하는 것 이외에 것들을 마이크로비트로 만들려고 하면 추가적인 확장부품들을 구매를 해야 한다. 이건 다른 개발 보드도 마찬가지 이지만, 솔더링이나 전기, 전자에 대한 지식이 부족한 아이들에겐 이미 만들어져 있는 확장 보드를 구매를 해야 한다. 비싸다 ㅠㅠ. 


금전적인 부분에 있어서 단점(다른 개발 보드도 마찬가지)이 있지만, 마이크로 비트귀엽재미있고 간단하고 쉬워 코딩교육아이디어를 표현 할 수가 있어 좋은 제품이라 생각 한다. 



마이크로비트 공식 구입처 아이씨뱅큐 http://www.icbanq.com/
엘리먼트14 특장점 - 글로벌 전자부품 유통회사, 6만원 이상 무료배송, 60만가지 재고 보유, MOQ 없음한글 웹사이트국내서비스센터 운영(http://kr.element14.com/?CMP=DSP-ODB-KR-JAN2018-BLOG-ICBanQ1-HOMEPAGE)
마이크로비트 공식 카페 : http://cafe.naver.com/bbcmicro
아이씨뱅큐 공식 블로그 : http://blog.naver.com/icbanq


반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

본 체험 제품은 element14 의 후원을 받아 아이씨뱅큐㈜ 에서 진행하는 무상 체험단 활동으로 작성한 것입니다.

코딩교육을 위한 마이크로비트 사용자모임

마이크로비트 홈페이지


개봉기에 이어 첫번째 사용기를 올려 본다. 

블록코딩은 체험단 활동을 하기 전부터 잘하는건 아니지만 스크래치엔트리를 통해 바로바로는 아니지만 자료를 찾아가면 할 수 있는 정도는 알고 있다. 다행이도 지인과 같이 체험단 활동을 하게 되어, 둘이서 할 수 있는 2인용 가위바위보 게임을 만들어 보았다. 처음부터 바로 만들기에는 무리가 있어 워밍업으로 마이크로비트 공식 홈페이지에 있는 '팀 가위 바위 보' 진행 하기로 했다.


<팀 가위 바위 보 사진> microbit-팀가위바위보.hex


대규모 멀티플레이어 가위 바위 보 게임은 모든 플레이어들이 동시에 흔들면, 바위(rock), 보(paper), 가위(scissors) 를 나타내는 번호와 아이콘이 모든 플레이어의 화면에 나타나게 된다. 가장 많은 개수가 나온 플레이어가 이기게 되는 게임이다. 따라하면서 '라디오 수신하면 실행'하는 부분에서 문제가 생겨 잠신 고민했지만, 해결 됐다.(기본적인 라디오 블록을 알고 했다면 쉽게 해결 할 수 있는 부분임)


워밍업을 끝났고, 2인용 가위바위보를 만들기 시작

<규칙 사진>


블록 코딩하기 전에 지인과 몇가지 규칙을 정해서 해야 하는데, 간단하다. 자기만의 스타일로 게임 결과를 표시 한다.(나는 이모티콘으로, 지인은 영어문자로) 그리고 라디오 통신할때 주고받는 숫자에 대한 정의 정도이다. 기본 블록코딩만 공유해서 사용하고 나머지는 각자 블록코딩을 하기로 했다.


<공유된 블록 코딩사진> microbit-2인용가위바위보_기본.hex


잘안되면 고생이고, 한번에 되면 너무 좋고! 짜장면 내기도 했다! 그럼 바로 시작!

<최종 완성된 블록 코딩 사진> microbit-2인용가위바위보_최종.hex


위 사진에서 보면 이김, 비김, 짐을 판단하는 부분과 결과를 표시 하는 부분이 지인과 다른 부분이다.  다음은 실제 게임 동영상이며, 누가 내기에 이겼는지는 동영상을 보기 바란다!.


<실제 동작-내기 동영상>


처음 계획아크릴로 캐릭터 케이스를 만들고, 지인3D프린터케이스를 만들어 개성넘치는 가위바위보 게임을 보여 주려고 했다. 상황이 바뀌어 마이크로비트 본품으로만 진행된 것이 아쉬운 부분이다. 아쉬움을 뒤로 하고 이쯤해서 사용기를 마친다.


코딩교육을 위한 마이크로비트 사용자모임

마이크로비트 홈페이지


마이크로비트 공식 구입처 아이씨뱅큐 http://www.icbanq.com/
엘리먼트14 특장점 - 글로벌 전자부품 유통회사, 6만원 이상 무료배송, 60만가지 재고 보유, MOQ 없음한글 웹사이트국내서비스센터 운영(http://kr.element14.com/?CMP=DSP-ODB-KR-JAN2018-BLOG-ICBanQ1-HOMEPAGE)
마이크로비트 공식 카페 : http://cafe.naver.com/bbcmicro
아이씨뱅큐 공식 블로그 : http://blog.naver.com/icbanq



반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,