SlideShare uma empresa Scribd logo
1 de 13
音ゲーマーの憂鬱.py
2015.9.12 @monochrojazz
Q:何者か
・@monochrojazz
・音ゲーマー
・大学時代物理専攻だったが
会社に入ったらIT部署に配属されていた
→じゃあプログラムで音ゲーを作ろう
・セキュリティ関連の話に興味があるとかないとか
Q:この発表何すか
・家で音ゲーやりたいがために勉強もかねて作ったもの
(+α)を紹介
・その一部にpythonが使われていたりするのでその時
使ったコードとかモジュール等を紹介
(ややこじつけ気味)
百聞は一見に如かず
Androidアプリ+mbed+マイコン(PIC16F1827)
最近携帯コントローラも作った
出来るだけ簡単に曲を追加したい
RaspberryPi
WindowsPC
タブレット1
タッチパネルで遊ぶ用
タブレット2
外部コントローラで遊ぶ用
手動でデータ同期+
2回USBでデータ配信は
面倒
Webサーバにゲーム
データを投げる
Pythonでデータ統合、
共有フォルダにマウント
したWindowsPCに保存
WindowsPCにデータ追
加して後はタブレットで
ダウンロード
昔RaspberryPi
からデータ統合プログ
ラム.exe(C#)
を動かしていたがWin8
からできなくなった
import sys
import sqlite3
argvs = sys.argv
conn = sqlite3.connect(argvs[1])
conn_sub = sqlite3.connect(argvs[2])
conn_sub.row_factory = sqlite3.Row
sql_sel = "select * from gameData"
cursor = conn_sub.cursor()
for row in cursor.execute(sql_sel):
print (row["status"])
sql_ins = "update gameData set status = ?, score = ?, bp = ? where noteId = ?"
conn.execute(sql_ins, (row["status"], row["score"], row["bp"],row["noteId"]))
conn.commit()
conn.close()
conn_sub.close()
参考:
http://d.hatena.ne.jp/hirogl_python/2010050
3/1272903240
カラム名でデータにアクセスできて見
やすい
PHPで呼び出し
$exe = 'python3 …/dbint.py …/Xperia/allbeater.db …/ARROWS/allbeater.db';
$pp = popen($exe, "w");
+αのお話(pythonとSPI通信)
RaspberryPi+ADCコンバータ+温度・照度センサ
参考:というかここのコードの丸パクリ
http://tech.naviplus.co.jp/2014/07/23/raspberry-
pi%E3%81%A7ad%E3%82%B3%E3%83%B3%E3%83
%90%E3%83%BC%E3%82%BFmcp3208%E3%82%92
%E4%BD%BF%E3%81%86/
import sys
import time
import RPi.GPIO as GPIO
class MCPLib:
spi_clk = 11
spi_mosi = 10
spi_miso = 9
spi_ss = 8
def getChData(self, ch):
GPIO.output(self.spi_ss, False)
GPIO.output(self.spi_clk, False)
GPIO.output(self.spi_mosi, False)
GPIO.output(self.spi_clk, True)
GPIO.output(self.spi_clk, False)
中略
# 12ビットの測定結果をADコンバータから受信
value = 0
for i in range(12):
value <<= 1
GPIO.output(self.spi_clk, True)
if (GPIO.input(self.spi_miso)):
value |= 0x1
GPIO.output(self.spi_clk, False)
GPIO.output(self.spi_ss, True)
return value
import spidev
import time
CE=0
spi = spidev.SpiDev()
spi.open(0,CE)
while True:
raw = spi.xfer2([0x68,0x00]) # 0b01101000, 0x00
value = ((raw[0]<<8)+raw[1]) & 0x3ff # Shifting operation
SPIdevっていうモジュールもあるけど失敗したので諦めた
http://orion-
lifelog.com/2014/12/23/raspberrypi%ef%bc%88%e3%
83%a9%e3%82%ba%e3%83%99%e3%83%aa%e3%83
%bc%e3%83%91%e3%82%a4%ef%bc%89-python-
spidev%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%
a6%e9%83%a8%e5%b1%8b%e3%81%ae%e6%b8%a9
%e5%ba%a6%e3%82%92/
温度と照度が取れた
照度センサに手をかざして暗くする
温度センサを温める

Mais conteúdo relacionado

Mais procurados

Python3と向かい合ってみる
Python3と向かい合ってみるPython3と向かい合ってみる
Python3と向かい合ってみるAtsuo Ishimoto
 
Nefry btの簡単レビュー
Nefry btの簡単レビューNefry btの簡単レビュー
Nefry btの簡単レビューShintaro Yamasaki
 
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみたRyodo Tanaka
 
micropythonで遊んでみる
micropythonで遊んでみるmicropythonで遊んでみる
micropythonで遊んでみるsatokengo
 
Seq2Seqでボットづくり
Seq2SeqでボットづくりSeq2Seqでボットづくり
Seq2SeqでボットづくりMasato Fujitake
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜Saya Katafuchi
 
コンピュータフォレンジックにちょっとだけ触れてみる
コンピュータフォレンジックにちょっとだけ触れてみるコンピュータフォレンジックにちょっとだけ触れてみる
コンピュータフォレンジックにちょっとだけ触れてみるinfinite_loop
 
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼうものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼうYasuhiro Ishii
 
IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」
IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」 IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」
IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」 Kazuhiko Kato
 
Libqi unityの紹介など
Libqi unityの紹介などLibqi unityの紹介など
Libqi unityの紹介などFujikido
 
使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)
使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)
使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)ZUN. jp
 
Pillowの使い方
Pillowの使い方Pillowの使い方
Pillowの使い方2bo 2bo
 
RaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoTRaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoTSaito5656
 

Mais procurados (20)

Python3と向かい合ってみる
Python3と向かい合ってみるPython3と向かい合ってみる
Python3と向かい合ってみる
 
Python3でwebアプリ
Python3でwebアプリPython3でwebアプリ
Python3でwebアプリ
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
 
Nefry btの簡単レビュー
Nefry btの簡単レビューNefry btの簡単レビュー
Nefry btの簡単レビュー
 
小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた小ネタ:Android上でroscoreを走らせてみた
小ネタ:Android上でroscoreを走らせてみた
 
micropythonで遊んでみる
micropythonで遊んでみるmicropythonで遊んでみる
micropythonで遊んでみる
 
MicroPython + ESP32
MicroPython + ESP32MicroPython + ESP32
MicroPython + ESP32
 
20210705 sd#26 kitazaki
20210705 sd#26 kitazaki20210705 sd#26 kitazaki
20210705 sd#26 kitazaki
 
Seq2Seqでボットづくり
Seq2SeqでボットづくりSeq2Seqでボットづくり
Seq2Seqでボットづくり
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
 
コンピュータフォレンジックにちょっとだけ触れてみる
コンピュータフォレンジックにちょっとだけ触れてみるコンピュータフォレンジックにちょっとだけ触れてみる
コンピュータフォレンジックにちょっとだけ触れてみる
 
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼうものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
 
IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」
IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」 IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」
IPAX 2004年9月 基調講演「ソフトウェア新創世紀へ向けて」
 
Libqi unityの紹介など
Libqi unityの紹介などLibqi unityの紹介など
Libqi unityの紹介など
 
Stapy#22 LT
Stapy#22 LTStapy#22 LT
Stapy#22 LT
 
Nishimoto 170603-mruby
Nishimoto 170603-mrubyNishimoto 170603-mruby
Nishimoto 170603-mruby
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)
使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)
使わなくなったiPhone3GSにAndroidとか色々入れてみた(かった)
 
Pillowの使い方
Pillowの使い方Pillowの使い方
Pillowの使い方
 
RaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoTRaspberryPiとawsで取組んだ自作IoT
RaspberryPiとawsで取組んだ自作IoT
 

Mais de monochrojazz

gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-monochrojazz
 
たのしいPowershell Empire
たのしいPowershell EmpireたのしいPowershell Empire
たのしいPowershell Empiremonochrojazz
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るmonochrojazz
 
Kali LinuxとMetasploitable2で遊ぼう
Kali LinuxとMetasploitable2で遊ぼうKali LinuxとMetasploitable2で遊ぼう
Kali LinuxとMetasploitable2で遊ぼうmonochrojazz
 
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystemmonochrojazz
 
色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそう色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそうmonochrojazz
 
Use After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試すUse After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試すmonochrojazz
 
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃monochrojazz
 
python-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしようpython-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしようmonochrojazz
 

Mais de monochrojazz (9)

gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
 
たのしいPowershell Empire
たのしいPowershell EmpireたのしいPowershell Empire
たのしいPowershell Empire
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
 
Kali LinuxとMetasploitable2で遊ぼう
Kali LinuxとMetasploitable2で遊ぼうKali LinuxとMetasploitable2で遊ぼう
Kali LinuxとMetasploitable2で遊ぼう
 
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem
 
色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそう色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそう
 
Use After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試すUse After Free 脆弱性攻撃を試す
Use After Free 脆弱性攻撃を試す
 
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
 
python-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしようpython-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしよう
 

音ゲーマーの憂鬱