Submit Search
電子工作のためのPython
Download as PPTX, PDF
0 likes
2,799 views
Takuya Nishimoto
2016年11月12日 PyCon mini Hiroshima 2016 + IoTLT広島
Technology
Read more
1 of 34
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
More Related Content
PPTX
MicroPython + ESP32
Takuya Nishimoto
PPTX
210911 これから始める電子工作とMicroPython
Takuya Nishimoto
PPTX
171116 nishimoto-mruby
Takuya Nishimoto
PPTX
Nishimoto 170603-mruby
Takuya Nishimoto
PDF
monoでWindowsアプリを動かす
monochrojazz
PDF
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Junichi Kakisako
PDF
Raspberry Pi + Go で IoT した話
yaegashi
PDF
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Netwalker lab kapper
MicroPython + ESP32
Takuya Nishimoto
210911 これから始める電子工作とMicroPython
Takuya Nishimoto
171116 nishimoto-mruby
Takuya Nishimoto
Nishimoto 170603-mruby
Takuya Nishimoto
monoでWindowsアプリを動かす
monochrojazz
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Junichi Kakisako
Raspberry Pi + Go で IoT した話
yaegashi
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Netwalker lab kapper
What's hot
(20)
PDF
小ネタ:Android上でroscoreを走らせてみた
Ryodo Tanaka
PDF
最近の事と #NT金沢 2018に初出展してきた
Netwalker lab kapper
PPTX
レベルを上げて物理で殴る 16x9
Knit Tiger
PPTX
RgGen ご紹介
Taichi Ishitani
PPTX
Rosjp37 live ros
Tatsuya Fukuta
PDF
Recently Mobile Linux Hacking after Kernel4.16RC 最近のKernel4.16RC以降の ガジェットLin...
Netwalker lab kapper
PDF
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
PDF
PYNQ祭りLT todotani
Kenshi Kamiya
PPTX
Ren’pyの御紹介
zgock
PPTX
M5StackをRustで動かす
Kenta IDA
PDF
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Kenichiro MATOHARA
PDF
LattePandaの紹介
Hirokazu Egashira
PDF
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
Kenichiro MATOHARA
PDF
197x Timer with Your Messages
Kuniaki Igarashi
PPTX
Gstreamer Basics
Seiji Hiraki
PDF
Rust で RTOS を考える
ryuz88
KEY
mikutter入門
Katsuyoshi Matsumoto
PPTX
Tfug kansai vol3
Natsutani Minoru
PDF
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定
Netwalker lab kapper
PDF
78tch
78tch
小ネタ:Android上でroscoreを走らせてみた
Ryodo Tanaka
最近の事と #NT金沢 2018に初出展してきた
Netwalker lab kapper
レベルを上げて物理で殴る 16x9
Knit Tiger
RgGen ご紹介
Taichi Ishitani
Rosjp37 live ros
Tatsuya Fukuta
Recently Mobile Linux Hacking after Kernel4.16RC 最近のKernel4.16RC以降の ガジェットLin...
Netwalker lab kapper
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
PYNQ祭りLT todotani
Kenshi Kamiya
Ren’pyの御紹介
zgock
M5StackをRustで動かす
Kenta IDA
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Kenichiro MATOHARA
LattePandaの紹介
Hirokazu Egashira
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
Kenichiro MATOHARA
197x Timer with Your Messages
Kuniaki Igarashi
Gstreamer Basics
Seiji Hiraki
Rust で RTOS を考える
ryuz88
mikutter入門
Katsuyoshi Matsumoto
Tfug kansai vol3
Natsutani Minoru
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定
Netwalker lab kapper
78tch
78tch
Ad
Similar to 電子工作のためのPython
(20)
PPTX
210728 mpy
Takuya Nishimoto
PDF
micropythonで遊んでみる
satokengo
PPTX
171209 nishimoto-mpy-esp32
Takuya Nishimoto
PDF
micropythonってたーのしー!
satokengo
PPTX
天気予報ガジェットを作りな がら、Pythonを勉強しよう
Hiroki Yato
PDF
ハードウェアを用いてPythonを学ぶ
Yuta Kitagami
PPT
Raspberry Jam #1 20121229
Hideki Aoshima
PDF
I2CでRaspberry Piから複数の周辺機器を制御する
Hirokazu Nishio
PPTX
Arduinoを用いたキソ電子工作
どと〜る
PPTX
Polyphony の行く末(2018/3/3)
ryos36
PDF
Python physicalcomputing
Noboru Irieda
PDF
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
PDF
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
PDF
ラズベリー・パイでプログラミングと電子工作を体験してみよう
Takashi Kanamaru
PDF
RPi電子工作入門
Hideo Yasumoto
KEY
PyOpenCLによるGPGPU入門
Yosuke Onoue
PPTX
ロボットシステム学2015年第7回
Ryuichi Ueda
PDF
20191113 python raspberry_pi_gpio
Kioto Hirahara
PDF
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
catmoney
PDF
Pirtunit slideshare
openrtm
210728 mpy
Takuya Nishimoto
micropythonで遊んでみる
satokengo
171209 nishimoto-mpy-esp32
Takuya Nishimoto
micropythonってたーのしー!
satokengo
天気予報ガジェットを作りな がら、Pythonを勉強しよう
Hiroki Yato
ハードウェアを用いてPythonを学ぶ
Yuta Kitagami
Raspberry Jam #1 20121229
Hideki Aoshima
I2CでRaspberry Piから複数の周辺機器を制御する
Hirokazu Nishio
Arduinoを用いたキソ電子工作
どと〜る
Polyphony の行く末(2018/3/3)
ryos36
Python physicalcomputing
Noboru Irieda
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
ラズベリー・パイでプログラミングと電子工作を体験してみよう
Takashi Kanamaru
RPi電子工作入門
Hideo Yasumoto
PyOpenCLによるGPGPU入門
Yosuke Onoue
ロボットシステム学2015年第7回
Ryuichi Ueda
20191113 python raspberry_pi_gpio
Kioto Hirahara
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
catmoney
Pirtunit slideshare
openrtm
Ad
More from Takuya Nishimoto
(20)
PPTX
221217 SwiftはPythonに似ている
Takuya Nishimoto
PPTX
220427-pydata 統計・データ分析 特集
Takuya Nishimoto
PPTX
220126 python-datalake-spark
Takuya Nishimoto
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
PPTX
211020 すごい広島 with OSH 2021.10
Takuya Nishimoto
PPTX
210917 オープンセミナー@広島のこれまでとこれから
Takuya Nishimoto
PPTX
210630 python
Takuya Nishimoto
PPTX
210526 Power Automate Desktop Python
Takuya Nishimoto
PPTX
210428 python
Takuya Nishimoto
PPTX
200918 hannari-python
Takuya Nishimoto
PPTX
200429 python
Takuya Nishimoto
PPTX
200325 flask
Takuya Nishimoto
PPTX
200208 osh-nishimoto-v2
Takuya Nishimoto
PPTX
191208 python-kansai-nishimoto
Takuya Nishimoto
PPTX
191101 nvda-sightworld-nishimoto
Takuya Nishimoto
PPTX
191114 iotlt-nishimoto
Takuya Nishimoto
PPTX
191030 anna-with-python
Takuya Nishimoto
PPTX
190916 nishimoto-nvda-pyconjp
Takuya Nishimoto
PPTX
190925 python-windows
Takuya Nishimoto
PPTX
190731 chalice
Takuya Nishimoto
221217 SwiftはPythonに似ている
Takuya Nishimoto
220427-pydata 統計・データ分析 特集
Takuya Nishimoto
220126 python-datalake-spark
Takuya Nishimoto
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
211020 すごい広島 with OSH 2021.10
Takuya Nishimoto
210917 オープンセミナー@広島のこれまでとこれから
Takuya Nishimoto
210630 python
Takuya Nishimoto
210526 Power Automate Desktop Python
Takuya Nishimoto
210428 python
Takuya Nishimoto
200918 hannari-python
Takuya Nishimoto
200429 python
Takuya Nishimoto
200325 flask
Takuya Nishimoto
200208 osh-nishimoto-v2
Takuya Nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
191101 nvda-sightworld-nishimoto
Takuya Nishimoto
191114 iotlt-nishimoto
Takuya Nishimoto
191030 anna-with-python
Takuya Nishimoto
190916 nishimoto-nvda-pyconjp
Takuya Nishimoto
190925 python-windows
Takuya Nishimoto
190731 chalice
Takuya Nishimoto
電子工作のためのPython
1.
電子工作のためのPython MicroPython on the
ESP8266 2016年11月12日 PyCon mini Hiroshima 2016 + IoTLT広島 西本卓也 @24motz / nishimotz@gmail.com 1
2.
光線銃ゲーム! • 銃(ライト)を当てて開始 • チャンスは5回 •
カウントダウン(5〜10秒) • 敵がきた! • 音:ピーピーピー • 体をそらして、銃を撃って • 補給カプセルが届いた! • 音:プー • 体を近づけて、銃を撃たないで • https://github.com/nishimotz/micropython_demo 2 ESPr One (ESP-WROOM-02) 温度センサー 明るさセンサー 超音波距離センサー 圧電ブザー 白黒モニター(128x64)
3.
軽量スクリプト言語 • NodeMcu (eLua
+ node.jsの影響) • mruby/c (ruby on PSoC5) • IchigoJam (低価格BASICパソコン) • MicroPython (Python3を軽量化) 3
4.
むかしのPC、いまのマイコン 4 • NEC TK-80
(1976年) 8bit 2MHz • NEC PC-9801RA (1989年) 32bit 16MHz • Arduino (2005年-) 8bit 16MHz • PCとマイコン : 経験の拡大 • 適材適所、違い、本質
5.
PythonでPCからマイコンまで • iPhone /
iPad • Pythonista for iOS • PC / サーバー / データサイエンス / Deep Learning • Windows, Mac, Linux 5
6.
Google Cloud Vision
API 6
7.
Raspberry Pi • 教育用コンピューター •
2012年 英国の非営利組織 • 2016年9月 1000万台突破 • Linux (Raspbian) → Scratch, Mathematica, Python 7
8.
超音波距離センサー • 出した音が反射して返るまでの時間 • 音の速さをかけて2で割ると距離 8 ️
9.
Pythonで汎用入出力 9 import time, RPi.GPIO
as GPIO GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG, GPIO.HIGH) time.sleep(0.00001) GPIO.output(TRIG, GPIO.LOW) while GPIO.input(ECHO) == GPIO.LOW: off_time = time.time() while GPIO.input(ECHO) == GPIO.HIGH: on_time = time.time()
10.
スマートフォンの技術 10 • Raspberry Pi
3 Model B • 1.2GHz 64-bit 4core ARMv8 CPU (Broadcom) • 1GB RAM • MicroSD スロット • WiFi / Bluetooth / Ethernet • HDMI / USB / Audio • GPIO • DSI • ソフトウェア開発 • PCやサーバーと同じ
11.
フィジカルコンピューティング 11 • Arduino • ワンボードマイコン •
2005年 イタリア 教育現場から • オープン • 互換機 • 拡張シールド • 無料の開発環境 • Windows/Mac対応 • C++風のプログラミング言語 • PCとUSBで接続できる
12.
Arduino Uno • CPU:
AVR ATmega328P • むかしのPCの性能 • フラッシュメモリ: 32KB • 1GB(RasPi3)の約32分の1 • クロック周波数: 16MHz • 1.2GHz(RasPi3)の約75分の1 • 消費電力は少ない • 電池寿命、熱対策など有利 • スイッチオンで書き込んだプログラムだけ「走る」 • 特別なプログラミング環境 • ネットワーク機能の不足 12
13.
Espressif ESP8266 13 • 中国製
低価格 WiFi モジュール • マイコンに通信機能を • Arduinoに接続 • シリアル接続 + AT コマンド • 中身が解析された • Arduino Uno より高性能(80MHz) • gccでソフトウェアが開発可能 • オープンソースSDK • 公式SDK • ESP8266自身がArduino IDEの対象に
14.
ESP-WROOM-02 • 日本の工事設計認証(技適)取得 14 ESPr Developer (ESP-WROOM-02 開発ボード) ESPr
One (Arduino Uno同一形状 ESP-WROOM-02開発ボード) ESP-WROOM-02 USBシリアル変換、MicroUSB、電源回路 ユーザースイッチ、ユーザーLED
15.
ESP-WROOM-02開発ボードを Arduino IDEで開発する方法 15
16.
ESPr Oneの青いLEDを点滅 16 void setup()
{ pinMode(14,OUTPUT); digitalWrite(14,HIGH); delay(1000); digitalWrite(14,LOW); delay(1000); digitalWrite(14,HIGH); delay(1000); digitalWrite(14,LOW); } void loop() { } • PCからMicroUSBで電源と通信 • GPIO14が青いLED • Reset Method = nodemcu 書込モード切替不要
17.
Arduino IDEとPython • Arduino
IDE • 書き換えるたびにコンパイルして転送 • WiFi にたどり着くまでが長そう • Python • 入力してすぐに実行 • REPL : Read-Eval-Print Loop • ソースをコピーして実行 • 従来のPython • 少ないメモリと遅いCPUでは動かない • OSが必要(Raspberry Pi はLinuxが動作) 17
18.
MicroPython by Damien
George 18https://www.youtube.com/watch?v=EvGhPmPPzko
19.
MicroPythonの動く環境 19 2013年 PyBoard 2016年
ESP8266 STM32F4DISCOVERY (ARM Cortex-M4) GitHub で公開 Unix 移植版 各種マイコンへの移植 走る無線ルーター (PyCon JP 2016 LT)
20.
esptoolによるインストール https://micropython.org/download/ → esp8266-20161017-v1.8.5.bin $ sudo
python2 -m pip install esptool $ esptool.py -p /dev/cu.usbserial-DN01J32J --baud 460800 write_flash --flash_size=8m 0 esp8266-20161017-v1.8.5.bin Mac or Linux (Raspberry Pi) 20
21.
シリアル接続(ターミナル) $ sudo port
install picocom $ picocom --baud 115200 /dev/cu.usbserial-DN01J32J Ctrl-A Ctrl-Z で終了 $ screen /dev/cu.usbserial-DN01J32J 115200 Windows は TeraTerm など 21
22.
Hello MicroPython Terminal ready >>>
print('Hello MicroPython') Hello MicroPython 22
23.
ペーストモード Ctrl-E /
Ctrl-D import machine pin14 = machine.Pin(14, machine.Pin.OUT) pin14.value(1) paste mode; Ctrl-C to cancel, Ctrl-D to finish === import machine === pin14 = machine.Pin(14, machine.Pin.OUT) === pin14.value(1) === >>> 23 Copy Paste Ctrl+D Ctrl+E
24.
ペーストモードでない場合 >>> if True: ...
print('hello') ... hello >>> CPython の対話モードとは違う挙動 ipython とだいたい同じ 24 ブロックで自動的にインデント Backspace Enter でブロック終了
25.
コード補完と履歴 >>> p [tab] >>> pin14 .
[tab] >>> pin14. init value low high irq IN OUT OPEN_DRAIN PULL_UP IRQ_RISING IRQ_FALLING >>> pin14.low() >>> pin14.high() → 上矢印キーで pin14.low() 呼び出し 25
26.
WiFi APを有効化 import network sta_if
= network.WLAN(network.STA_IF) # station sta_if.active(False) ap_if = network.WLAN(network.AP_IF) # access point ap_if.active(True) ap_if.ifconfig() ('192.168.4.1', '255.255.255.0', '192.168.4.1', '192.168.1.1') 26
27.
APにMacをつないでみる SSID : MicroPython-xxxxxx
Password : micropythoN $ ping 192.168.4.1 PING 192.168.4.1 (192.168.4.1): 56 data bytes 64 bytes from 192.168.4.1: icmp_seq=0 ttl=255 time=0.872 ms 64 bytes from 192.168.4.1: icmp_seq=1 ttl=255 time=117.740 ms 27 ESP8266 Mac 無線 ルーター APSTA
28.
ESP8266のSTAとAP • 同時に使えるがMacからはESP8266だけ見える 2828 インター ネット ESP8266 Mac無線 ルーター APSTA
29.
STAだけを有効化 2929 インター ネット ESP8266 Mac 無線 ルーター APSTA サーバー
30.
30 def server():
31.
ブラウザから確認 31 >>> server() listening on
('0.0.0.0', 80) client connected from ('192.168.4.2', 60403) Ctrl-Cで停止 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 9, in server KeyboardInterrupt:
32.
独自のファイルシステム >>> import os >>>
os. __name__ uname urandom dupterm dupterm_notify VfsFat listdir mkdir rmdir chdir getcwd remove rename stat statvfs umount >>> os.listdir() ['boot.py', 'port_config.py', 'led.py', 'httpd.py', 'ssd1306.py'] 32 boot.py と main.py は起動時に実行
33.
WebREPL • webrepl.html を入手してブラウザで実行 •
ファイルのアップロード、ダウンロード 33
34.
まとめ : MicroPython
& ESPr One • 言語としては同じPython • デジタル入出力のデバイスを扱うライブラリ • ターミナル、エディタ、ブラウザで開発 • 開発にも運用にも役立つWiFi • ESPr One • MicroUSBケーブル、モバイルバッテリーがあれば • LED点滅(Lチカ)→パーツで拡張 • ブレッドボードでプロトタイピング • Pythonの始め方のひとつに 34
Editor's Notes
#5:
https://www.flickr.com/photos/htomari/8861196881
#7:
https://cloudplatform.googleblog.com/2015/12/Google-Cloud-Vision-API-changes-the-way-applications-understand-images.html http://qiita.com/kazunori279/items/768c7fdf96cdf45a9d16
#10:
https://twitter.com/24motz/status/727730908766318593 https://gist.github.com/nishimotz/375b9859e0f62c0b0b7d2e4d863a9f8b
#11:
http://jp.rs-online.com/web/p/products/1238760/
#16:
http://trac.switch-science.com/wiki/esp_dev_arduino_ide
#19:
GOTO 2016 • MicroPython & the Internet of Things • Damien George
#20:
https://www.youtube.com/watch?v=cyhFFm3yh14
#31:
=== def server(): === import socket === addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1] === s = socket.socket() === s.bind(addr) === s.listen(1) === print('listening on', addr) === while True: === cl, addr = s.accept() === print('client connected from', addr) === cl_file = cl.makefile('rwb', 0) === while True: === line = cl_file.readline() === if not line or line == b'\r\n': === break === cl.send("""<!DOCTYPE html><html> <head> <title>ESP8266</title> </head> <body> === <h1>ESP8266</h1> === </body></html>""") === cl.close() === >>> server() listening on ('0.0.0.0', 80)
Download