본 체험 제품은 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



반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

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

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

마이크로비트 홈페이지


지인과 함께 신청하여 같이 무상 체험단 활동을 하게 되었다. 아이씨뱅큐에 감사의 마음을 전한다. 마이크로비트를 처음 만저보는건 아니지만, 이벤트로 다시 만나보니 좋다^^


마이크로비트 제품을 받기까지 이런저런 일들이 있었다. 동의서 회신을 shop@....으로 하고, 제품 받을 주소가 잘못 전달되어 다른 체험단 분들보다 늦게 받았다. 그래서 고생 아닌 고생을 했지만, 기분은 좋다^^. 


아이씨뱅큐로 부터 온 택배를 뜯어 보면 '즐거운 체험 기간이 되기를 바라며' 안내문구와 함께 제품이 들어 있다. 

<개봉 사진>


아래는 예전 구매했던 마이크로비트 단품 포장이다.

<다른 포장>


핑크는 이번에 받은 마이크로비트!

아래그린은 예전에 직접 구매했던 마이크로비트!

<색이 다른 두개의 마이크로 비트>


4가지의 색이 있다고 하는데...... 다 가지고 싶다 ㅠㅠ. 4개를 산다고 서로 다른 색의 마이크로비트가 있다고 생각하면 오산!

왜냐면 제품은 랜덤배송이기 때문에!!!!!!!


포장이 풀면 마이크로비트 본체, 배터리 홀더, 배터리, USB케이블, 메뉴얼이 들어 있다.

<제품 구성 사진>


미본 순살 과자는 마이크로비트와 크기를 비교하려고 넣은 것이다. 절대 제품안에 과자와 칼은 들어 있지 않다. ㅡ.ㅡ

이번 체험단에 제공한건 마이크로비트 스타터 키트다. 단품에 밖에서도 사용할수 있도록 배터리홀더와 배터리가 포함된 것이다. 처음 구매하는 분이라면 단품보다는 키트추천한다.  제품 상세 구성 정보는 아래 링크를 통해 알 수 있다.


단품 <-클릭

마이크로비트 스타터 키트 <-클릭

ElecFreaks 마이크로비트 스타터 키트 <- 클릭



마이크로 비트는 다음과 같은 특징을 가지고 있다.(마이크로비트 사이트에 있는 내용 가져옴)

더 자세히 <- 클릭

따로 따로 제어할 수 있는 25개의 LED 불빛들

프로그래밍 가능한 2개의 버튼

하드웨어 확장 가능 핀

센서와 온도 센서들

움직임 센서들(가속도 센서 나침반(자기) 센서)

라디오(Radio) 블루투스(Bluetooth)를 이용한 무선 통신 기능

USB 인터페이스 


간단하게 마이크로비트 개봉기와 특징을 알아 봤다. 아두이노비슷한 보드사용했던 분들이라면, 꽤 괜찮은 보드다라고 생각 할 것이다. 그래 괜찮다. 처음 시작하는 아이부모입장에서 보면 어려움 없이 재미있게 창의성, 논리적 사고력, 수학적 해결능력, 문제의 분석능력, 판단력과 컴퓨터 언어의 구성과 이해력의 종합적인 능력배양 할 수 있을거라 생가한다.


개봉기라 마이크로비트 LED를 이용하여 옆으러 흘러가는 문자를 만들어 봤다. 글자 내용ICBanq, element14, http://bonghanwith.tistory.com 다. 그냥 단순히 후원자를 위한 거다^^.



소개.hex업로드 하는 방법 <- 클릭

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

마이크로비트 홈페이지


마이크로비트 공식 구입처 아이씨뱅큐 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


반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

일단 무슨 기능인지 결과를 먼저 보자

<기능 추가한 동영상>

그렇다. 그냥 뺑글뺑글 도는 기능 추가한 것이다. 소스 코드에는 여러가지 흔적이 있지만 그냥 이걸 보여주는 걸로 만족 ㅋ


아래는 작업 과정이다.

이랬던 뒷면이 

<오크통뱅크 상판 뒷면_작업 하기전>

이렇게 바뀌었다. --.--

<오크통뱅크 상판 뒷면_작업 후>

막손이라 정리가 잘 안된다. <- 잘 안된거 숨기기 위해 글씨는 작게......


원래 오크통네오픽셀아두이노 나노가 들어갈 자리는 없다. 그런데 들어가 있다. 이유는 간단하다.

처음 배터리팩과 오크통을 구매할 당시 어거지로 넣다가 뺄수도 없고 완벽하게 넣을 수도 없는 중간에

걸린 상황이 되어 눈물(ㅠㅠ)을 머금고 오크통을 분해 했다. 조립하는 과정에서 공간을 만든다고 바닥을

아래의 사진처럼 만들었다.

<오크통뱅크 바닥>


분해된 오크통 재활용 하다보니 공간이 남아서 아두이노 나노를 넣을수 있었다. 그러나 꽉 찬다...... 


이제 소스 코드를 보자!

기본에 있는 예제 소스를 기본으로 몇개 추가 하고 수정 했다.


#include <Adafruit_NeoPixel.h>

//#include <MsTimer2.h>

#ifdef __AVR__

  #include <avr/power.h>

#endif


#define PIN 6


// Parameter 1 = number of pixels in strip

// Parameter 2 = Arduino pin number (most are valid)

// Parameter 3 = pixel type flags, add together as needed:

//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)

//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)

//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)

//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)

//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

Adafruit_NeoPixel strip = Adafruit_NeoPixel(13, PIN, NEO_GRB + NEO_KHZ800);

uint32_t oakStrip[13] = {strip.Color(0,255,0) //초록색

                        ,strip.Color(0,255,0)       //단색으로 돌릴대는 이부분 수정해 주면 된다. 적어도 앞 부분에 5개 정도 색을 지정해야

                        ,strip.Color(0,255,0)       //이쁘게 나온다.

                        ,strip.Color(0,255,0)

                        ,strip.Color(0,255,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

                        ,strip.Color(0,0,0)

};

int onStrip[13] = {1,1,1,1,1,0,0,0,0,0,0,0,0}; //

int currentPos = 10;

int fade = 2;


// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across

// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input

// and minimize distance between Arduino and first pixel.  Avoid connecting

// on a live circuit...if you must, connect GND first.


void setup() {

  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket

  #if defined (__AVR_ATtiny85__)

    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

  #endif

  // End of trinket special code


  Serial.begin(9600);

  strip.begin();

  strip.show(); // Initialize all pixels to 'off'

  //MsTimer2::set(60, onFade); //숨쉬는 기능을 적용할려면 이 부분 주석을 풀어 부면 된다.

  //MsTimer2::start();

}


void loop() {

  

  //onColor(); //단색으로 돌리기

  

  rainbow(60); //무지개색으로 돌리기


}


void onColor()

{

  for(int j = 13 ; j > 0 ; j--){

    for(int i = 0 ; i < strip.numPixels() ; i++)

    {

     strip.setPixelColor(i, oakStrip[(j+i)%strip.numPixels()]);

    }

    strip.show();

    delay(60);

  }

}


void rainbow(uint8_t wait) {

  uint16_t i, j;


  //strip.setBrightness(0);

  //currentPos = 0;


  for(j=0; j<256; j++) {

    for(i=0; i<strip.numPixels(); i++) {

      if(onStrip[(j+i)%13] == 1)

      {

        strip.setPixelColor(i, Wheel((i+j) & 255));

      }

      else

      {

        strip.setPixelColor(i, 0);

      }

    }

    strip.show();

    delay(wait);

  }

}


// Input a value 0 to 255 to get a color value.

// The colours are a transition r - g - b - back to r.

uint32_t Wheel(byte WheelPos) {

  WheelPos = 255 - WheelPos;

  if(WheelPos < 85) {

    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);

  }

  if(WheelPos < 170) {

    WheelPos -= 85;

    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);

  }

  WheelPos -= 170;

  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);

}


void onFade() // 숨시기 기능 함수

{

  if( currentPos < 3 || currentPos > 125 )

  {

    fade = fade * (-1);

  }

  currentPos = currentPos + fade;

  strip.setBrightness(currentPos);

  Serial.println(currentPos);

}


소스코드는 이렇다. 그냥 쓰면 된다. 더 좋은 방법이 있다면 댓글로 살짝 알려 줬으면 좋겠다. 그래야 나도 보고 배우니까^^

여기에 추가 기능 하다 더 넣고 싶은게 있다. 배터리 전압을 체크 하여 배터리 전압대응하는 색으로 표시하는 기능이다.

mcu 자체적으로 내부 전압을 알수 있다고 하는데...... 검색해봐야 겠다.


오크통뱅크 자료는 에다이카페에 있다. 


___LED.ino

Adafruit_NeoPixel-master.zip


반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,