Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

TryTree: Difference between revisions

From ZeroWiki
(Repair transclusion html wrappers and FootNote macro)
(Repair transclusion html wrappers and FootNote macro v4)
 
Line 18: Line 18:
|-
|-
| style="background:#88ccff;" | [https://www.youtube.com/embed/DDW-GZYvPB0 YouTube 영상]
| style="background:#88ccff;" | [https://www.youtube.com/embed/DDW-GZYvPB0 YouTube 영상]
| style="background:#88ccff;" | <span style="color:white">'''작동 영상'''<ref>배경 음악이 있으나 영상 소리가 작으니 음량을 높이길 바란다.</ref></span>
| style="background:#88ccff;" | <span style="color:white">'''작동 영상''' ''(배경 음악이 있으나 영상 소리가 작으니 음량을 높이길 바란다.)''</span>
|}
|}


Line 168: Line 168:
= 방명록 =
= 방명록 =
* 죄송합니다 ㅠㅠ - [[우준혁]]
* 죄송합니다 ㅠㅠ - [[우준혁]]
<references />

Latest revision as of 13:32, 27 March 2026

계절메타
여름 가을 겨울
미정 분수 미정 트리
300
영롱한 자태



개요

YouTube 영상 작동 영상 (배경 음악이 있으나 영상 소리가 작으니 음량을 높이길 바란다.)
Try Tree! 메리 트리스마스!
ZeroPage 성탄절 임베디드 트리 만들기 단기 프로젝트 ~~그래프 이론의 트리가 아니다.~~
  • 본 문서가 작성되는 시점에 이미 성탄절까지 초읽기에 돌입한 상황! 약간 해커톤 느낌이 나지 않을까...?
  • ~~참여를 희망하는 사람은 어서 아래 참가자 목록에 이름을 남기자. 성탄절은 연인 X 트리와 함께!~~
  • ~~만드는 이유? 그저 로망일 뿐...~~
  • 프로젝트가 성공리에 종료되었다.
  • GitHub: https://github.com/ZeroPage/TryTree

감성 주입

자, 떠올려보자.
야심한 밤, 뚝딱뚝딱 공들여 완성한 성탄절 Tree...
셋, 둘, 하나! 두근거림 속에 온 세상을 밝힐 듯 환히 켜지는 Bool...
동시에 은은히 흘러나오는 캐롤...
아름답게 반짝이는 ZP 트리 완성!
그 자리에서 성공을 자축하며 박수치는 ZP인들...
어떤가? 참으로 보람찬 일 년의 마무리가 아닌가?

진행

  • 임베디드 트리를 만든다.
  • 필요한 것: 맵시 있는 나무, LED(많이), 저항(많이), 전선(이것도 많이), ~~사랑의~~ 배터리 또는 AC/DC 전원, 임베디드 보드(아두이노 또는 라즈베리 파이, 임베디드 칩셋 등) 등
  • 필요할 수도 있는 것: EL Wire(네온사인 느낌의 발광 플라스틱 와이어), 하얀 솜, 산타 할아버지 인형 등
  • ~~트리를 놓을 장소는 나중에 정한다.~~

결과

  • 성공
  • 라즈베리 파이 2 모델 B를 사용해 GPIO로 트리 LED 제어.
  • 적색 LED 4개와 녹색 LED 3개를 트리에 얹었고 황색 LED 5개는 별 모양으로 연결해 트리에 붙임.
  • 찰리 플렉싱을 활용해 적은 케이블로 다수의 LED를 효율적으로 제어.
  • LED는 총 3가지의 ~~흔한~~ 유형으로 계속 변하면서 Bool 들어옴.
    • 전체 점등.
    • 적색, 녹색 교대 점등(별은 항상 점등).
    • 전체 LED 하나씩 순서대로 점등하되 점점 속도가 빨라져 동시에 반짝이는 상태가 됨.
  • 라즈베리 파이 OS에서 부팅 시 자동으로 트리 조명 프로그램이 실행되도록 설정함.
    • 라즈베리 파이에 전원을 연결하고 잠시 부팅을 기다리기만 하면 곧 자동으로 트리가 빛난다.
  • 케이블의 접촉 상태가 영 좋지 않은 듯하니 부디 조심히 다루어주기를 바란다.
  • ~~설마 불나는 건 아니겠지?~~

트리 조명 자동 제어 프로그램

#!/usr/bin/env python3
#
# Christmas Tree Lighting
#

import time
import signal
import sys
import RPi.GPIO as GPIO

def sigint_handler(sig, frame):
    GPIO.cleanup()
    print()
    sys.exit(0x1)

signal.signal(signal.SIGINT, sigint_handler)

pins = (6, 13, 19, 26)
pairs = ((0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3))

idxs = tuple(range(8))
star_idx = len(idxs) - 1

divtime = 1000

def light_on(led_idx):
    pin1 = pins[pairs[led_idx // 2][0]]
    pin2 = pins[pairs[led_idx // 2][1]]

    for pin in pins:
        if pin == pin1:
            GPIO.setup(pin, GPIO.OUT)
            GPIO.output(pin, False if led_idx % 2 else True)
        elif pin == pin2:
            GPIO.setup(pin, GPIO.OUT)
            GPIO.output(pin, True if led_idx % 2 else False)
        else:
            GPIO.setup(pin, GPIO.IN)

GPIO.setmode(GPIO.BCM)

while True:
    for i in range(3 * divtime):
        for idx in idxs:
            light_on(idx)
        time.sleep(1 / divtime)

    for i in range(3):
        for i in range(divtime):
            for idx in idxs[::2]:
                light_on(idx)
            light_on(star_idx)
            time.sleep(1 / divtime)

        for i in range(divtime):
            for idx in idxs[1::2]:
                light_on(idx)
            light_on(star_idx)
            time.sleep(1 / divtime)

    t = 100
    while (t > 10):
        for i in range(3):
            for i in range(int(divtime / (len(idxs) * t))):
                for idx in idxs:
                    light_on(idx)
                    time.sleep(t / divtime)
        t /= 2

# GPIO.cleanup()

회고

  • 시기가 좋지 않았다.
  • 늦은 시험 기간 + 성탄절이 코 앞인 연말 ≒ 프로젝트 공중분해
  • 자금난으로 부품이 너무 부족했다.
    • 적외선 수신부 센서와 리모컨으로 원격 조종 트리를 만들고 싶었으나 부품 확보 실패.
    • 버저를 이용해 캐럴 재생 기능도 넣고 싶었지만 역시 부품 확보 실패.
    • 트리에 이런저런 장식을 달고 싶었으나 그럴 겨를이 없었다.
  • 인력난으로 프로젝트가 심히 지루했다.
    • 다 같이 연말연시를 기념하는 분위기를 꿈꿨으나 좌절...
  • 내년에는 좀 더 제대로 트리를 만들어보고프다.

진행 상황

2018/12/20

  • 프로젝트가 생겼다. ~~응애~~

2018/12/22

  • ~~장렬하게 기말고사 종료.~~
  • 상도역 근처의 모든 게 다 있다는 그곳에서 가성비 갑 성탄절 나무(2000원, 장식 없음)와 충전기(5000원) 구매.
  • ZP실의 ~~아두이노가 새것이라 못 뜯고~~ 라즈베리 파이 2 모델 B를 사용하기로 결정.
  • ZP실 아두이노 상자 속 LED(황색 5개, 적색 4개, 녹색 3개, 총합 12개), 저항(4개), 점퍼 케이블(좀 많이), 빵판을 확보.
  • 라즈베리 파이 GPIO 정상 동작 확인.
  • 시범 삼아 LED 몇 개 연결함. 멀쩡히 Bool 들어옴.
  • LED 별을 붙이는 건 다음날을 기약.

2018/12/23

  • 적색, 녹색 LED 전체를 각각 점퍼 케이블로 연결. 접촉이 조금 안 좋은 듯...
  • ~~정말 힘들게~~ 별 모양으로 황색 LED 5개 연결. ~~하라는 납땜은 안 하고 테이프 덕지덕지 붙임.~~
  • 나무에 LED 얹고 빵판에 케이블 연결.
  • 찰리 플렉싱 기술을 활용해 적은 케이블로 효율적인 조명 처리 프로그램 개발.
  • 라즈베리 파이에 부팅 시 자동 시작 프로그램으로 조명 프로그램을 등록.
  • ~~영상&사진 찍어서 대화방에 올림. 근데 칭찬 별로 못 받음.~~

참가자

방명록