Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
京TECH道 第13回
Search
miiton
June 01, 2018
Technology
0
220
京TECH道 第13回
Raspberry PiとGoogle Homeで受付システムを作ってみよう
miiton
June 01, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
580
Qiita Bash アドカレ LT #1
okaru
0
170
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
730
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
290
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
180
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
300
Java 25に至る道
skrb
3
170
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.7k
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
5k
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
850
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Leo the Paperboy
mayatellez
1
1.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
780
Exploring anti-patterns in Rails
aemeredith
2
220
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
We Have a Design System, Now What?
morganepeng
54
8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Transcript
$!"!! # % 2)-6/. •
• &( – MQO! • HYKQNP]<<<Q]P<<< – ,1 ' • EMLHFJGYPUQ[ • 37+548+!2*80 # – S]]Z\D==RT]S^O<PYW=WTT]YX=FTPN • KN\ZOQ[[_9JT%HYYRVQ9IYWQ%"$<<< – ! "2)-6/.:; @>?B=>A=@C
$!"!! # %
%" #""!$ &
"-& • • • 9' • 9' /.*%- • 7DD?A>.8DB> • ,$) • !#(+ • • :<EDC<;>=@ 3125014036
%" #""!$ &
%" #""!$ &
#" $ #!""& % • 0/.21,')& ! (%3 • -,% 3 • -,% 3 • 3 • 3 • )'+* 3 % % $
%" #""!$ &
• – "! #
%" #""!$ &
1 • – = >!73+< – 6'/"5#0 – • 4 – E?@A(%/"1.0%93* – . ,-"&5#0$"(3* • ")77/"1040 :92")98 ; 73* ECDGBCFBEH
$!"!! # %
%" #""!$ &
$!"!! # %
$!"!! # %
$!"!! # %
%" #""!$ &
%" #""!$ &
%" #""!$ &
%" #""!$ &
%" #""!$ &
$!"!! # %
%" #""!$ &
$!"!! # %
$!"!! # % 0) •
)8:) – IJTRKLSSU=HN&(4,$% – (' 1.>97<3!#. +)>3 1 – 97<3!%."- – FQQMOL=GQPL32"- – 568;) $%/)&,$ %*- B@AD?@C?BE
$!"!! # % %#
• #)*,0# – ?IIFGE2@IHE# 3CB2?IIFGE32 • !666 – %"3CB2?IIFGE3&# ! #666 – A>DDD4(/-5'$.+1 666 :89<78;7:=
%" #""!$ &
& /-.1,-0,/2 ) * ) * نةٝ䬃ׅ "DUJPOTPO(PPHMF %JBMPHGMPX أؾ٦ؕ٦ؿؓٝ %" %" (!$' #+++) *
%" #""!$ &
• – &028:$.+0*2') – – (;7/32 – %*9*),504723-.16 "! #
%" #""!$ &
%" #""!$ &
% • %$# • ! "
%" #""!$ &
$!"!! # % ) %#$'"#&"%(
• ! •
%" #""!$ &
%" #""!$ &
4" • 421 – ' ( – ))) • – 421 – ,3 – 421 – $!#% & -+,/*+.*-0
%" #""!$ &
%" #""!$ &
% • – #'$& ! "
%" #""!$ &
& #! $##"% '
& #! $##"% '
# 便利なコマンド $ pinout
& #! $##"% '
$ vi l_chika.py
& #! $##"% '
import RPi.GPIO as GPIO import time GPIO_LED = 2 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_LED, GPIO.OUT) while True: GPIO.output(GPIO_LED, GPIO.HIGH) time.sleep(0.2) GPIO.output(GPIO_LED, GPIO.LOW) time.sleep(0.2)
%" #""!$ &
$ python l_chika.py
&#! $##"% '
%" #""!$ &
%" #""!$ &
• –
%" #""!$ &
& #! $##"% '
%" #""!$ &
& #! $##"% '
$ vi l_chika.py
& #! $##"% '
import RPi.GPIO as GPIO import time GPIO_LED = 2 GPIO_BUTTON = 26 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(GPIO_LED, GPIO.OUT) GPIO.setup(GPIO_BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_UP) while True: GPIO.wait_for_edge(GPIO_BUTTON, GPIO.FALLING) while True: sw_status = GPIO.input(GPIO_BUTTON) if sw_status == 0: GPIO.output(GPIO_LED, GPIO.HIGH) time.sleep(0.1) GPIO.output(GPIO_LED, GPIO.LOW) time.sleep(0.1) else: GPIO.output(GPIO_LED, GPIO.LOW)
& #! $##"% '
$ python l_chika.py
%" #""!$ &
&#! $##"% '
"" "!
%" #""!$ &
6FF@C>*7FD># !" • EGD)'$%@FF@C>,AFD>,EFJB?B>H # – #+6FF@C> !" +# (&<;9# – 5AHFD>*5=IJ4:8#6FF@C>*7FD> <;9#" • 6FF@C>*7FD> " 0./2-.1-03
%" #""!$ &
%" #""!$ &
# Google Homeを喋らせる環境のセットアップ $ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash – $ sudo apt-get install nodejs $ sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev $ mkdir notifier $ cd notifier $ npm init -y $ npm install google-home-notifier $ vi node_modules/mdns/lib/browser.js # google-home-notifierのREADMEにある変更を加える
& #! $##"% '
$ vi notify.js
& #! $##"% '
var googlehome = require('google-home-notifier'); var language = 'ja'; googlehome.device('Google-Home-Mini-XXXXXX', language); googlehome.notify('Hello, Google', function(res) { console.log(res); });
%" #""!$ &
$ node notify.js
& #! $##"% '
& #! $##"% '
%" #""!$ &
925+( $% A?@C>?B>AD EKTORQS<RQ<GRRNPL GRRNPL<ESSOSTJQT#!),08;( %/61 &(FOJPRNMPRU (% FOJPRNMPRU GRRNPL#3*794;-# ( )7:.08; ( "&%/61 GRRNPL<ESSOSTJQT =IH<GRRNPL= ''&%/61
&#! $##"% '
<690.+- • <690.MXXSUQ@NXVQ DA KPZTXWY@XW@MXXSUQ$:>5248. • /:="<690 EA LTOUXSRUX[" FA 7:>0 GA <690+!- /31?8% &) , '#MXXSUQ@KYYTYZOWZ/:=% '!7;!* (' ECDIBCHBEJ
%" #""!$ &
:04+) &' 27 DBCFABEADG • 41.= JTTPRO>HUUQUVNSV!*5;!/68< /9=)'()# • JTTPRO*-,=3)! " % $LK?!MI MI) @
%" #""!$ &
# Google Assistant用の環境セットアップ ※Google Assistant SDKのガイドを見ながらやり ます:ブラウザで "Google Assistant SDK"を検索
%" #""!$ &
$! • $!3>>8;7'2@@:@A5=A – 認証用credentialsファイル(予め用意) • wget http://192.168.11.X/credentials1.json • wget http://192.168.11.X/credentials2.json • &"% – !$# • 9AA?1))+0,(+./(++(4):=67B(9A<; ,*+/)*-),0
& #! $##"% '
& #! $##"% '
' )*+, 3125014036 - . - . نةٝ䬃ׅ "DUJPOTPO(PPHMF %JBMPHGMPX أؾ٦ؕ٦ؿؓٝ %" %" (!$& #///- .
& #! $##"% '
'-" 236: • 94=.*GQQLNK>FSSMSTJPT/8 < – I50%31<87.LQQLNKSJORNKS$( • .,# "+& • $<;7%GQQLNK>HQOK U*!)& – GQQLNK>HQOK.*,31<87. B@AD?@C?BE
%" #""!$ &
!% • #& (,) arecord --format=S16_LE --duration=2 -- rate=16000 --file-type=raw out.raw 「受付につないで」 <- 録音 • $'"(,) python -m googlesamples.assistant.grpc.pushtotalk -- device-model-id <DevideModelID> --device-id <DeviceID> -i out.raw --lang ja-JP --once -+,/*+.*-0
& #! $##"% '
• $ git clone https://github.com/PasonaTechLab/tech1805 $ cp tech1805/pushtotalk.py env/lib/python2.7/site- packages/googlesamples/assistant/grpc $ pip install RPi.GPIO $ vi tech1805/notify.js # Google-Home-Mini-XXXを書き換え $ cp tech1805/notify.js notifier/notify.js • python -m googlesamples.assistant.grpc.pushtotalk -- device-model-id <DevideModelID> --device-id <DeviceID> -i out.raw --lang ja-JP --once ! "
%" #""!$ &
&#! $##"% '
• – "! • $ # • – /::573%0:83 • /::573%-;;6;<19< • -2<6:9;%:9%/::573 • .617:547:= )'(+&'*&),
%" #""!$ &
– ( $7D; – 5DD@B>*6DC>%) – 3A=BD@?BDE!'"#&"# • 8794*2:; • <42# !'"#&"# .,-0+,/+.1
%" #""!$ &