Top Banner
LattePanda workshop Note : https://goo.gl/oB7jZN CAVEDU Education Email[email protected] FENG-CHIH,HSU
45

Latte panda workshop_japan

Jan 21, 2018

Download

Education

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Latte panda workshop_japan

LattePanda workshop Note : https://goo.gl/oB7jZN

CAVEDU Education

Email:[email protected]

FENG-CHIH,HSU

Page 2: Latte panda workshop_japan

About us

Page 3: Latte panda workshop_japan

Outline

• LattePandaの主な機能、活用

• 東京の温度データを取得する

• LEDを制御:ArduinoIDEを開く

• 天気アラート

Page 4: Latte panda workshop_japan

Outline

• LattePandaの主な機能、活用

• 東京の温度データを取得する

• LEDを制御:ArduinoIDEを開く

• 天気アラート

Page 5: Latte panda workshop_japan

LattePandaの主な機能

Page 6: Latte panda workshop_japan

スペック(1)

• CPU: Intel Cherry Trail Z8350 Quad Core Processor

• メイン周波数: 1.44GHz (1.92GHz Burst Frequency)

• OS: Windows 10 Home Edition (アンアクティベート)

• RAM: 4GB DDR3L

• ストレージ容量: 64GB

• GPU: Intel HD Graphics, 12 EUs @200-500Mhz, single-channel memory

• USB 3.0 x 1, USB 2.0 x 2

• Wi-Fi 802.11n 2.4G

• Bluetooth 4.0

Page 7: Latte panda workshop_japan

スペック(2)

• ビルトインArduinoコプロセッサ: ATmega32u4 (Arduino Leonardo) • ビデオ出力: HDMI and MIPI-DSI • オンボードタッチパネルオーバーレイコネクタ • (Onboard touch panel overlay connector) • 100Mbps イーサネット サポート • Intel(Cherry Trail)プロセッサ GPIO x 6pins • Atmega プロセッサ GPIO x 20pins • Gravity インターフェースコネクタ x 6pins • 電源: 5V@2A • ボード寸法: 88 x 70mm / 3.46 x 2.76" • パッケージ寸法: 110 x 94 x 30 mm/4.33 x 3.70 x 1.18” • 内容量: 55g • 総重量: 100g

Page 8: Latte panda workshop_japan

LattePandaを活用したアプリ

• 3Dプリンタを制御するスクリーンへの接続

Page 9: Latte panda workshop_japan

LattePandaを活用したアプリ

• ロボットアームの制御

Page 10: Latte panda workshop_japan

LattePandaを活用したアプリ

• ウェアラブルデバイス [文字認識] by TKU Cilab

Page 11: Latte panda workshop_japan

本日のゴール

• お天気APIを利用して東京の温度を取得する

• 一定の温度を超えたら、LEDが点灯する

Page 12: Latte panda workshop_japan

Outline

• LattePandaの主な機能、活用

• 東京の温度データを取得する

• LEDを制御:ArduinoIDEを開く

• 天気アラート

Page 13: Latte panda workshop_japan

明日の東京の天気

• 日本の温度取得のチュートリアル (JSON)

– http://weather.livedoor.com/weather_hacks/webservice

• 東京の温度のデータ取得のAPI

– http://weather.livedoor.com/forecast/webservice/json/v1?city=130010

※今回はlivedoorAPIを利用します。

Page 14: Latte panda workshop_japan

JSONを扱うのに便利なwebsite

• http://jsoneditoronline.org/

Page 15: Latte panda workshop_japan

JSON フォーマット

• 1. object(オブジェクト)

– EX:{collection, collection ,…}

• 2. collection(コレクション)

– EX: {name:value}

• 3. Array(配列)

– EX: [collection, collection]

Page 16: Latte panda workshop_japan

東京の温度データを取得する

• ソフトウェアを開く:IDLE(PythonGUI)を開いてください

• FileOpenC:/Desktop/workshop/opendata_jp_ver1.py

Page 17: Latte panda workshop_japan

• モジュールを起動:[RunModule][Run][Run Module]

東京の温度データを取得する

Page 18: Latte panda workshop_japan

1

2

3

4

5

6

東京の温度データを取得する

Page 19: Latte panda workshop_japan

• 1. エンコーディング方式:UTF-8

• 2. モジュールをインポート:

– json: 東京の温度データのフォーマット方式

– urllib:URLのレスポンスを読み取れるようにする、 urllib.urlopen(url): URLのデータを読み取る

• 4. json.loads(response.read()): JSONフォーマットをパースしてPythonのコンパイルフォーマットにする

東京の温度データを取得する

Page 20: Latte panda workshop_japan

東京の温度データを取得する

• 5. data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list*‘forecasts’+[1]*‘telop’+を出力します。

['forecasts'][1]

['dateLabel'] =明日

Page 21: Latte panda workshop_japan

東京の温度データを取得する

• 5. data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list*‘forecasts’+[1]*‘telop’+を出力します。

data_list*‘title'+ =東京都 東京 の天気

Page 22: Latte panda workshop_japan

東京の温度データを取得する

• 5. data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list*‘forecasts’+[1]*‘telop’+を出力します。

['telop'] =曇り

data_list['forecasts'][1]

Page 23: Latte panda workshop_japan

東京の温度データを取得する

• 6. “最高気温は”+str(data_list*‘forecasts’+[1]*‘temperature’+*‘max’+*‘celsius’])+‘°C’ と出力します。

['temperature']['max']

data_list['forecasts'][1]

['celsius']=27

Page 24: Latte panda workshop_japan

(参考)Python 3.X系の場合のソースコード

#!/usr/bin/python

#-*- coding: UTF-8 -*-

import urllib.request, json

url = “http://weather.livedoor.com/forecast/webservice/json/v1?city=130010”

response = urllib.request.urlopen(url)

data_list = json.loads(response.read())

print (data_list[‘forecasts’][1][‘dateLabel’]+data_list[‘title’]+data_list[‘forecasts’][1][‘telop’])

print (“最高気温は”+str(data_list[‘forecasts’][1][‘temperature’][‘max’][‘celsius’]+’℃’))

Page 25: Latte panda workshop_japan

Outline

• LattePandaの主な機能、活用

• 東京の温度データを取得する

• LEDを制御:ArduinoIDEを開く

• 天気アラート

Page 26: Latte panda workshop_japan

LattePanda/Arduino Pin

Page 27: Latte panda workshop_japan

LattePanda/Arduino

Page 28: Latte panda workshop_japan

LEDとは?

Ground

Highpotential (高電位)

Page 29: Latte panda workshop_japan

Example 1:LEDチカ

Page 30: Latte panda workshop_japan

LEDを制御:ArduinoIDEを開く

• 1. Arduino IDEを開きます

Page 31: Latte panda workshop_japan

Example_1 : LEDチカ

• ファイルを開きます:FileExampleBasicsBlink

Page 32: Latte panda workshop_japan

Outline

• LattePandaの主な機能、活用

• 東京の温度データを取得する

• LEDを制御:ArduinoIDEを開く

• 天気アラート

Page 33: Latte panda workshop_japan

Example_2 :天気アラート

• ファイルを開きます: FileOpenC:/Desktop/ weather_tokyo/workshop/ weather_tokyo.ino

Page 34: Latte panda workshop_japan

• Setup(),…- – Set the シリアル通知の速度を9600に設定

– ピン出力を13に設定

Example_2 :天気アラート

Page 35: Latte panda workshop_japan

1

2

3

Example_2 :天気アラート

Page 36: Latte panda workshop_japan

• loop() ,…- – (1)Serial.available() – “Serial”データがまだ読めないとき Serial.available()>0

– (2) read_meg = read_meg + char(Serial.read()); – Serial.read()で、一度に1バイトのデータを読み取り、それを文字型(char型)に変換します。

– (3) read_meg.trim();

– 最初と末尾のスペースを取り除いた形の文字列を取得します。

Example_2 :天気アラート

Page 37: Latte panda workshop_japan

4

5

Example_2 :天気アラート

Page 38: Latte panda workshop_japan

Example_2 :天気アラート

• loop() ,…-

– (4) if (read_meg.equals("1c"))

– pin LED読み取った文字列が”1c”であれば13ピンのLEDを消灯します。

– (5) if (read_meg.equals("1o"))

– pin LEDpin LED読み取った文字列が”1o”であれば13ピンのLEDを点灯します。

Page 39: Latte panda workshop_japan

Example_2 :天気アラート

• ソフトウェアを開く:IDLE(PythonGUI)を開いて下さい。

• FileOpenC:/Desktop/workshop/opendata_jp_ver2.py

Page 40: Latte panda workshop_japan

Example_2 :天気アラート

• モジュールを起動する : [RunModule][Run][Run Module]

Page 41: Latte panda workshop_japan

1

2

Example_2 :天気アラート

Page 42: Latte panda workshop_japan

Python:天気アラート

• 1. print If int(data_list['forecasts'][0]['temperature']['max']['celsius']) >30: – data_list*‘forecasts’+[0]*‘temperature’+*‘max’+*‘cels

ius’+=東京都の最高気温

• 2. 30度以上になったら – “1o”を送信し、LEDを点灯します。

– 30度以下になったら”1c”を送信し、LEDを消灯します。

Page 43: Latte panda workshop_japan

(参考)Python 3.X系の場合のソースコード

#!/usr/bin/python

#-*- coding: UTF-8 -*-

import urllib.request, urllib.parse, urllib.error, json, serial

ser = serial.Serial(“COM5”, 9600) // COMportはボードによって変わります

url = “http://weather.livedoor.com/forecast/webservice/json/v1?city=130010”

response = urllib.request.urlopen(url)

data_list = json.loads(response.read())

print(data_list['forecasts'][0]['dateLabel']+data_list['title']+data_list['forecasts'][0]['telop'])

print("最高気温は"+str(data_list['forecasts'][0]['temperature']['max']['celsius']+'℃'))

if int(data_list['forecasts'][0]['temperature']['max']['celsius'])>30:

ser.write(b'1o\r')

else:

ser.write(b'1c\r')

> conda install –c anaconda pyserial=2.7

(1) C:\Program Files\Anaconda3 にアクセス権限を付ける

(2)pyserialをインストール

(3)以下のソースコードを作成して実行

Page 44: Latte panda workshop_japan

(参考)実行時

> python opendata_jp_ver2.py

(4) IDLEではなくコマンドプロンプトから直接pythonコマンドで実行する

※IDLEだとpyserialを参照できないためエラーになります。

※2.X系のソースコードを3.Xに変換するときは2to3 コマンドを使うと便利です。 (ただし、pyserialについては対応されません。)

Page 45: Latte panda workshop_japan

Thank for your attention