LattePanda workshop
Note : https://goo.gl/oB7jZN
CAVEDU Education
Email:jesusvictory777@cavedu.com
FENG-CHIH,HSU
About us
Outline
• LattePandaの主な機能、活用
• 東京の温度データを取得する
• LEDを制御:ArduinoIDEを開く
• 天気アラート
Outline
• LattePandaの主な機能、活用
• 東京の温度データを取得する
• LEDを制御:ArduinoIDEを開く
• 天気アラート
LattePandaの主な機能
スペック(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
スペック(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
LattePandaを活用したアプリ
• 3Dプリンタを制御するスクリーンへの接続
LattePandaを活用したアプリ
• ロボットアームの制御
LattePandaを活用したアプリ
• ウェアラブルデバイス [文字認識] by TKU Cilab
本日のゴール
• お天気APIを利用して東京の温度を取得する
• 一定の温度を超えたら、LEDが点灯する
Outline
• LattePandaの主な機能、活用
• 東京の温度データを取得する
• LEDを制御:ArduinoIDEを開く
• 天気アラート
明日の東京の天気
• 日本の温度取得のチュートリアル (JSON)
– http://weather.livedoor.com/weather_hacks/webs
ervice
• 東京の温度のデータ取得のAPI
– http://weather.livedoor.com/forecast/webservice/
json/v1?city=130010
※今回はlivedoorAPIを利用します。
JSONを扱うのに便利なwebsite
• http://jsoneditoronline.org/
JSON フォーマット
• 1. object(オブジェクト)
– EX:{collection, collection ,…}
• 2. collection(コレクション)
– EX: {name:value}
• 3. Array(配列)
– EX: [collection, collection]
東京の温度データを取得する
• ソフトウェアを開く:IDLE(PythonGUI)を開いてください
• FileOpenC:/Desktop/workshop/opendata_jp_ver1.py
• モジュールを起動:[RunModule][Run][Run Module]
東京の温度データを取得する
1
2
3
4
5
6
東京の温度データを取得する
• 1. エンコーディング方式:UTF-8
• 2. モジュールをインポート:
– json: 東京の温度データのフォーマット方式
– urllib:URLのレスポンスを読み取れるようにする、
urllib.urlopen(url): URLのデータを読み取る
• 4. json.loads(response.read()):
JSONフォーマットをパースしてPythonのコンパイルフォーマッ
トにする
東京の温度データを取得する
東京の温度データを取得する
• 5.
data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list
*‘forecasts’+[1]*‘telop’+を出力します。
['forecasts'][1]
['dateLabel']
=明日
東京の温度データを取得する
• 5.
data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list
*‘forecasts’+[1]*‘telop’+を出力します。
data_list*‘title'+
=東京都 東京 の天気
東京の温度データを取得する
• 5.
data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list
*‘forecasts’+[1]*‘telop’+を出力します。
['telop']
=曇り
data_list['forecasts'][1]
東京の温度データを取得する
• 6. “最高気温
は”+str(data_list*‘forecasts’+[1]*‘temperature’+*‘max’+*‘celsius’
])+‘°C’ と出力します。
['temperature']['max']
data_list['forecasts'][1]
['celsius']=27
(参考)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’]+’℃’))
Outline
• LattePandaの主な機能、活用
• 東京の温度データを取得する
• LEDを制御:ArduinoIDEを開く
• 天気アラート
LattePanda/Arduino Pin
LattePanda/Arduino
LEDとは?
Ground
Highpotential
(高電位)
Example 1:LEDチカ
LEDを制御:ArduinoIDEを開く
• 1. Arduino IDEを開きます
Example_1 : LEDチカ
• ファイルを開きます:FileExampleBasicsBlink
Outline
• LattePandaの主な機能、活用
• 東京の温度データを取得する
• LEDを制御:ArduinoIDEを開く
• 天気アラート
Example_2 :天気アラート
• ファイルを開きます:
FileOpenC:/Desktop/ weather_tokyo/workshop/
weather_tokyo.ino
• Setup(),…-
– Set the シリアル通知の速度を9600に設定
– ピン出力を13に設定
Example_2 :天気アラート
1
2
3
Example_2 :天気アラート
• 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 :天気アラート
4
5
Example_2 :天気アラート
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を点灯します。
Example_2 :天気アラート
• ソフトウェアを開く:IDLE(PythonGUI)を開いて下さい。
• FileOpenC:/Desktop/workshop/opendata_jp_ver2.py
Example_2 :天気アラート
• モジュールを起動する :
[RunModule][Run][Run Module]
1
2
Example_2 :天気アラート
Python:天気アラート
• 1. print If
int(data_list['forecasts'][0]['temperature']['ma
x']['celsius']) >30:
– data_list*‘forecasts’+[0]*‘temperature’+*‘max’+*‘cels
ius’+=東京都の最高気温
• 2. 30度以上になったら
– “1o”を送信し、LEDを点灯します。
– 30度以下になったら”1c”を送信し、LEDを消灯しま
す。
(参考)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'1or')
else:
ser.write(b'1cr')
> conda install –c anaconda pyserial=2.7
(1) C:Program FilesAnaconda3 にアクセス権限を付ける
(2)pyserialをインストール
(3)以下のソースコードを作成して実行
(参考)実行時
> python opendata_jp_ver2.py
(4) IDLEではなくコマンドプロンプトから直接pythonコマンドで実行する
※IDLEだとpyserialを参照できないためエラーになります。
※2.X系のソースコードを3.Xに変換するときは2to3 コマンドを使うと便利です。
(ただし、pyserialについては対応されません。)
Thank for your attention

Latte panda workshop_japan