오늘은 마이크로비트서보모터제어하여 무선으로 전등을 켜고/끄는 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는 사용&제어가 쉬워서 응용할 수 있는 부분이 많다. 할 수 있는 것들을 찾아봐야 겠다.

반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

아주 오래전에 만들어 놓은 하트 RGB LED다. 아두이노로 동작 시킬때는 정상적으로 됐는데! 왜 마이크로비트로 할때만 빨간색으로만 나오냐구 ㅠㅠ. 그것때문에 관련 글을 작성할 때, 이걸 못 섰다. 마이크로비트3.3V으로 동작하고 그것 때문에 동작 안하나 싶어서 외부전원으로 5V 넣기도 하고, 다른 확장보드이용해서 해보기도 하고...... 많이 LED를 연결해서 그런가 싶어서...... 아래 사진처럼 연결 되어 있던 선들을 하나하나 잘라 테스트도 했다. 그런데도 원인을 찾을 수가 없었다.


혹시나 설마...... 테스트기로 아래 사진 부분에 있는 점퍼선이 도통이 되는지 확인을 해봤다. +V5 -> 삐~, DI -> 삐~, GND -> ...... 이런 젠장...... GND 점퍼선 플라스틱 부분 안쪽에서 끊어진 것이다. 


분명 그곳이 문제가 있다고 증상이 있었는데, 내가 무시한거 같다. 정상적이라면 밝게 색이 빛나야 하는데......

아두이노로 연결했을 경우       -> 색이 표현 됐다. 그러나 많이 떨렸다.

마이크로비트로 연결했을 경우 -> 빨간색만 나왔다

 -> 정상적으로 3개의 선이 연결 되면 동작하는데, +5V&DI만 연결 되면 빨간색으로 나온다...... <- 이미 경험했던 거다.


결국, 이런 저런것들을 무시한 채 한 덕분하지 않아도 될 것들을 하게 됐다. 다시 연결하고 다른 것으로 교체 하니 정말 잘 작동한다.^^


반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

물품 : 리바트 슬라이딩 붙박이장 2100 * 2100

거래 : 당동 당정여 근처에서 직거래

가격 : 2,000원 반쪽 판매 합니다.


아끼는 장이에요. 2월 19일 이사합니다. 당일 1층까지 내려 드려요.


http://cafe.naver.com/joonggonara/450670861 <- 해당 중고나라 게시물


반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

물품 : 송학장 * 3 + 문갑 * 2

거래 : 당동 당정여 근처에서 직거래

가격 : 2,000원


2월 19일 이사합니다. 당일 1층까지 내려 드려요.


http://cafe.naver.com/joonggonara/450671832 <- 바로가기 



반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

물품 : 아파트 유리 거실등 6구

거래 : 수원 매탄4동 삼성3차 아파트에서 직거래

가격 : 5만원


반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

물품 : 엔틱 전화기 & 화병

거래 : 수원 매탄4동 삼성3차 근처에서 직거래

가격 : 세트로 10만원



반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,


사진 왼쪽에 있는 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()함수실행하기 전까지지정한 색으로 표시 되지 않는다.  



반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,

내가 활동하는 에다이 DIY 카페에서 내가 이벤트 한다. ㅋ

뭔가 만들수 있는 구성이다. 


이벤트참여하기

반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,



 누군가 이 글을 읽고 있다면 꼭 이 책을 구하여 읽기를 추천한다.


미안합니다. 사랑합니다.








반응형
블로그 이미지

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

컴퓨터 코치 두리뭉실

,