Your SlideShare is downloading. ×
0
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ハードウェアを用いてPythonを学ぶ

7,862

Published on

2011年01月29日、Pycon mini JPにて発表したプレゼン資料 …

2011年01月29日、Pycon mini JPにて発表したプレゼン資料

お前、誰よ!→http://noise.artifactnoise.com/
Twitter: @nonNoise

Published in: Devices & Hardware
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,862
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 物語の始まり。 自分はハードウェア設計人 得意な言語はC パソコンのソフトとか大の苦手w 何故、Pythonを使うの? 近年、ハードウェアを扱うソフトが Mac 化しているのが原因。 昔から、Windowsでしか操作出来ない事に 疑問があった。 だから、Pythonを使ってOS依存しないハードウェアを操作するソフトウェアを作りたかった。
  • 2. 他の人はどうやっていたのか。 ケース1 GCCでLinux向けに開発する。 ケース2 Cygwinを使ってWinに対応させる。 ケース3Javaで開発してLinux&Winに対応させる。 ケース4 OS別にプログラムソースを変える。
  • 3. Python
  • 4. ここが良かったPython! ・オープンソースで商用利用OK! ・ライブラリが無駄に豊富! ・C言語と親和性があった! ・ソースが兎に角、綺麗! ・サンプルも豊富! ・Winで開発してLinuxでも動く!そして何より、この場で発表が出来た事が一番嬉しいw
  • 5. ハード屋が喜びそうなライブラリ ドライバー系pySerial : シリアルポート、 COM ポートpyUSB :USBドライバが叩ける?pyParallel: パラレルポート制御 GUI系wxPython :クロスプラットホームGUIEasyGui :同じくGUI用ライブラリPyGame:GUIゲームを作る強力なライブラリ
  • 6. ハード屋が喜びそうなライブラリ 2 理数系Matplotlib :某製品風なライブラリNumPy :多次元配列や行列をサポートSciPy :積分、線形代数、フーリエ変換 3D系 VPython :3D描画 PythonCAD :3DでCADも扱える ロボット系 pyrobot :Googleが作ったライブラリ
  • 7. Python で作ろう! 自作したハードウェアとPythonを使って  お手軽!電光掲示板ガジェットを作るよ~w
  • 8. 私が作った電光掲示板
  • 9. + + + + システムの全体図 ++ + + + ++ + + + + + ++
  • 10. Pythonで作って良かったこと ・シリアル通信が簡単に出来た。 ・文字の操作が簡単だった。 ・細かな変更を繰り返す実験に効果的 ・他のライブラリを組み合わせ出来そう ・Winで作ってLinuxで確認できた。夢が広がる。作りたい物が増える。
  • 11. 悪かった部分もある。・シリアル送信時の改行文字の指定・WinとLinuxとのポートの指定先の違い・パソコンの性能による駆動時間の違い頭を使えば(ソースを工夫すれば) 何とかなる問題だと思う。
  • 12. こうしてクロスプラットフォーム電光掲示板が 完成した。
  • 13. ちょっと脱線。 改善前の電光掲示板 表示機構for num in range(0,51):  for j in range (0,16):   ser.write("Matlix.Buffrn")   for i in range(0,16):    buf_viwe[i] =((0x8000>>j & line[num][i])<<j)>>15    viwe[i] = 0xFFFF & (viwe[i]<<1)    viwe[i] |= buf_viwe[i]    tmp_str = "H.%04xrn" % (viwe[i])    ser.write( tmp_str)    ser.write("Matlix.DispONrn") 改善後の電光掲示板 表示機構for num in range (0,17):  for i in range (0,16):   ser.write("Matlix.OneDatarn") tmp_str = "H.%04xrn" % (line[num][i]) ser.write( tmp_str) ser.write("Matlix.DispONrn")
  • 14. ちょっと脱線。for num in range(0,51):  for j in range (0,17):   ser.write("Matlix.Buffrn")   for i in range(0,16):    buf_viwe[i] =((0x8000>>j & line[num][i])<<j)>>15    viwe[i] = 0xFFFF & (viwe[i]<<1) ループ回数を 減らし、高速化!    viwe[i] |= buf_viwe[i]    tmp_str = "H.%04xrn" % (viwe[i])    ser.write( tmp_str)    ser.write("Matlix.DispONrn")for num in range (0,51):  for i in range (0,16):  ser.write("Matlix.OneDatarn") tmp_str = "H.%04xrn" % (line[num][i]) ser.write( tmp_str) ser.write("Matlix.DispONrn")
  • 15. ハード屋らしい解決法w ループ回数を減らすと 高速化する!ループ処理を外部のマイコンに処理させる。
  • 16. リリース盤が出来ました!w
  • 17. もう一つ 作って見ました。GamePong
  • 18. Pong とは
  • 19. 既にサンプルが沢山あった
  • 20. 早速、遊んでみる 遊び方: ・Player1 ↑と↓ ・Player2 WとS ボールがぶつかると 音が出る。   キーボード操作ではちっとも面白くないゲーム!!
  • 21. サンプルを改造してみる挑戦
  • 22. 改造した代表的なソースser.write("AD.ad8rn")ser.readline() マイコン機器からser.write("I.rn")adstr = ser.readline() Pyserial で可変抵抗のprint int(adstr,10) データを貰って来る。player1.position.y= ball.position.yplayer2.position.y = (SCREEN_HEIGHT ) - (int(adstr,10) * ((SCREEN_HEIGHT )/255.0))player1 はボールのY軸と同じ(無敵のCOM)player2 は可変抵抗で画面を上下に移動する。
  • 23. 早速、遊んでみよう!!
  • 24. ここまでが Python 触りだして1ヶ月これまで作った物は、・ Python で 電光掲示板・ Python で Pong ゲーム触っている内に、何となくPython が扱えるようになったwソースも見やすいし、サンプルから学べる物が多い。何より、完成形に持ち込みやすい!!w
  • 25. もう時間になってしまったので、 兎に角、 Python は、最強だと思う!!
  • 26. 次は、 WEBライブラリも追加して 電光掲示板に Twitter を流す! 理数形ライブラリを追加して GUI計測ソフトを作って見たい。 仕事でも積極的に 取り入れていきたいと思う。
  • 27. 以上で発表を終わります。
  • 28. 最後に、
  • 29. 日本でPythonが流行らないので、 試しに 擬人化をしてみたw名前は、錦 伊織(仮)ヘビを飼っている。胸(ソースコード)が大きく魅力的w書籍化する際はご用命をw
  • 30. 以上で発表を終わります。
  • 31. The END

×