돼지등DIY 카페에서 처음 DIY를 시작하는 분들이 간단하게 만드는 것중에 하나다. 값싸게 재료를 구할 수 있고, 작은 노력으로 집에서 평상시에 사용할 수 있다. 개인적으로 터치센서네오픽셀제어하기 위해 마이크로비트사용 하였다.


돼지등 만들기

(마이크로비트로 동작 확인 하기)

1. 돼지등이란


2. 재료













3. 동작 확인 동영상























4. 네오픽셀로 안에 들어갈 LED 만들기
























































5. 마이크로비트에 네오픽셀과 터치센서 연결하기

























































6. 터치센서 동작의 이해






















7. 블록코딩 하기


































































8. 자바스크립트 코드

 DIY 시작하는 분들이 값싼 재료를 이용하여 만드는 무드등이다. 


 스위치

 LED -> 네오픽셀 : 일반 LED 대신 색을 제어하기 위해 네오픽셀을 사용

 배터리 -> 요즘 DIY에서 흔히 많이 쓰는 18650배터리다

               휴대폰 보조배터리로도 많이 사용한다.

 1셀충전회로 -> TP4056이다. 충방전 회로가 있는건 사용하면 된다

 전선

 돼지저금통

 글루건

 납땜 세트

 ----------

 추가 터치 센서 

 추가 마이크로비트


 

 <https://youtu.be/iSLO6EvCeZY>


 터치할 때마다 등의 색이 바뀐다.



 

 <네오픽셀로 LED등 만들기 사진>

네오픽셀 6개로 등을 만들었다. 그냥 큐브(주사위) 각 면에 LED를 붙혔다고 생각하면 된다. 사실 둥글게 만들고 싶었지만 막손이라...... 각지게 만드는게 편해서 큐브 모양으로 만들었다.


 

 <네오픽셀등 완서된 사진>



 

<마이크로비트, 네오픽셀, 터치센서 사진>


 

 <fritzing로 만든 연결 사진>


 위 사진대로 연결 해 주면 면된다.

 P0 - DI -> 네오픽셀

 P1 - I/O -> 터치 센서


 터치센서동작은 3가지로 구분 할 수 있다.

  1. 터치 센서에 손가락을 처음 댄 상태        현재 상태 1 이전상태 0

  2. 처음 대고 그 상태를 유지한 상태           현재 상태 1 이전상태 1

  3. 대고 유지한 상태에서 손가락을 땐 상태  현재 상태 0 이전상태 1


 여기서 더 구분을 할 수 있으나, 돼지등에 터치 기능을 구현하는데는 3번만(1번으로 해도 된단) 필요하기 때문에 다음과 같이 블록을 만들었다. 

 

<터치센서 동작 부분 블록코딩 사진>

 

 

 <블록코딩 사진> 

microbit-네오픽셀터치센서누르는2 (19).hex


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
33
34
35
36
37
38
39
40
41
42
43
44
let item: neopixel.Strip = null
let eventCount = 0
let event = 0
let last = 0
let current = 0
current = 0
last = 0
event = 0
eventCount = 0
item = neopixel.create(DigitalPin.P0, 6, NeoPixelMode.RGB)
basic.forever(() =&gt; {
    current = pins.digitalReadPin(DigitalPin.P1)
    if (current == 0 &amp;&amp; last == 1) {
        event += 1
        eventCount = event % 3
    }
    last = current
})
control.inBackground(() =&gt; {
    while (true) {
        basic.showNumber(eventCount)
        if (eventCount == 0) {
            item.showColor(neopixel.colors(NeoPixelColors.White))
        } else if (eventCount == 1) {
            item.showColor(neopixel.colors(NeoPixelColors.Red))
        } else {
            item.showColor(neopixel.colors(NeoPixelColors.Red))
            basic.pause(200)
            item.showColor(neopixel.colors(NeoPixelColors.Orange))
            basic.pause(200)
            item.showColor(neopixel.colors(NeoPixelColors.Yellow))
            basic.pause(200)
            item.showColor(neopixel.colors(NeoPixelColors.Green))
            basic.pause(200)
            item.showColor(neopixel.colors(NeoPixelColors.Indigo))
            basic.pause(200)
            item.showColor(neopixel.colors(NeoPixelColors.Violet))
            basic.pause(200)
            item.showColor(neopixel.colors(NeoPixelColors.White))
            basic.pause(200)
        }
    }
})
 
cs

1. 쉽게 할 수도 있었는데...... run time error는 미리 알 수도 없고, 실제 소스 올리고 나서 나는 것들인데...... 에러나면 그냥 멈춘다...... 그것도 모르고 나는 고생을 했다. 0 / 3 ......


2. 네오픽셀을 단색으로 표현하는건 쉽다. 그러나 화려하게 레인보우를 적용하면 쓰레드가 필요한데...... 마이크로비트에서는 어떻게 해야 할지...... 백그라운드 실행으로 할려고 했으나, 내가 이전에 했던 생각한것처럼 안되어 이 글에는 빼 버렸다. 검색을 해야 겠다.


3. 동작 확인으로 마이크로비트를 사용했다. 이번 글에서 아쉬웠던건 실제 사용할 수 있도록 꾸밀 수가 있었는데, 그 부분이 조금 아쉽다. 마이크로비트로 동작 확인것이기 때문에 이걸로 만족한다.


4. 아래는 원래 목표했던 돼지등이다. 배터리와 충전회로를 넣어서 제품(?)처럼 만들었다. 이 글을 쓰는 시점에서 완성 되었다. 이것 또한 정리해서 올려야 겠다.




반응형
블로그 이미지

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

레고가 좋고~ PBL 매력에 빠졌으며~ 취미로 개발하는 두리둥실

,