SlideShare a Scribd company logo
1 of 63
情報通信工学実験第1:テーマ3
マイコンのプログラミング
秋田純一
akita@is.t.kanazawa-u.ac.jp
@akita11
(Rev.2019/12/18)
CC BY-SA
実験の目的
• マイコンのプログラミングを通して、コンピュー
タと実世界をつなぐ技術について学ぶ
– 実世界とをつなぐセンサ等の使い方を学ぶ
– 実世界とをつなぐセンサ等の電子回路の基本を
学ぶ
– マイコンとインターネットの連携について学ぶ
– アイディアを具体化する手法について学ぶ
2
モノのインターネット
IoT (Internet of Things)
実験の内容と注意
• 実験内容
– マイコン(M5stack)の使い方、Python入門
– センサの使い方、アクチュエータの使い方
– ブレッドボードの使い方
– センサ等の回路計算
– インターネットとの連携
– アイディアの具現化とプロトタイピング
• 実施上の注意
(※レポート作成に必要なので忘れずに)
– 作成したプログラムや回路は画面キャプチャ、写真、Save等
で、適宜保存しておく
– 途中のエラーとその対処、気づいたことは、適宜記録しておく
3
目安として
1週目
目安として
2週目
目安として
3週目
(準備)マイコンとコンピュータ
スマホPC
(Personal Computer)
マイコン
(Micro-controller)
演算性能
インターネット
接続
低価格
省サイズ
◎ ○~◎ △~○
○(WiFi経由) ◎ △~◎
△ ○ ◎
△ ○ ◎
4
実世界連携 △ ○ ◎
マイコンは、
演算性能は低めだが、
実世界(物理世界)との
連携が得意
(準備)使用するマイコン:M5stack
• 中国M5stack社の製品
– ESP32(WiFi/BluetoothLEつきマイコン)
(240MHz Dual Core, 600MIPS)
– センサ等の接続ができるコネクタ
– 小型液晶モニタ
– プッシュスイッチ(3個)
– 単体で「完成品」に近いプロトタイプを作成可能
– プログラミング環境:MicroPython / ブロック型言語
等
– 積み重ねて機能拡張が可能
5
例えばここで購入できる(金沢のマルツでも売っている)
https://www.switch-science.com/catalog/3647/
(準備)USBケーブルの抜き差し
• M5stack側は抜かない
• PC側を抜く
6
(準備)M5stackのプログラミング
7
「Scratch」に似た
ブロック型プログラミング
Blockly
MicroPythonで
テキストコーディング
Blockly→MicroPython
への変換が可能
(※逆は✕)
まずはBlocklyで、機器に慣れる&画面表示部分(User Interface; UI)の設計
→本格的にはMicroPythonでプログラミング
UI Flow
http://flow.m5stack.com/
http://flow01.m5stack.com/
(ブックマークしておくと便利)
※InternetExplorerだと不具合あり?
左上のバージョン番号が
V1.4.x(-beta)になっていることを確認
(古いバージョンの場合は から切り替える
1-1.お約束の”Hellow World”
• UI Flow (http://flow.m5stack.com/)をブラウザで開く
8
“Label”をドラッグ
“UI”内の”Label”に、Labelに
対する処理ブロックが現れる
“Show”ブロックを、“Setup”の下に「はめる」
( 「はまる」と、グレーから色が変わる)
※”Setup”は、起動後に実行される処理を「はめる」場所
※不要なLabel等はドラッグ時に
現れる「ゴミ箱」へ入れれば消去
http://flow01.m5stack.com/
1-1.M5stackの電源のON/OFF
• PC等にUSB-Cケーブルで接続して給電
– 使用後はケーブルを抜けば電源OFF(ブチ切OK)
– 内蔵バッテリもある(この実験では普段は使わない)
9
主電源
(普段はOFFにしておく)
※ONにするとバッテリから給電&充電
本体電源SW(赤)
・1回押し→リセット(※よく使う)
・2回押し→電源ON/OFF(バッテリ動作時)
1-1.プログラムの転送・実行
10
左下のApi keyをクリック
M5stackのディスプレイに表示される
”API Key”(8桁の英数字)を入力
※言語を選べるが、Englishがオススメ
M5stackがOnlineになる
“Run”ボタンで、M5stackに
プログラムを転送し、実行
”Save”でプログラムを保存できる
※「1a.m5f」のように、課題ごとに名前を
変えておくこと(レポートで必要)
※”Load”で読み込むこともできる
※画面キャプチャもあわせて
保存しておくと便利
初回のみ行う設定
本体ディスプレイの右上に
緑マークが出ればOK失敗が続くときは再接続
or 本体リセット
1-1.テキストの属性を変更する
11
置いたLabel(テキスト)をクリック
→Labelの属性(位置、フォント等)が変更できる
位置や色、フォント(文字サイズ)を変更して実行してみる
また、背景の色の変更や、適当な図形(矩形・円)なども描画してみる
※ここの”text”属性で、画面上に表示される文字列を設定できるが、
プログラムの”Setup”内で設定してもよい(結果は同じになる)
黒枠白字の内容は課題
として実施すること
(結果(写真等)・プログラ
ムも保存しておく)
※プログラムとその動作の対応が
怪しい場合がある(バグ)ので、
あまり深追いはしない・・・
1-2.本体ボタンの動作
12
いずれかのボタンを、いろいろな押し方で押して
Labelを変更するプログラムを実行してみる
ButtonAを押した時に実行される処理を書くブロック
※検出するボタンの種類・押し方などを選べる
ButtonA
ButtonB
ButtonC
1-2.本体ボタンの動作
13
Timer内の”Wait”で、指定時間だけ待機する
Waitで指定した時間待つ動作を確認する
1-3.Pythonでのプログラミング
14
このボタンで、Blocklyで記述したプログラムを
Python言語 (MicroPython)に変換できる
※Python:組み込み分野やAI分野でよく使われる言語
画面の背景色の設定
Labelの配置と設定
buttonAが押された
ときの動作(関数)の定義
buttonAの操作と、そのときに
呼ばれる関数の割当
Labelのテキストの設定インデントで、グループを指定(C言語の {} と同様)
Blocklyプログラムと、Pythonプログラムとの対応を理解する
おまじない
(使うライブラリの宣言)
画面右下の”CodeLock“を”OFF”にしておく
1-3.Pythonでのプログラミング
• UI Flowで書いたPythonプログラムの保存方法
(右上メニュー”Save”はBlocklyの保存のみなので、
プログラムをテキストとして保存する)
– テキストファイルの編集ソフト
(Windowsの「メモ帳」など)を開く
– UI Flowで書いたPythonプログラムを全選択→コピー
– テキスト編集ソフト(メモ帳など)へ
ペースト(貼り付け)し、ファイル名をつけて保存
• このとき、改行がなくなって一行になってしまうが、再び
UI Flowにコピー&ペーストで戻せば、正しく改行される
15
全選択して
コピー&ペースト
1-3.Pythonの文法(のすごく要点)
• 基本的にC言語(C++)やJavaに近いので、
差分(違い)のみ気をつければよい
16
label0 = M5TextBox(...)
def buttonA_wasPressed():
label0.setText('button A Pressed')
wait(1)
pass
関数定義の最後は
コロン(「:」)
関数定義などの「グループ」の範囲は、
インデント(行の戦闘にTABキーまたは
複数のスペース)で示す
行末はセミコロン(「;」)
をつけない
文字列はシングル
クオート(「’」)で囲う
オブジェクト(ここではlabel0)に
付随する処理(「メソッド」)は
ドット(「.」)をつけて示す
オブジェクト(ここではlabel0という名
前)を作成する。オブジェクトは、値
や処理を伴う集合体の概念
特に意味はない
(空行の代わり)
1-3.Pythonでのプログラミング
• 動作仕様
– ラベルを1つおく
– 初期状態では、label0=“a”とする
– ボタンAを押したら、label0を1秒間だけ”A”に変更
し、その後”a”に戻す
– ボタンBを押したら、画面中央(160,120)に半径30
の円を描画し、1秒後に消す
17
直接、以下の動作をするPythonプログラムを記述し、実行させる
※記述の間違いがあると実行時にエラーが表示されるので、内容を確認してデバッグする
※UI Flowのディスプレイ上でLabelや図形を置いたり変更すると、プログラムも変わる
※必要に応じてPythonの文法をWebページや書籍で調べる(そして、少しずつ慣れる)
1-4.センサの使い方:Button
• M5stack純正の各種センサ等の「Unit」を接続
し、UI Flowの”Unit”から使用できる
18
Unitを追加
DualButtonを選択
(接続するPortをBとする)
DualButtonユニットが
追加された
実際にDualButtonユニットを、
指定した”PortB”に接続する
やや見にくいが、
スクロールバーでスクロール
コネクタの片面の両側にヤマが
あるので、ソケットにあわせる
この+マークが現れない場合は、
画面外にはみだしているので
ブラウザの文字を小さくしてリロードする
1-4.センサの使い方:Button
19Blocklyプログラムと、Pythonプログラムとの対応を理解する
“Units”内に、追加したUnitに関する
ブロックが現れる
接続したButtonユニットの
赤ボタンを押した時に
label0を”Hello M5”とする
プログラム
対応するPythonのプログラム
“DualButton”ユニットの
オブジェクトを取得
(PortBに接続を指定)
取得したオブジェクトに
対して処理を記述
Pythonに変換
1-4.センサの使い方:Button
• 動作仕様
– ラベルを1つおく
– 初期状態では、label0=“”とする
– 赤ボタンを押したら、label0を1秒間だけ”Red”に
変更し、その後””に戻す
– 青ボタンを押したら、画面中央(160,120)に半径30
の円を描画し、1秒後に消す
20
直接、以下の動作をするPythonプログラムを記述し、実行させる
1c.で作成したPythonプログラムとの関連・対応に注意
DualButtonユニットを、別のポート(例えばPortC)に接続し、
同様の動作をするプログラムを記述して動作させる
1-5.センサの使い方:Light(明るさ)
21
Lightを選択
(接続するPortをB or Dとする)
Lightユニットの値(明るさ)をディスプレイに表示する
プログラムをPythonで記述し動作させる
※Blocklyからの変換を用いてよいが、できるだけPythonでゼロから書いてみよう
Unitで設定したPortに接続する
Lightユニットは、センサ面の明るさに応じた
電圧が出力され、それを取得できる
センサ
面
※接続していないユニットは、UI Flowの左側画面から
削除しておく。Pythonでは冒頭のimportを削除する。
1-6.センサの使い方(ジョイスティック)
• ジョイスティックは、Unitにないので、
信号を直接読み取る
– Unitに「JoyStick」があるが、使うものとは別物
• PortD=2本の信号線(IOピン34番と35番)
(IO=Input/Ouput, 入出力のこと)
• スティックの傾き(X軸・Y軸)に
応じて、それぞれの電圧が
変化する
22
PortDに接続する
1-6.センサの使い方(ジョイスティック)
• IOピンの電圧は、”analogRead()”で取得できる
23
from m5stack import *
from m5ui import *
from uiflow import *
from easyIO import *
setScreenColor(0x222222)
label0 = M5TextBox(160, 120, "Text", lcd.FONT_Default,0xFFFFFF, rotate=0)
while True:
label0.setText(str(analogRead(34)))
wait(0.1)
このPythonプログラムを入力し、動作させる。
スティックを傾けたときに表示される値の変化を確認する
IOピン34番の電圧を取得
取得した数値を文字列に変換し、テキストに設定
0.1秒待つ
この動作を無限ループ
analogRead()を使うための宣言(追記する)
1-6.センサの使い方(ジョイスティック)
• 動作仕様
– ラベルを2つおく(label0, label1)
– ジョイスティックのX軸の値をlabel0に表示する
– ジョイスティックのY軸の値をlabel1に表示する
– 表示を0.1秒ごとに更新する
24
直接、以下の動作をするPythonプログラムを記述し、実行させる
1-7.センサの使い方(ToF)
• “ToF”ユニット=センサ面から対象物までの距
離を計測する
– ToF = Time of Flight
※光の往復時間から
距離を計測する
– Unitから”TOF”を追加
(PortAを選択)
– PortA(複数あるが
いずれでもOK)に
接続する
25
ToFセンサから取得した値(単位:mm)をディスプレイに
表示するプログラムを記述し、実行させる(※Blocklyを参考に)
1-8.センサの使い方(Color)
• “Color”ユニット=対象物の色(RGB値)を計測
– Unitから”COLOR”を追加
(PortAを選択)
– PortA(複数あるが
いずれでもOK)に
接続する
26
1-8.センサの使い方(Color)
• COLOR Unitの”get red”で赤の値が取得できる
• ただし感度が高すぎるため、ほぼ255に飽和
• “get rawData”で、センサの値を直接取り出す
– “get rawData”は配列で取得するので、
“Variables”内の変数を定義し、
“Lists”内の関数を使って、
個別に取得する
27
Colorセンサから取得した値(R, G, Bそれぞれ)をディスプレイに
表示するプログラムを記述し、実行させる(※Blocklyを参考に)
センサの値を直接取得し、
変数”color”に代入(実体は配列)
配列の1番目の要素=明るさ
配列の2, 3, 4番目の要素=赤(R), 緑(G), 青(B)
1-9.タッチセンサ
• 静電容量式タッチセンサ
• 触ると「ON」になる、スイッチのように扱える
• ButtonユニットのBlueボタンと同様に振る舞う
– 追加するUnitで指定したPortに接続する
28
タッチセンサに触れると画面表示が変わるプログラム(Python)を
記述し、動作させる
このタッチセンサは仕様上、
ButtonとはON/OFFが逆になる
・「タッチ」=「ButtonがRelease」
・「タッチしない」=「ButtonがPressed」
1-10.アクチュエータの使い方(サーボ)
• 指定した位置にアームを移動できる
サーボモータ
• Unitから追加し、指定したPortに接続
29
※アクチュエータ (actuator)
=環境に作用を与えるもの
(センサ (sensor)の逆の機能)
※サーボが動くとリセットがかかる
場合があるが、 とりあえず気にしない
1-10.アクチュエータの使い方(サーボ)
• サーボの角度は”write_angle()”で指定できる
30
from m5stack import *
from m5ui import *
from uiflow import *
import unit
setScreenColor(0x222222)
servo0 = unit.get(unit.SERVO, unit.PORTC)
while True:
servo0.write_angle(30)
wait(1)
servo0.write_angle(60)
wait(1)
このプログラムを入力して実行し、動作を確認する。
またサーボの移動順序を自分で決め、それを実現する
プログラムを記述して実行する
1-11.アクチュエータの使い方(LEDテープ)
• コマンドで複数LEDのRGB値を個別に
指定できるLED(NeoPixel)
31
接続するPortと
LED数(この実験の
機材では10個)を指定
指定したPortに接続
1-11.アクチュエータの使い方(LEDテープ)
32
Blocklyのブロックとそれに対応するPythonプログラムを参考に、
自分でLED点灯の仕様を決め、それを実現するPythonプログラムを記述して実行する
indexで指定した番号のLEDの色を設定
indexで指定した範囲の
LEDの色をまとめて設定
indexで指定した範囲の
LEDの色をRGB値で設定
すべてのLEDの色をまとめて設定
すべてのLEDの色を変えずに明るさのみを設定
設定した各LEDの色を実際に表示する
※これを実行した時点で、実際のLEDの色が変わる
2-1.ブレッドボードの使い方
33
穴は、内部で矢印の方向に接続されている
部品や配線ケーブルを穴に差し込み、電子回路を作成できる
2-2.LEDの接続と回路
34
赤線の箇所が内部で接続
されていることに注意
配線ケーブルはどの色も機能は同じだが、
電源のマイナス(GND; Gと表記)側は
黒い配線ケーブルを使うのが通例
IOピン26番
電源のマイナス(GND; G)
長い方
2-2.LEDの接続と回路
35
IO26
GND
1kΩ
2b.でブレッドボード上に作成した回路の回路図
2b.で作成した回路が、上記の回路図となることを理解する
※同じ記号(GND)のところはつながっている
2-2.LED点滅(Lチカ)
36
from m5stack import *
from m5ui import *
from uiflow import *
setScreenColor(0x222222)
pinLED = machine.Pin(26, mode=machine.Pin.OUT)
while True:
pinLED.value(1)
wait(1)
pinLED.value(0)
wait(1)
IOピン26番に”1”を出力=3.3Vが出力され、LEDが点灯
IOピン26番に”0”を出力=0Vが出力され、LEDが消灯
このプログラムを実行させ、LEDを点滅させる。
またwait()を変更してLEDの点滅周期を変える。
IOピン26番のオブジェクトを生成(出力モード)
2-3.複数のLチカ
37
• 動作仕様
– 赤LEDを、抵抗を通してIO5に接続
– 緑LEDを、抵抗を通してIO26に接続
– 以下の順序でLEDを点滅させる
1. 赤のみ点灯(0.5秒間)
2. 緑のみ点灯(0.5秒間)
3. 赤と緑を点灯(0.5秒間)
4. いずれも消灯(0.5秒間)
直接、以下の動作をするPythonプログラムを記述し、実行させる
2-4.LEDに流れる電流を求める
38
IO26
GND
1kΩ
“1”のときは、電源電圧の3.3Vとなる
→内部に3.3Vの電圧源(点線)があると考えればよい
http://akizukidenshi.com/catalog/g/gI-00624/
OptoSupply社OSDR5113A
VF
VF : Forward Voltage(順方向電圧)
→この電圧の電圧源と考えればよい
LEDのデータシートをダウンロードし、VFを読み取り、
それをもとにLEDに流れる電流を求める
※データシートはアカンサスポータルの
この資料と同じところからダウンロードする
※英文のデータシートだが、得るべき情報は
一部なので、慣れれば楽(になるはず)
min(最小値)、typ(標準値)、max(最大値)が
載っている場合は、とりあえずtypを参照
2-5.明るさセンサ(CdS)の接続と回路
39
IOピン36番
電源のプラス(3.3V)
(「3V3」と表記)
GND
電源のプラス(VDDなどと表記)側は
赤い配線ケーブルを使うのが通例
明るさセンサ(CdS)
※CdS(硫化カドミウム)は明るさに応じて
電気抵抗が変わる特性がある
CdSを抵抗としてこの回路の回路図を描き、CdSの抵抗が
100Ωの場合と10kΩの場合の、IOピン36の電圧を求める
2-5.明るさセンサ(CdS)の読み取り
40
from m5stack import *
from m5ui import *
from uiflow import *
from easyIO import *
setScreenColor(0x222222)
label0 = M5TextBox(100, 100, "Text", lcd.FONT_Default,0xFFFFFF, rotate=0)
while True:
label0.setText(str(analogRead(36)))
wait(0.1)
IOピン36番の電圧を読み取り、
文字列に変換してlabel0に設定
このプログラムを実行させ、以下の3つの場合で値を読み取り、IOピン36の電圧を求める。
※電圧の計算は次項を参照
(a)手で覆って暗くした場合、(b)部屋の照明下、(c)スマホのライト等の照明を直接照射
2-6.明るさセンサ(CdS)の電圧の計算
• analogRead()の戻り値は、加える電圧[V]に
(ほぼ)比例
– 0V付近と3.3V付近は、やや線形性が崩れるが、
ほぼ無視できる
• 今回の回路では、
抵抗分圧から
関係が求められる
41
value = 310×Vin[V]
入力電圧Vin[V]
analogRead()の戻り値value
analogRead()の特性の実測値
2-7.温度センサの接続と回路
• アカンサスポータルから使用する温度センサ
「LM61」のデータシートをダウンロードする
• データシートから、動作に必要な
回路接続を読み取る
– この部品はTO-92パッケージ
– 部品の足と名称の対応に注意
(どちらから見た図かをよく考える)
42
製品情報:http://www.tij.co.jp/product/jp/LM61
※データシートの読み取りに便利な主な英単語
• power Supply=電源(電源のプラス側)
• output=出力
• ground=接地(電源のマイナス(negative)側、「G」と表記
• bottom view=底面図(部品を裏側(足側)から見た図)
2-7.温度センサの接続と回路
• 読み取った足と名称の対応に注意しながら、
電源、GND、出力(VOUT)をブレッドボードで
M5stackに接続
– くれぐれも対応関係に注意
(心配なら質問する)
– 電源は5Vを供給
– VOUTはIO35へ
– 足は根元から曲げず、少し広げるだけでOK
43
接続する前に、配線をよくよく確認する。
万一、部品が熱くなる、異臭がするなど
異常があったら、すぐに配線ケーブルを
はずし、接続をよくチェックする
2-7.温度センサの読み取り
44
from m5stack import *
from m5ui import *
from uiflow import *
from easyIO import *
setScreenColor(0x222222)
label0 = M5TextBox(100, 100, "Text", lcd.FONT_Default,0xFFFFFF, rotate=0)
while True:
label0.setText(str(analogRead(35)))
wait(0.1)
IOピン35番の電圧を読み取り、
文字列に変換してlabel0に設定
analogRead()で取得した値を、「温度[℃]」の値に変
換(演算)して表示することもできる
このプログラムをもとに、温度を[℃]単位で表示する
2-8.インターネット連携:IoTへ
• PCやスマホだけでなく、「いろいろなもの」が
インターネットにつながる世界
=IoT (Internet of Things) → AIの出番
45
クラウド
IoT
大量のデータが集まる
=AIで分析
※2-8, 2-9, 2-10の内容はEdelWorksの古川光氏の協力で作成されました
2-8.インターネット連携:リモートボタン
• スマホ(ブラウザ)からM5stackを操作してみる
46
“Remote”内に、スマホ連携の処理がある
ブラウザに「ボタン」を表示し、
それを押したらM5stackで処理を
行うプログラム
(ボタンっぽくないが押せる)
(ちょっと薄くて見にくいが)
「QRコード表示アイコン」で
QRコードを表示し、
それをスマホ等でスキャンして
ブラウザで制御ページを表示
このプログラムを実行し、スマホからM5stackを制御してみる
2-8.インターネット連携:リモートラベル
• 逆にM5stackからスマホ(ブラウザ)を制御
47
スマホ(ブラウザ)上にラベルを表示し、
そこに情報(この例では、ToFセンサで
取得した距離)を表示する例
このプログラムを参考に、M5stackで取得したセンサ情報をスマホに表示してみる
スマホ(ブラウザ)側で表示を
自動更新する間隔[ms]
(この例では3秒)
ToFセンサで取得した距離情報
変数(Variable)を作成し(この例では”distance”という変数)、
それに必要な値を代入して表示などに使用することもできる
変数の作成 変数の更新(値の取得)
2-9.インターネット連携(Webスクレイピング)
• M5stackがWebサーバにアクセスし、データを
取得する
– PCがWebサーバにアクセスしてWebページを表
示するのと、原理は同じ
– ここでは、天気情報を取得してみる
48
HTTPリクエスト
HTTPレスポンス
Webサーバ
普通のPCでアクセスする場合
2-9.インターネット連携(Webスクレイピング)
49
“Sign Up”からアカウントを作成
※16歳以上とライセンス同意をチェック)
※メルマガを登録するか聞かれるが
必要ならチェックしておく
※何に利用するかを回答(任意)
APIキーを
取得する
(メモしておく)
天気情報を取得する都市を検索(例:金沢)
都市名を選択
• Webページを取得し、その中の情報を抜き出
して利用する(スクレイピング)
– 例として、無料Webサービスから天気情報を取得
https://openweathermap.org/
2-9.インターネット連携(Webスクレイピング)
• 取得したAPI Keyと都市名を使って、以下の
URLで天気情報などを取得できる(JSON形式)
50
※JSON(JavaScript Object Notation)
Webからのデータの取得などでよく使われるデータ形式
見れば、なんとなく意味はわかるはず
詳しくは次項&→https://www.json.org/json-ja.html
http://api.openweathermap.org/data/2.5/weather?q=[都市名]&appid=[APIキー]
このURLへアクセスすると、
このようなデータが返送される
(JSON形式)
※[都市名]のところは、kanazawa などが入る
※APIキーは、先ほど記録したAPI Key
ここに現在の天気が
書いてある
この部分({}で囲まれている)が、”weather”のリストの最初(1つだけ)の要素
補足:JSON(JavaScript Object Notation)
• AjaxやREST APIなどWebからのデータの取得などでよく使わ
れるデータ形式
• データ構造は「名前」と「値」の集合(オブジェクト/構造体/
ハッシュテーブル/連想配列など)
51
・「:」で名前(key)と値(value)を分ける
例:”coord”の値は、{}内のオブジェクト
・名前を指定して値を取得する
・以下の型を用いることができる
-文字列 ("...")
-数値 (123, 12.3, 1.23e4 など)
-ヌル値 (null)
-真偽値 (true, false)
-オブジェクト ({ ... })→入れ子構造
-配列 ([...])
※配列は0番, 1番・・・の要素を持ち
[0], [1]・・・で指定する
名前(key)
[ ]で囲まれた部分
=配列(list)
(0番, 1番,…の
要素をもつ)
※この例では0番のみ
{ } で囲まれた
オブジェクト(かたまり)
値(value)
※この例 {}で囲われたオブジェクト(2つのkey&valueの組:入れ子構造)
2-9.インターネット連携(Webスクレイピング)
項目“weather”の中のリストの
0番目(最初に現れるデータ)の
”main”の値を取得
52
天気情報を取得するURLを指定
(都市名とAPI Keyを指定する)
取得したJSON形式のデータを
パースして変数に保持
“GET”を選択(HTTPのmethod)
• 例として以下のプログラムで、指定したURLから
JSONデータ取得→そこからmain部分を切り出し
(パース)→それをlabel0(置いておく)で表示
このプログラムを参考に、M5stackで取得した天気や気温などの情報を表示してみる
2-10.インターネット連携(IFTTT:概要)
• M5stackから、IFTTTという機能を使える
Webサーバへデータを送信する
– IFTTTサーバが、受信したデータをGoogleスプレッ
ドシートに記録するように設定する
– そのスプレッドシートをPCから確認する
53
HTTPリクエスト
(データを送信)
HTTPレスポンス
Webサーバ(IFTTTサーバ)
記録されたデータの確認
Googleサーバ
Webページの表示
受信データをGoogle
スプレッドシートに記録
2-10.インターネット連携(IFTTT:準備1)
54
アカウントを作成
• Webサービスどうしを連携するサービスIFTTT
※IFTTT=IF This Then That:条件で行う動作を定義
• 例として、「M5stackからWebアクセスしてGoogleスプ
レッドシートに情報を記録する」という動作をさせてみる
https://ifttt.com/
アカウント(顔マーク)
をクリック
→”Create”を選択
使うサービスとして
“webhooks”を
検索して選択
動作を起こす条件を定義する(クリック)
2-10.インターネット連携(IFTTT:準備2)
55
このイベント(Webアクセスを受けたとき)
に適当な名前をつけておく
(このイベント名はあとで使う)
「Webアクセスを受けた
とき」を条件(trigger)に
設定する
条件「M5stackからWebアクセス」のイベントを設定する
2-10.インターネット連携(IFTTT:準備3)
56
接続の確認やアクセス許可
などを設定(OKで進む)
※Actionは”Add row to spreadsheet”を指定
行に書き込む
フォーマット
スプレッドシート名
スプレッドシート
のディレクトリパス
条件が起こった(trigger)ときに
行う動作を指定する
“Google sheets”を
検索して指定
とりあえずすべて
deaultのままでOK
条件と動作の
設定を完了
条件(M5stackからアクセス)が起こった時に行う動作(GoogleSpreadsheetへ記録)を指定する
2-10.インターネット連携(IFTTT:準備4)
57
APIキー(“use/”のあとの文字列)を記録しておく
M5stackからWebアクセスするためのAPI Keyを取得する
先ほど設定した
サービスを確認
“Webhooks”の
設定を確認する
“Settings”を開く
2-10.インターネット連携(IFTTTアクセス)
• 以下のURLで、Googleスプレッドシートに記録
されていく(はず)のを確認する
58
Google (https://www.google.com/)をWebブラウザで開き、ログイン後に
Googleドライブを開くと、このGoogleスプレッドシートに記録されるはず
http://maker.ifttt.com/trigger/[イベント名]/with/key/[APIキー]
※[イベント名]のところは「準備2」(p.47)で指定したイベント名
※APIキーは、先ほど記録したAPI Key
まずはPCやスマホのWebブラウザから、このURLを直接入力し、
記録が成功(Congratuaration!...というメッセージが出る)のを確認する
2-10.インターネット連携(IFTTTアクセス)
59
さきほどのURL
引数の”message”の内容を、
Key=“value1”に格納
“POST”を選択(HTTPのmethod)
関数”post”を定義(引数=”message”)
※青い歯車マークで引数を追加する
M5stackのボタンAを押したら、”message”=「A」として
関数postを呼ぶ=M5stackからWebアクセスがおこる
このプログラムを参考に、M5stackからIFTTT経由でGoogleスプレッドシートに記録をしてみる
この+マークで、keyにvalue
を追加するブロックを作成
3.アイディアの具体化
• ものをつくるのためには「仕様」が必要
– 「仕様」を決めてからものを作る?
– 作って、使ってみて、「仕様」を決める?
– 「完璧な完成品」を作ってから試す?
– 「とりあえず動く完成品」を作り、試して、
「アイディアが正しかったか」を検証し、
改良して作って・・・を繰り返す?
60
デザイン思考
(Design Thinking)
作る=思考の道具
※詳しくは「デザイン思考」や「design thinking」で検索(多くの文献がある)
プロトタイプ
(Prototype)
※デザイン(design)は
「設計」という意味もある
(「絵を描く」だけがデザインではない)
3.アイディアの具現化(課題)
• 「あったら便利なもの、生活がよくなるもの」
を1つ考え、M5stackで試作する
– 実用レベルの完成度である必要はない
– あくまでも試作品・動作検証ができればよい
– 資料で扱っていない機能ブロックを使ってもOK
• 例:※これと全く同じものは✕、ヒントにするはOK
– 部屋に誰か入ってきたらスマホに通知
(ToFセンサ・Remoteを使えば作れそう)
– 視覚障害者向けの、対象物の色を音で表現する機器
(Colorセンサ・スピーカを使えば作れそう)
– 暗くなったら部屋の電灯をつける
(Lightセンサとサーボモータ(吊り紐を引く)でできそう)61
3.実装上の注意
• PortA~Eには、以下の通りIOピンが接続され
ている。
• 以下のIOピンは、PortA~Eコネクタと本体コネ
クタに接続されていて、同時に使えないので
注意
– PortA: IO21, IO22
– PortB: IO26, IO36
– PortC: IO17, IO16
– PortD: IO35, IO34
– PortE: IO13, IO5
62
レポートについて
• 【最後の課題以外】以下の内容を課題ごとに順に記載
– 課題の内容(指示された課題内容を自分の言葉で)
– 課題の結果(作成したプログラム、動作の観察など。写真や画面
キャプチャを用いてよい)
– 結果に対する考察(得られた知見など。途中で失敗やエラーがあ
ればその原因と対処についても記載)
• 【最後の課題】以下の内容を記載
– 作ったものの概要
– それを作ろうと思った理由
– 試作結果(実機の写真、プログラム(Blockly or MicroPython))
– 実際に使ってみての感想・改善点
• 提出方法
– PDF形式でアカンサスポータルの「テーマ3」のレポート提出箇所へ
– 表紙のみ、必要事項を掲載して印刷し、秋田居室(2B714) or 実験
室で手渡し
63

More Related Content

What's hot

ゲームAIの中の数学(上)
ゲームAIの中の数学(上)ゲームAIの中の数学(上)
ゲームAIの中の数学(上)Youichiro Miyake
 
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)Toshihiko Yamasaki
 
Marp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドMarp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドIosif Takakura
 
複数台のKinectV2の使い方
複数台のKinectV2の使い方複数台のKinectV2の使い方
複数台のKinectV2の使い方Norishige Fukushima
 
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~SystemIntegrator2
 
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたらもしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたらYoshiki Hayama
 
KiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアルKiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアル裕士 常田
 
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic ArithmeticZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmeticharmonylab
 
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3Toshinori Hanya
 
よわよわPCによる姿勢推定 -PoseNet-
よわよわPCによる姿勢推定 -PoseNet-よわよわPCによる姿勢推定 -PoseNet-
よわよわPCによる姿勢推定 -PoseNet-Yuto Mori
 
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けてThe Whole Brain Architecture Initiative
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some PreliminaryDeep Learning JP
 
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめMLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめKenichi Sonoda
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018Takahiro Kubo
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...西岡 賢一郎
 
ユーザーインタビューからその後どうするの? 得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回
ユーザーインタビューからその後どうするの?得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回ユーザーインタビューからその後どうするの?得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回
ユーザーインタビューからその後どうするの? 得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回Yoshiki Hayama
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)Masahiro Suzuki
 
機械学習は化学研究の"経験と勘"を合理化できるか?
機械学習は化学研究の"経験と勘"を合理化できるか?機械学習は化学研究の"経験と勘"を合理化できるか?
機械学習は化学研究の"経験と勘"を合理化できるか?Ichigaku Takigawa
 
スタートアップの 3 分ピッチテンプレート
スタートアップの 3 分ピッチテンプレートスタートアップの 3 分ピッチテンプレート
スタートアップの 3 分ピッチテンプレートTakaaki Umada
 

What's hot (20)

ゲームAIの中の数学(上)
ゲームAIの中の数学(上)ゲームAIの中の数学(上)
ゲームAIの中の数学(上)
 
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
 
Marp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドMarp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライド
 
複数台のKinectV2の使い方
複数台のKinectV2の使い方複数台のKinectV2の使い方
複数台のKinectV2の使い方
 
設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~設計書自動生成への取り組み~手書き設計書から脱却するには?~
設計書自動生成への取り組み~手書き設計書から脱却するには?~
 
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたらもしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら
 
KiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアルKiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアル
 
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic ArithmeticZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
 
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
Object Detection & Instance Segmentationの論文紹介 | OHS勉強会#3
 
よわよわPCによる姿勢推定 -PoseNet-
よわよわPCによる姿勢推定 -PoseNet-よわよわPCによる姿勢推定 -PoseNet-
よわよわPCによる姿勢推定 -PoseNet-
 
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
MLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめMLflowで学ぶMLOpsことはじめ
MLflowで学ぶMLOpsことはじめ
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
 
ユーザーインタビューからその後どうするの? 得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回
ユーザーインタビューからその後どうするの?得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回ユーザーインタビューからその後どうするの?得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回
ユーザーインタビューからその後どうするの? 得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
 
深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
 
機械学習は化学研究の"経験と勘"を合理化できるか?
機械学習は化学研究の"経験と勘"を合理化できるか?機械学習は化学研究の"経験と勘"を合理化できるか?
機械学習は化学研究の"経験と勘"を合理化できるか?
 
スタートアップの 3 分ピッチテンプレート
スタートアップの 3 分ピッチテンプレートスタートアップの 3 分ピッチテンプレート
スタートアップの 3 分ピッチテンプレート
 

Similar to M5Stackを使ったIoTプログラミング

Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)
Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)
Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)Takeshi Takahashi
 
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-HidekiNishizawa
 
LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ Masanori Saito
 
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスクエッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスクEiji Sasahara, Ph.D., MBA 笹原英司
 
IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編Nobuaki Aoki
 
PCCC22:富士通株式会社 テーマ3「量子シミュレータ」
PCCC22:富士通株式会社 テーマ3「量子シミュレータ」PCCC22:富士通株式会社 テーマ3「量子シミュレータ」
PCCC22:富士通株式会社 テーマ3「量子シミュレータ」PC Cluster Consortium
 
2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットと SNS上での構築とその課題
2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットとSNS上での構築とその課題2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットとSNS上での構築とその課題
2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットと SNS上での構築とその課題Ruo Ando
 
モノのインターネット(IoT)の不都合な真実
モノのインターネット(IoT)の不都合な真実モノのインターネット(IoT)の不都合な真実
モノのインターネット(IoT)の不都合な真実Naoto MATSUMOTO
 
2017年度 河野ゼミ スタートアップ資料
2017年度 河野ゼミ スタートアップ資料2017年度 河野ゼミ スタートアップ資料
2017年度 河野ゼミ スタートアップ資料義広 河野
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタkunihikokaneko1
 
情報産業の最新技術動向
情報産業の最新技術動向情報産業の最新技術動向
情報産業の最新技術動向Takao Ikoma
 
20190712 polkadot japan meetup
20190712 polkadot japan meetup20190712 polkadot japan meetup
20190712 polkadot japan meetupNagato Kasaki
 
The Recommendations for DX in Commercial Education
The Recommendations for DX in Commercial EducationThe Recommendations for DX in Commercial Education
The Recommendations for DX in Commercial Educationseastar orion
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させるYuto Takei
 
アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方Takeshi Mikami
 
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座SORACOM,INC
 
イングランドの教訓から学ぶ コンピューティング教育
イングランドの教訓から学ぶ コンピューティング教育イングランドの教訓から学ぶ コンピューティング教育
イングランドの教訓から学ぶ コンピューティング教育Yu Ukai
 
ブロックチェーンを利用した非集中型学習支援システムの検証
ブロックチェーンを利用した非集中型学習支援システムの検証 ブロックチェーンを利用した非集中型学習支援システムの検証
ブロックチェーンを利用した非集中型学習支援システムの検証 Hori Masumi
 
「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...
「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...
「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...SORACOM,INC
 

Similar to M5Stackを使ったIoTプログラミング (20)

Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)
Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)
Our recent activities on cybersecurity researches using AI (Nov. 20, 2020)
 
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
Telecom Infra Projectの取り組み -光伝送におけるハードとソフトの分離-
 
LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ LiBRA 04.2019 / 量子コンピュータ
LiBRA 04.2019 / 量子コンピュータ
 
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスクエッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
エッジ/フォグコンピューティング環境におけるコンテナ/マイクロサービスのメリットとリスク
 
IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編
 
PCCC22:富士通株式会社 テーマ3「量子シミュレータ」
PCCC22:富士通株式会社 テーマ3「量子シミュレータ」PCCC22:富士通株式会社 テーマ3「量子シミュレータ」
PCCC22:富士通株式会社 テーマ3「量子シミュレータ」
 
2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットと SNS上での構築とその課題
2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットとSNS上での構築とその課題2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットとSNS上での構築とその課題
2013年度enPiT特設講義-iisec-2013-11-09-セキュアシステムのインターネットと SNS上での構築とその課題
 
モノのインターネット(IoT)の不都合な真実
モノのインターネット(IoT)の不都合な真実モノのインターネット(IoT)の不都合な真実
モノのインターネット(IoT)の不都合な真実
 
2017年度 河野ゼミ スタートアップ資料
2017年度 河野ゼミ スタートアップ資料2017年度 河野ゼミ スタートアップ資料
2017年度 河野ゼミ スタートアップ資料
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
 
情報産業の最新技術動向
情報産業の最新技術動向情報産業の最新技術動向
情報産業の最新技術動向
 
20190712 polkadot japan meetup
20190712 polkadot japan meetup20190712 polkadot japan meetup
20190712 polkadot japan meetup
 
SIerからみたHyperledger Fabric
SIerからみたHyperledger FabricSIerからみたHyperledger Fabric
SIerからみたHyperledger Fabric
 
The Recommendations for DX in Commercial Education
The Recommendations for DX in Commercial EducationThe Recommendations for DX in Commercial Education
The Recommendations for DX in Commercial Education
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
 
アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方アグリゲート・コンピューティング風IoTでの戦い方
アグリゲート・コンピューティング風IoTでの戦い方
 
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
 
イングランドの教訓から学ぶ コンピューティング教育
イングランドの教訓から学ぶ コンピューティング教育イングランドの教訓から学ぶ コンピューティング教育
イングランドの教訓から学ぶ コンピューティング教育
 
ブロックチェーンを利用した非集中型学習支援システムの検証
ブロックチェーンを利用した非集中型学習支援システムの検証 ブロックチェーンを利用した非集中型学習支援システムの検証
ブロックチェーンを利用した非集中型学習支援システムの検証
 
「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...
「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...
「作りこまない IoT 」を実現するためのクラウドネイティブな IoT システム構築 ― Cloud Native Days Tokyo 2018 (Op...
 

More from Junichi Akita

M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)Junichi Akita
 
M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)
M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)
M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)Junichi Akita
 
つくってドヤると楽しい
つくってドヤると楽しいつくってドヤると楽しい
つくってドヤると楽しいJunichi Akita
 
日本の「ものづくり」の可能性:中国深センとの比較を通して
日本の「ものづくり」の可能性:中国深センとの比較を通して日本の「ものづくり」の可能性:中国深センとの比較を通して
日本の「ものづくり」の可能性:中国深センとの比較を通してJunichi Akita
 
分解のススメHyperの読みどころ
分解のススメHyperの読みどころ分解のススメHyperの読みどころ
分解のススメHyperの読みどころJunichi Akita
 
深センで半年間住んでMakeと研究をしてみた
深センで半年間住んでMakeと研究をしてみた深センで半年間住んでMakeと研究をしてみた
深センで半年間住んでMakeと研究をしてみたJunichi Akita
 
日本での電子回路の導入教育の可能性:中国との比較を通して
日本での電子回路の導入教育の可能性:中国との比較を通して日本での電子回路の導入教育の可能性:中国との比較を通して
日本での電子回路の導入教育の可能性:中国との比較を通してJunichi Akita
 
中国と深センでの半導体とRISC-V業界事情
中国と深センでの半導体とRISC-V業界事情中国と深センでの半導体とRISC-V業界事情
中国と深センでの半導体とRISC-V業界事情Junichi Akita
 
タイプライターを改造してキーボードを作ってみた
タイプライターを改造してキーボードを作ってみたタイプライターを改造してキーボードを作ってみた
タイプライターを改造してキーボードを作ってみたJunichi Akita
 
3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件
3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件
3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件Junichi Akita
 
中国でスタックチャンに会ってみた
中国でスタックチャンに会ってみた中国でスタックチャンに会ってみた
中国でスタックチャンに会ってみたJunichi Akita
 
M5Stackでインターンしてみた
M5StackでインターンしてみたM5Stackでインターンしてみた
M5StackでインターンしてみたJunichi Akita
 
左手サブキーボードを作り続けてみた
左手サブキーボードを作り続けてみた左手サブキーボードを作り続けてみた
左手サブキーボードを作り続けてみたJunichi Akita
 
STM32F互換マイコン(自称を含む)を 軽く解析してみた
STM32F互換マイコン(自称を含む)を軽く解析してみたSTM32F互換マイコン(自称を含む)を軽く解析してみた
STM32F互換マイコン(自称を含む)を 軽く解析してみたJunichi Akita
 
基板設計の基礎知識と実践(別名:基板と仲良くなる方法)
基板設計の基礎知識と実践(別名:基板と仲良くなる方法)基板設計の基礎知識と実践(別名:基板と仲良くなる方法)
基板設計の基礎知識と実践(別名:基板と仲良くなる方法)Junichi Akita
 
深センで2ヶ月過ごしていろいろ試してみた
深センで2ヶ月過ごしていろいろ試してみた深センで2ヶ月過ごしていろいろ試してみた
深センで2ヶ月過ごしていろいろ試してみたJunichi Akita
 
Makeと半導体の境界
Makeと半導体の境界Makeと半導体の境界
Makeと半導体の境界Junichi Akita
 
CH551/2/8/9を炙ってみた
CH551/2/8/9を炙ってみたCH551/2/8/9を炙ってみた
CH551/2/8/9を炙ってみたJunichi Akita
 
うっかりチップマウンタを自作して薄い本を書いてみた
うっかりチップマウンタを自作して薄い本を書いてみたうっかりチップマウンタを自作して薄い本を書いてみた
うっかりチップマウンタを自作して薄い本を書いてみたJunichi Akita
 
多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性
多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性
多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性Junichi Akita
 

More from Junichi Akita (20)

M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
 
M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)
M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)
M5Stackで脱出ゲームのギミックを作ってみた件(M5StackユーザーミーティングLT)
 
つくってドヤると楽しい
つくってドヤると楽しいつくってドヤると楽しい
つくってドヤると楽しい
 
日本の「ものづくり」の可能性:中国深センとの比較を通して
日本の「ものづくり」の可能性:中国深センとの比較を通して日本の「ものづくり」の可能性:中国深センとの比較を通して
日本の「ものづくり」の可能性:中国深センとの比較を通して
 
分解のススメHyperの読みどころ
分解のススメHyperの読みどころ分解のススメHyperの読みどころ
分解のススメHyperの読みどころ
 
深センで半年間住んでMakeと研究をしてみた
深センで半年間住んでMakeと研究をしてみた深センで半年間住んでMakeと研究をしてみた
深センで半年間住んでMakeと研究をしてみた
 
日本での電子回路の導入教育の可能性:中国との比較を通して
日本での電子回路の導入教育の可能性:中国との比較を通して日本での電子回路の導入教育の可能性:中国との比較を通して
日本での電子回路の導入教育の可能性:中国との比較を通して
 
中国と深センでの半導体とRISC-V業界事情
中国と深センでの半導体とRISC-V業界事情中国と深センでの半導体とRISC-V業界事情
中国と深センでの半導体とRISC-V業界事情
 
タイプライターを改造してキーボードを作ってみた
タイプライターを改造してキーボードを作ってみたタイプライターを改造してキーボードを作ってみた
タイプライターを改造してキーボードを作ってみた
 
3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件
3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件
3Dプリンタを改造してチップマウンタを作ってみたら物理的にForkされた件
 
中国でスタックチャンに会ってみた
中国でスタックチャンに会ってみた中国でスタックチャンに会ってみた
中国でスタックチャンに会ってみた
 
M5Stackでインターンしてみた
M5StackでインターンしてみたM5Stackでインターンしてみた
M5Stackでインターンしてみた
 
左手サブキーボードを作り続けてみた
左手サブキーボードを作り続けてみた左手サブキーボードを作り続けてみた
左手サブキーボードを作り続けてみた
 
STM32F互換マイコン(自称を含む)を 軽く解析してみた
STM32F互換マイコン(自称を含む)を軽く解析してみたSTM32F互換マイコン(自称を含む)を軽く解析してみた
STM32F互換マイコン(自称を含む)を 軽く解析してみた
 
基板設計の基礎知識と実践(別名:基板と仲良くなる方法)
基板設計の基礎知識と実践(別名:基板と仲良くなる方法)基板設計の基礎知識と実践(別名:基板と仲良くなる方法)
基板設計の基礎知識と実践(別名:基板と仲良くなる方法)
 
深センで2ヶ月過ごしていろいろ試してみた
深センで2ヶ月過ごしていろいろ試してみた深センで2ヶ月過ごしていろいろ試してみた
深センで2ヶ月過ごしていろいろ試してみた
 
Makeと半導体の境界
Makeと半導体の境界Makeと半導体の境界
Makeと半導体の境界
 
CH551/2/8/9を炙ってみた
CH551/2/8/9を炙ってみたCH551/2/8/9を炙ってみた
CH551/2/8/9を炙ってみた
 
うっかりチップマウンタを自作して薄い本を書いてみた
うっかりチップマウンタを自作して薄い本を書いてみたうっかりチップマウンタを自作して薄い本を書いてみた
うっかりチップマウンタを自作して薄い本を書いてみた
 
多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性
多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性
多様な学生の教材としてしてのプロトタイピング用マイコンボードの可能性
 

Recently uploaded

Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...oganekyokoi
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...yutakashikano1984
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.oganekyokoi
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrRodolfFernandez1
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 

Recently uploaded (9)

Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...
 
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.The first time I used CANVA to create a slide document.
The first time I used CANVA to create a slide document.
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 

M5Stackを使ったIoTプログラミング