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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
310
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
130
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
100
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
330
今日から始めるAmazon Bedrock AgentCore
har1101
4
410
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
470
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
450
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
Featured
See All Featured
Building Adaptive Systems
keathley
44
2.9k
Statistics for Hackers
jakevdp
799
230k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Producing Creativity
orderedlist
PRO
348
40k
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Optimizing for Happiness
mojombo
379
71k
Context Engineering - Making Every Token Count
addyosmani
9
660
For a Future-Friendly Web
brad_frost
182
10k
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
%" #""!$ &