728x90

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


출처 : Steve136/microbit-ultrasonic: Example usage of a HC-SR04 Ultrasonic Sensor and the BBC Micro:Bit.
HCSR04 - Ultrasound Ranging Sensor module | Mbed

micro:bit - 초음파 거리센서(HC-SR04) 확장 라이브러리

micro:bit의 기본 함수로 구현하기 힘든 부분들은 확장 라이브러리로 제공이 되는데, 
초음파 거리센서(HC-SR04)를 단순하게 사용할 수 있도록 확장 라이브러리를 직접 만들어 보았습니다.

라이브러리의 사용은 제한이 없지만, 다른곳에 글을 올리는 경우 출처만 남겨주세요.

구현이 필요한 확장 라이브러리가 있으시면 댓글 남겨주시면 시간날때 만들어서 공개하겠습니다.

micro:bit - 초음파 거리센서(HC-SR04) 확장 라이브러리 사용하기

확장 라이브러리를 추가하기 위해서, [고급] 메뉴를 선택하여 [고급] 메뉴를 확장

확장된 메뉴에서 [확장] 메뉴를 선택하여 라이브러리 추가 화면으로 이동

검색창에 초음파 센서 Github 주소(https://github.com/bluexmas/pxt-ultrasonic-microbit)를 삽입하고, 검색(돋보기) 버튼 선택

검색된 초음파 센서 라이브러리 선택 (아이콘 작업을 했는데 아이콘이 나오지 않는데 이유를 알수가 없네요)

초음파 센서 라이브러리 함수 확인 ( 초기화 함수, 거리값을 가져오는 함수)

초음파 센서 함수 설정 - 첫번째 파라미터는 Echo핀, 두번째 파라미터는 Trig핀 설정

거리측정 값을 담을 변수 생성을 위해서 변수 메뉴에서 [변수 만들기...] 선택

변수 이름을 설정하고, [확인] 버튼 선택

거리 변수에 초음파 센서로 받은 거리값을 담고, LED 화면에서 거비 변수값을 출력

실행

OLED 거리값 출력 해보기

실행 결과


마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 http://www.icbanq.com/
아이씨뱅큐 공식 카페 : http://cafe.naver.com/icbanq
아이씨뱅큐 공식 블로그 : http://blog.naver.com/icbanq
마이크로비트 공식 카페 : http://cafe.naver.com/bbcmicro
나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ

728x90
728x90

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


OLED를 이용하여 온,습도,토양수분,기울기 센서의 값 표시하기

초기화

OLED 초기화, 변수 초기화

기울기 센서값 가져오기

습도센서 값 가져오기

아나로그 입력 값 가져오기

온도센서 값 가져오기

아나로그 입력 값을 가져와서 온도 계산

OLED 출력

완성된 코드

실행 결과


마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 http://www.icbanq.com/
아이씨뱅큐 공식 카페 : http://cafe.naver.com/icbanq
아이씨뱅큐 공식 블로그 : http://blog.naver.com/icbanq
마이크로비트 공식 카페 : http://cafe.naver.com/bbcmicro
나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ

728x90
728x90

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

지니어스키트의 OLED를 이용해서 문자열 출력 예제를 만들어 보았습니다.

OLED를 사용하기 위해서 마이크로비트의 확장 라이브러리를 추가 하는 방법과 변수 사하는 방법을 배워보겠습니다.

OLED 확장 라이브러리 추가

[고급] -> [확장] 메뉴 선택

검색창에 oled-ssd1306 을 입력하고 [돋보기] 아이콘 선택하여 검색후, 검색된 목록에서 [oled-ssd1306]을 선택

추가된 [OLED] 메뉴 확인

OLED 확장 라이브러리 사용

초기화, 문자열 출력

[시작하면 실행] 블럭에 반듯이 OLED를 초기화해야 하고,, 예제로 문자열을 출력해보았습니다.

문자열 출력 예제 실행 결과

버튼를 이용하여 OLED에 글씨 써보기

간단하게 더하기 하는 예제를 만들어 보았습니다. 왼쪽(A) 버튼을 누르면 좌변의 값을 1증가하고, 오른쪽(B) 버튼을 누르면 우변의 값을 1증가해서 더해진 값을 OLED에 출력하는 예제입니다.

변수 만들기

[변수] 메뉴에서 [변수 만듥기] 메뉴 선택  

변수 이름을 입력하고 [확인] 버튼 선택

[변수] 메뉴를 선택하면 만들어진 변수 확인

완성된 코드

실행 결과


마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 http://www.icbanq.com/
아이씨뱅큐 공식 카페 : http://cafe.naver.com/icbanq
아이씨뱅큐 공식 블로그 : http://blog.naver.com/icbanq
마이크로비트 공식 카페 : http://cafe.naver.com/bbcmicro
나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ

728x90
728x90

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

마이크로비트에 관심이 많아서 여러가지 확장하려고 알아 보던중에 지니어스키트를 알게 되었는데,
이번 체험단에 당선되어서 지니어스키트를 얻게 되었습니다.

확장보드와 확장보드를 통해 각종 센서로 부터 입력 받은 값을 여러가지 아웃풋으로 보여 줄수 있고,
확장보드와 연결도 간단한 클립형태로 연결할 수 있어서 초등학생도 어렵지 않게 사용할 수 있도록 구성되어 있습니다. 


마이크로비트 지니어스키트 공식 구입처 : 아이씨뱅큐 http://www.icbanq.com/
아이씨뱅큐 공식 카페 : http://cafe.naver.com/icbanq
아이씨뱅큐 공식 블로그 : http://blog.naver.com/icbanq
마이크로비트 공식 카페 : http://cafe.naver.com/bbcmicro
나도메이커 유튜브 채널 : https://www.youtube.com/user/ICbanQ

728x90
728x90


안녕하세요 ! :D
요즘 가장 핫한 오픈소스하드웨어는? 바로!
마이크로비트 라고 할 수 있죠!
마이크로비트를 더욱 더 다양하게 활용해볼 수 있는 <지니어스키트> 가 드디어 체험단을 진행하게 되었습니다.

이번에는 이전과 조금 다른 체험단 신청 방법으로 진행 될 예정인데요!

아래 순서로 진행해주시면 됩니다.

1. 나도메이커 카페 가입 : https://cafe.naver.com/icbanq
2. 마이크로비트 카페 가입 : https://cafe.naver.com/bbcmicro
3. 지금 보고 계시는 게시글을 SNS 에 스크랩 !
4. 체험단 신청서 작성!
5. 유튜브 '나도메이커' 채널 구독 시 당첨 확률 UPUP!!
체험단 신청하러 가기 ▶ https://goo.gl/Y1ByVP
유튜브 구독 하러 가기 ▶ https://goo.gl/tJ9Znc


728x90
728x90

출처

Camera (LS-Y201)

micro:bit를 이용해서 카메라로 입력받은 이미지 데이터를 SD 메모리에 저장해보았습니다.

소스

//#include "MicroBit.h"
//#include "MicroBitSerial.h"
#include "Camera_LS_Y201.h"
#include "SDFileSystem.h"

#define DEBMSG      printf
#define NEWLINE()   printf("\r\n")
#define FILENAME    "/sd/IMG_%04d.jpg"

SDFileSystem sd(P0_21, P0_22, P0_23, P0_16, "sd"); // mosi, miso, sclk, cs
Camera_LS_Y201 cam1(P0_2, P0_3);
//MicroBitSerial serial(USBTX, USBRX);

typedef struct work {
    FILE *fp;
} work_t;
 
work_t work;
 
/**
 * Callback function for readJpegFileContent.
 *
 * @param buf A pointer to a buffer.
 * @param siz A size of the buffer.
 */
void callback_func(int done, int total, uint8_t *buf, size_t siz) {
    fwrite(buf, siz, 1, work.fp);
 
    static int n = 0;
    int tmp = done * 100 / total;
    if (n != tmp) {
        n = tmp;
        DEBMSG("Writing...: %3d%%", n);
        NEWLINE();
    }
}
 
/**
 * Capture.
 *
 * @param cam A pointer to a camera object.
 * @param filename The file name.
 *
 * @return Return 0 if it succeed.
 */
int capture(Camera_LS_Y201 *cam, char *filename) {
    /*
     * Take a picture.
     */
    if (cam->takePicture() != 0) {
        return -1;
    }
    DEBMSG("Captured.");
    NEWLINE();
 
    /*
     * Open file.
     */
    work.fp = fopen(filename, "wb");
    if (work.fp == NULL) {
        return -2;
    }
 
    /*
     * Read the content.
     */
    DEBMSG("%s", filename);
    NEWLINE();
    if (cam->readJpegFileContent(callback_func) != 0) {
        fclose(work.fp);
        return -3;
    }
    fclose(work.fp);
 
    /*
     * Stop taking pictures.
     */
    cam->stopTakingPictures();
 
    return 0;
}

int main() {
	  DEBMSG("Camera module");
	  NEWLINE();
	  DEBMSG("Resetting...");
	  NEWLINE();
	  wait(1);

	  if (cam1.reset() == 0) {
	      DEBMSG("Reset OK.");
	      NEWLINE();
	  } else {
	      DEBMSG("Reset fail.");
	      NEWLINE();
	      error("Reset fail.");
	  }
	  wait(1);

	  int cnt = 0;
	  while (1) {
	      char fname[64];
	      snprintf(fname, sizeof(fname) - 1, FILENAME, cnt);
	      int r = capture(&cam1, fname);
	      if (r == 0) {
	          DEBMSG("[%04d]:OK.", cnt);
	          NEWLINE();
	      } else {
	          DEBMSG("[%04d]:NG. (code=%d)", cnt, r);
	          NEWLINE();
	          error("Failure.");
	      }
	      cnt++;
	  }
}

HEX 파일

pulse-combined.zip

실행

728x90
728x90

출처

yotta 설치

python.exe -m pip install --upgrade pip==9.0.3
pip install --upgrade setuptools
pip install -I -U yotta

환경변수 설정 (run_yotta.bat c:\yotta 명령으로 설정 가능)

YOTTA_INSTALL_LOCATION=C:\yotta
YOTTA_PATH=;C:\yotta;C:\yotta\gcc\bin;C:\yotta\python;C:\yotta\python\Scripts;C:\yotta\cmake-3.4.0-rc3-win32-x86\bin;C:\yotta\git-scm\bin;C:\yotta\mercurial\bin;
PATH=C:\yotta;C:\yotta\python\;C:\yotta\python\Scripts;C:\yotta\cmake-3.4.0-rc3-win32-x86\bin;%PATH%

개발환경 만들기

D:\>run_yotta.bat
(workspace) D:\>mkdir pulse
(workspace) D:\>cd pulse
(workspace) D:\pulse>yotta init
(workspace) D:\pulse>yotta target bbc-microbit-classic-gcc
(workspace) D:\pulse>yotta install lancaster-university/microbit

main.cpp

#include "MicroBit.h" 
 
MicroBit uBit;  
 
int main() { 
  uBit.init(); 
  uBit.display.scroll("http://bluexmas.tistory.com"); 
  release_fiber(); 
}

빌드 - hex 파일 생성

(workspace) D:\pulse>yotta build

실행

pulse-combined.hex 파일 마이크로 비트에 복사

728x90
728x90

출처

windows-build-tools 설치(관리자모드)

출처 : Thinker :: error MSB3428: Visual C++ 구성 요소 "VCBuild.exe"을(를) 로드할 수 ...

C:\WINDOWS\system32>npm install --global --production windows-build-tools

> windows-build-tools@3.0.1 postinstall C:\Users\bluesanta\AppData\Roaming\npm\node_modules\windows-build-tools
> node ./dist/index.js

Downloading BuildTools_Full.exe
[============================================>] 100.0% of 3.29 MB (3.29 MB/s)
Downloaded BuildTools_Full.exe. Saved to C:\Users\bluesanta\.windows-build-tools\BuildTools_Full.exe.

Starting installation...
Launched installers, now waiting for them to finish.
This will likely take some time - please be patient!

Status from the installers:
---------- Visual Studio Build Tools ----------
---------- Visual Studio Build Tools ----------
Successfully installed Visual Studio Build Tools.
------------------- Python --------------------
Python 2.7.15 is already installed, not installing again.

All done!

+ windows-build-tools@3.0.1
added 141 packages in 310.658s

pxt 관련 라이브러리 설치

D:\microbit>npm install -g jake
C:\Users\bluesanta\AppData\Roaming\npm\jake -> C:\Users\bluesanta\AppData\Roaming\npm\node_modules\jake\bin\cli.js
+ jake@8.0.16
added 13 packages in 2.485s

D:\microbit>npm install -g typings
npm WARN deprecated typings@2.1.1: Typings is deprecated in favor of NPM @types -- see README for more information
C:\Users\bluesanta\AppData\Roaming\npm\typings -> C:\Users\bluesanta\AppData\Roaming\npm\node_modules\typings\dist\bin.js
+ typings@2.1.1
added 183 packages in 12.988s

pxt 다운로드

D:\microbit>git clone https://github.com/microsoft/pxt
Cloning into 'pxt'...
remote: Counting objects: 52887, done.
remote: Compressing objects: 100% (424/424), done.
remote: Total 52887 (delta 311), reused 324 (delta 173), pack-reused 52279
Receiving objects: 100% (52887/52887), 131.47 MiB | 197.00 KiB/s, done.
Resolving deltas: 100% (37029/37029), done.

D:\microbit>cd pxt

D:\microbit\pxt>git checkout v0
Switched to a new branch 'v0'
Branch 'v0' set up to track remote branch 'v0' from 'origin'.

pxt 설치

D:\microbit\pxt>npm install npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) added 115 packages in 12.661s D:\microbit\pxt>typings install D:\microbit\pxt>jake D:\microbit\pxt>cd ../ D:\microbit>

pxt-microbit 설치

D:\microbit>git clone https://github.com/microsoft/pxt-microbit
D:\microbit>cd pxt-microbit
D:\microbit\pxt-microbit>npm install -g pxt
D:\microbit\pxt-microbit>npm install
D:\microbit\pxt-microbit>npm link ../pxt
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

added 115 packages in 21.441s
C:\server\node-v8.9.1-win-x64\node_modules\pxt-core -> D:\microbit\pxt
D:\microbit\pxt-microbit\node_modules\pxt-core -> C:\server\node-v8.9.1-win-x64\node_modules\pxt-core -> D:\microbit\pxt

pxt 서버 실행

(workspace) D:\>mkdir pxtsrc

(workspace) D:\>cd pxtsrc

(workspace) D:\pxtsrc>pxt target microbit
Installing pxt-microbit locally; don't worry about package.json warnings.

> keytar@4.2.1 install D:\pxtsrc\node_modules\keytar
> prebuild-install || node-gyp rebuild

prebuild-install info begin Prebuild-install version 2.5.1
prebuild-install info looking for local prebuild @ prebuilds\keytar-v4.2.1-node-v57-win32-x64.tar.gz
prebuild-install info looking for cached prebuild @ C:\Users\bluesanta\AppData\Roaming\npm-cache\_prebuilds\https-github.com-atom-node-keytar-releases-download-v4.2.1-keytar-v4.2.1-node-v57-win32-x64.tar.gz
prebuild-install info found cached prebuild
prebuild-install info unpacking @ C:\Users\bluesanta\AppData\Roaming\npm-cache\_prebuilds\https-github.com-atom-node-keytar-releases-download-v4.2.1-keytar-v4.2.1-node-v57-win32-x64.tar.gz
prebuild-install info unpack resolved to D:\pxtsrc\node_modules\keytar\build\Release\keytar.node
prebuild-install info unpack required D:\pxtsrc\node_modules\keytar\build\Release\keytar.node successfully
prebuild-install info install Successfully installed prebuilt binary!

> node-hid@0.5.7 install D:\pxtsrc\node_modules\node-hid
> prebuild-install || node-gyp rebuild

prebuild-install info begin Prebuild-install version 2.5.1
prebuild-install info looking for local prebuild @ prebuilds\node-hid-v0.5.7-node-v57-win32-x64.tar.gz
prebuild-install info looking for cached prebuild @ C:\Users\bluesanta\AppData\Roaming\npm-cache\_prebuilds\https-github.com-node-hid-node-hid-releases-download-v0.5.7-node-hid-v0.5.7-node-v57-win32-x64.tar.gz
prebuild-install info found cached prebuild
prebuild-install info unpacking @ C:\Users\bluesanta\AppData\Roaming\npm-cache\_prebuilds\https-github.com-node-hid-node-hid-releases-download-v0.5.7-node-hid-v0.5.7-node-v57-win32-x64.tar.gz
prebuild-install info unpack resolved to D:\pxtsrc\node_modules\node-hid\build\Release\HID.node
prebuild-install info unpack required D:\pxtsrc\node_modules\node-hid\build\Release\HID.node successfully
prebuild-install info install Successfully installed prebuilt binary!

> serialport@6.1.1 install D:\pxtsrc\node_modules\serialport
> prebuild-install || node-gyp rebuild

prebuild-install info begin Prebuild-install version 2.5.1
prebuild-install info looking for local prebuild @ prebuilds\serialport-v6.1.1-node-v57-win32-x64.tar.gz
prebuild-install info looking for cached prebuild @ C:\Users\bluesanta\AppData\Roaming\npm-cache\_prebuilds\https-github.com-node-serialport-node-serialport-releases-download-v6.1.1-serialport-v6.1.1-node-v57-win32-x64.tar.gz
prebuild-install info found cached prebuild
prebuild-install info unpacking @ C:\Users\bluesanta\AppData\Roaming\npm-cache\_prebuilds\https-github.com-node-serialport-node-serialport-releases-download-v6.1.1-serialport-v6.1.1-node-v57-win32-x64.tar.gz
prebuild-install info unpack resolved to D:\pxtsrc\node_modules\serialport\build\Release\serialport.node
prebuild-install info unpack required D:\pxtsrc\node_modules\serialport\build\Release\serialport.node successfully
prebuild-install info install Successfully installed prebuilt binary!
npm WARN saveError ENOENT: no such file or directory, open 'D:\pxtsrc\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'D:\pxtsrc\package.json'
npm WARN pxtsrc No description
npm WARN pxtsrc No repository field.
npm WARN pxtsrc No README data
npm WARN pxtsrc No license field.

+ pxt-microbit@0.14.30
added 384 packages in 15.705s
Installed PXT/microbit. To start server run:
    pxt serve

(workspace) D:\pxtsrc>pxt serve
Using target PXT/microbit with build engine yotta
  Target dir:   D:\pxtsrc\node_modules\pxt-microbit
  PXT Core dir: D:\pxtsrc\node_modules\pxt-core
Invalid accessToken format, expecting something like 'https://example.com/?access_token=0abcd.XXXX'
Going to D:\pxtsrc\node_modules\pxt-microbit
No sim/tsconfig.json; assuming npm installed package
Starting server in D:\pxtsrc\node_modules\pxt-microbit
With pxt core at D:\pxtsrc\node_modules\pxt-core
starting local ws server at 3233...
serial: monitoring ports...
---------------------------------------------

To launch the editor, open this URL:
http://localhost:3232/#local_token=452b727d-6d77-4d83-98d5-0bdab305f72e&wsport=3233

---------------------------------------------
opening http://localhost:3232/#local_token=452b727d-6d77-4d83-98d5-0bdab305f72e&wsport=3233

프로젝트 생성

D:\pxtsrc\projects>mkdir pxt-ultrasonic-microbit

D:\pxtsrc\projects>cd pxt-ultrasonic-microbit

D:\pxtsrc\projects\pxt-ultrasonic-microbit>pxt init
Using target PXT/microbit with build engine yotta
  Target dir:   D:\pxtsrc\node_modules\pxt-microbit
  PXT Core dir: D:\pxtsrc\node_modules\pxt-core
Invalid accessToken format, expecting something like 'https://example.com/?access_token=0abcd.XXXX'
name [ultrasonic-microbit]:
description []:
license [MIT]:
skipping download of local pkg: file:.
Package initialized.
Try 'pxt add' to add optional features.

D:\pxtsrc\projects\pxt-ultrasonic-microbit>code .

빌드

728x90

+ Recent posts