• 검색 결과가 없습니다.

라즈베리파이를 이용한 인공지능 스피커 만들기

N/A
N/A
Protected

Academic year: 2021

Share "라즈베리파이를 이용한 인공지능 스피커 만들기"

Copied!
16
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

라즈베리파이를 이용한 인공지능 스피커 만들기

목원대학교 겸임교수

김영준

煎 마이크로소프트 수석연구원 헬로앱스 대표이사 Http://www.helloapps.co.kr [email protected]

Part 7

(2)

2

시리얼 통신을 통한

LED 제어

(3)

시리얼로 LED 제어하기

void setup() {

}

void loop()

{ while (Serial.available())

{ //LED:on;

String s1 = Serial.readStringUntil(':');

String s2 = Serial.readStringUntil(';');

process_event(s1, s2);

}

delay(10);

}

void process_event(String s1, String s2) { if (s1 == "LED" && s2 == “on")

DigitalWrite(13, HIGH) if (s1 == "LED" && s2 == “off")

DigitalWrite(13, LOW)

}

(4)

시리얼로 LED 제어하기

LED:On;

(5)

시리얼로 LED 제어하기

void process_event(String s1, String s2) { if (s1 == "LED" && s2 == "on")

{ DigitalWrite(13, HIGH)

NSSetAllColor(150, 150, 150) NSShow()

}

if (s1 == "LED" && s2 == "off")

{ DigitalWrite(13, LOW)

NSSetAllColor(0, 0, 0) NSShow()

} }

(6)

6

시리얼 통신을 통한

밝기 제어

(7)

시리얼로 밝기 제어하기

void setup()

{ NSBegin(8, 2) }

void loop()

{ while (Serial.available())

{ //brightness:50;

String s1 = Serial.readStringUntil(':');

String s2 = Serial.readStringUntil(';');

process_event(s1, s2);

}

delay(10);

}

(8)

void process_event(String s1, String s2) { if (s1 == "LED" && s2 == "on")

{ DigitalWrite(13, HIGH)

NSSetAllColor(150, 150, 150) NSShow()

}

if (s1 == "LED" && s2 == "off") { DigitalWrite(13, LOW)

NSSetAllColor(0, 0, 0) NSShow()

}

if (s1 == "brightness") { int b = s2.toInt();

int c = map(b, 0, 100, 0, 255) NSClear()

NSSetAllColor(c, c, c) NSShow()

}

}

(9)

9

시리얼 통신을 통한

컬러 제어

(10)

시리얼로 컬러 제어하기

void setup()

{ NSBegin(8, 2)

}

void loop()

{ while (Serial.available())

{ //color:red;

String s1 = Serial.readStringUntil(':');

String s2 = Serial.readStringUntil(';');

process_event(s1, s2);

}

delay(10);

}

(11)

void process_event(String s1, String s2)

{ if (s1 == "LED" && s2 == "on")

{ DigitalWrite(13, HIGH)

NSSetAllColor(150, 150, 150) NSShow()

}

if (s1 == "LED" && s2 == "off") {

DigitalWrite(13, LOW) NSSetAllColor(0, 0, 0) NSShow()

}

if (s1 == "brightness")

{ int b = s2.toInt();

int c = map(b, 0, 100, 0, 255) NSSetAllColor(c, c, c)

NSShow() }

if (s1 == "color") {

if (s2 == "red")

NSSetAllColor(255, 0, 0) if (s2 == "green")

NSSetAllColor(0, 255, 0) if (s2 == "blue")

NSSetAllColor(0, 0, 255) if (s2 == "yellow")

NSSetAllColor(255, 255, 0) if (s2 == "orange")

NSSetAllColor(255, 127, 0) NSShow()

} }

(12)

12

라즈베리파 파이 통신을 위한 최종 아두이노 업로드

코드

(13)

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);

bool serial_mode = false void setup()

{ mySerial.begin(9600);

NSBegin(8, 2)

}

(14)

void loop()

{ if (serial_mode == false)

{ d12 = DigitalRead(12)

DigitalWrite(13, d12) }

while (mySerial.available())

{ String s1 = mySerial.readStringUntil(':');

String s2 = mySerial.readStringUntil(';');

if (s1 != NULL && s1.length() > 0 && s2 != NULL && s2.length() > 0)

{ serial_mode = true

PrintLine(s1 + ":" + s2 + ";") process_event(s1, s2);

} }

while (Serial.available())

{ String s1 = Serial.readStringUntil(':');

String s2 = Serial.readStringUntil(';');

if (s1 != NULL && s1.length() > 0 && s2 != NULL && s2.length() > 0)

{ serial_mode = true

PrintLine(s1 + ":" + s2 + ";") process_event(s1, s2);

}

process_event(s1, s2);

}

delay(10);

}

(15)

void process_event(String s1, String s2)

{ if (s1 == "LED" && s2 == "on") {

DigitalWrite(13, HIGH) NSSetAllColor(150, 150, 150) NSShow()

}

if (s1 == "LED" && s2 == "off")

{ DigitalWrite(13, LOW)

NSSetAllColor(0, 0, 0) NSShow()

}

if (s1 == "brightness") {

int b = s2.toInt();

int c = map(b, 0, 100, 0, 255) NSSetAllColor(c, c, c)

NSShow() }

if (s1 == "color")

{ if (s2 == "red")

NSSetAllColor(255, 0, 0) if (s2 == "green")

NSSetAllColor(0, 255, 0) if (s2 == "blue")

NSSetAllColor(0, 0, 255) if (s2 == "yellow")

NSSetAllColor(255, 255, 0) if (s2 == "orange")

NSSetAllColor(255, 127, 0) NSShow()

} }

(16)

• 최종 코드 업로드 후, 라즈베리파이와 연결

참조

관련 문서

13)

냉장고는 가능하면 직사광선이 비치치 않는 그늘 및에 설치 하며 복사가 잘 일어날 수 있도록 냉장고의 위는 물체가 없는 곳에

음악분수는 학문적으로 새로운 것이 아니라 기존 기술들을 융합한 것이 고, 예술성을 더 추가한 것으로 학문적 연구 대상으로 분류되지 않아 연구 논문들이 거의

-소리가 나오고 있는 스피커, 이어폰 등의 내부 보여주기. -소리의

[r]

라즈베리파이와 하단케이스 조립 고무지지대

이에 식품의약품안전처와 교육부에서는 음료류 등의 당류 함량 저감과 함께 우리 학생들의 당류 섭취를 줄일 수 있도록 학교 급식에서 활용할 수 있는 당류

▌ (AI 활용 인프라의 조성 ) AI 기술개발의 활성화와 서비스 영역 확장을 위하여 정부는 기 업이 자체 기술개발 인수 합병 , ․ , Open source 기반의 플랫폼 활용 등을 할