Posted on 2 Comments

생활속의 아두이노 활용하기(토요일 5시간)

생활속의 아두이노 활용사례를 통해 아두이노를 익히고, 

 

사물인터넷 서비스에 대한 기초를 배울수 있는 기회를 잡으세요.

교육대상 : 전기전자 원리의 기초를 이해하고, 아두이노를 생활에서 활용하고 싶으신 모든 분
교육인원 : 8명(선착순) *단 1분이 신청하셔도 교육 진행합니다.
교육기간 :  2016.10.01(토) 14:00 ~ 19:00
모집기간 : 2016.09.19(월) ~ 09.24(토)(12:00 마감)
교육장소 : 노원구 아스피린센터 1층(대강의실). 태릉입구역에서 도보 3분거리
교육비 : 70,000원 / 수강료 및 키트 포함, * 입금계좌 : 기업은행, 236-089579-01-016, 따보주식회사
준비물 : 노트북, 안드로이드 폰(2일차 교육시 필요함)
교육문의 : email sy@ddabo.com, tel 010-8463-5663

내용전기는 참 신기한 현상입니다. 어떻게 눈에 보이지도 않는 전기를 이용해서 스마트폰도 이용하고 불도 켜고, 컴퓨터를 이용할 수 있을까요? 그리고 어떻게 무수한 전자들을 제어해서 생활에 활용 할 수 있을까요?

이런 놀라운 일들을 아두이노를 통해 살펴보고, 생활속에 아이디어를 구현할 수 있는 실속있는 실습을 통해 전기전자의 세계를 즐길 수 있는 프로그램을 준비하였습니다.

아두이노 장비가 없으셔도 전혀 부담이 없습니다. 사례에 필요한 키트는 교육비에 모두 포함되어 있습니다. 단, 아두이노 동작을 위한 프로그램작성과 업로드를 위한 노트북 그리고 블루투스 통신을 활용하기 위한 안드로이드 폰을 꼭 준비해 주시기 바랍니다.

 

교육참가 혜택

1. 다양한 사례 및 개발도구 체험기회

 

2. 실속있는 키트


세부일정


실습결과물


강사소개

Posted on 2 Comments

반짝반짝 작은별(블루투스 조명예시)

손목을 돌리며 ‘반짝반짝 작은 별’ 노래를 불러주다 보면,

어느새 손동작을 따라하는 아이들이 기특하기만 합니다.

 

이왕이면 손동작과 함께 하늘에 작은별들이 반짝이고, 별자리 신화를 이야기 해주면 좋겠습니다.

이렇게요~~~

imgTwinkleStar imgTwinkleStarEXam

별자리에는 아이들이 좋아하는 코끼리, 사자도 넣구요.

큰곰자리, 작은곰자리와 함께 북두칠성 별자리 이야기를 들려줍니다.

큰곰자리는 부근의 작은곰자리와 함께 그리스 신화의 칼리스토의 전설과 관련되어 있다. 제우스의 애인인 칼리스토가 제우스의 아내 헤라의 질투로 곰의 모습이 되었는데, 제우스가 이를 별자리로 만들었다는 것이다.  –위키백과 참조– –참고동영상 링크

 

반짝반짝 작은별을 만들기 위해 필요한 준비물은

  • MCU : 아두이노 나노 or UNO
  • 통신 : 블루투스 모듈(HC-06)
  • 전원 : AA 배터리 4개, 스위치달린 배터리팩
  • 출력 : LED(원하는 색으로 여러개 준비)
  • 별자리보드 : 우드락, 별자리 그림이 있는 인쇄물
  • 기타 : 브레드보드, 케이블, 안드로이드 스마트폰, 글루건

 

시스템 구조

시스템구성은 별자리보드, 신호송신기로 구분됩니다.
본 시스템은 블루투스로 부터 특정값을 수신받아 LED를 제어하는 별자리보드와 특정 값을 블루투스로 전송할 수 있는 송신장치로 구성됩니다.
이때 송신장치는 스마트폰을 활용할 수도 있고, 별도의 디바이스르 제작할 수 있습니다.
단, 송신장치는 시스템의 목적과 부합될 수 있도록, 흔들거릴때마다 값을 보내면 됩니다.
별자리보드와 송신장치가 블루투스로 연결되면,
흔들리는 형태에 따라 1, 2, 3과 같은 특정 값을 별자리 보드로 보냅니다.
이 후에는 별자리보드에서 값을 읽고, 해당 값에 따라 LED를 제어합니다.
예를 들어, 1의 값을 받을 때는 Orange색 LED만 서서히 켰다, 껐다 할 수 있고,
2의 값을 받으면 Blue색 LED만 서서히 켰다, 껐다 할 수 있습니다.
그리고 3의 값을 받으면 모든 LED가 반짝일 수 있습니다.

별자리 모양, LED 제어 등은 사용자에 따라 얼마든지 변형해서 이용할 수 있습니다.

imgTwinkleStarSystem

 

회로도

회로도를 그릴 수 있는 Fritzing 도구로 제작한 ‘반짝반짝 작은별’ 제어장치 회로도 입니다.

구조는 매우 간단합니다.
다만, 사용하는 LED 수에 따라 선정리가 관건입니다.
imgTwinkleStarCircuit

 

제작순서

  • 1단계 : 제어장치 심플버전으로 제작 및 테스트
  • 2단계 : 별자리 보드 제작
    • 별자리 인쇄
    • 우드락에 붙이기
      imgTwinkleStarPicture
    • LED 배치
      imgTwinkleStarCircuit
  • 3단계 : 제어장치 연결 및 테스트
    imgTwinkleStarCircuitFinal
    imgTwinkleStarFinal

안드로이드 App

  • ‘반짝반짝 작은별’ App 다운로드 링크
  • 현재 버전은 하단에 4가지 토글버튼으로 각각 다른형태의 LED를 제어할 수 있습니다.

 

아두이노 소스코드

GitHub 주소 : https://github.com/forearth/arduino-learning-sample/tree/master/TwinkleStarNormalLED

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3); //RX, TX


#define fadeStar1 9
#define fadeStar2 10
#define fadeStar3 11

void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600);
 while (!Serial) {
 ; // wait for serial port to connect. Needed for native USB port only
 }

 mySerial.begin(9600);

}

void loop() {
 if (mySerial.available()) {
 byte data=mySerial.read();
 Serial.write(data);

 switch(data){
 case '1':
 star1();
 break;
 case '2':
 star2();
 break;
 case '3':
 star3();
 break;
 case '4':
 star4();
 break;
 default:
 return;
 }

 }
 if (Serial.available()) {
 mySerial.write(Serial.read());
 }

}

void star1(){
 for(int fadeValue=0; fadeValue<=255; fadeValue+=5){
 analogWrite(fadeStar1, fadeValue);
 delay(30);
 }
 for(int fadeValue=255; fadeValue>=0; fadeValue-=5){
 analogWrite(fadeStar1, fadeValue);
 delay(30);
 } 
}

void star2(){
 for(int fadeValue=0; fadeValue<=255; fadeValue+=5){
 analogWrite(fadeStar2, fadeValue);
 delay(30);
 }
 for(int fadeValue=255; fadeValue>=0; fadeValue-=5){
 analogWrite(fadeStar2, fadeValue);
 delay(30);
 } 
}

void star3(){
 for(int fadeValue=0; fadeValue<=255; fadeValue+=5){
 analogWrite(fadeStar3, fadeValue);
 delay(30);
 }
 for(int fadeValue=255; fadeValue>=0; fadeValue-=5){
 analogWrite(fadeStar3, fadeValue);
 delay(30);
 } 
}


void star4(){
 for(int fadeValue=0; fadeValue<=255; fadeValue+=5){
 analogWrite(fadeStar1, fadeValue);
 analogWrite(fadeStar2, fadeValue);
 analogWrite(fadeStar3, fadeValue);
 delay(30);
 }
 for(int fadeValue=255; fadeValue>=0; fadeValue-=5){
 analogWrite(fadeStar1, fadeValue);
 analogWrite(fadeStar2, fadeValue);
 analogWrite(fadeStar3, fadeValue);
 delay(30);
 } 
}