Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PyQt で中古オシロスコープを操作

PyQt で中古オシロスコープを操作

Slides I used in Open Source UN-Conference 2017 Kawagoe

Daniel Sangorrin

April 15, 2017
Tweet

More Decks by Daniel Sangorrin

Other Decks in How-to & DIY

Transcript

  1. PyQt で中古オシロスコープを操作
    @daromart
    http://sangorrin.github.com
    http://sangorrin.blogspot.com
    http://sangorrin.blogspot.com
    Daniel Sangorrin ( ダニエル )

    View full-size slide

  2. 前回の OSunC 川越

    Octave (Matlab の OSS 版 )
    – スライド等は github.com/sangorrin においてある

    発表後、観光してたら…
    怪しい人

    View full-size slide

  3. デッカイ
    デッカイ
    カメレオン
    カメレオン
    ここ!
    ここ!
    時の鐘
    OpenSuse のファン
    どうぞ!

    View full-size slide

  4. 今回の発表
    ヒゲが
    ヒゲが
    ない時
    ない時
    対象物

    View full-size slide

  5. あるサイトでオシロを購入した

    岩通 BRINGO DS 8812 100MHz 500MS/s

    小さくて、そこそこ安かったけど…

    View full-size slide

  6. 画面右側に
    画面右側に
    乱れが!
    乱れが!

    View full-size slide

  7. 頑張って分解したが、
    直せなかった

    View full-size slide

  8. しかも、もう一度
    組み立てると…

    View full-size slide

  9. なにこれ!
    なにこれ!

    View full-size slide

  10. 男も悩む…
    LCD を入れ
    替えたら
    どう?
    いやー
    お金の無駄に
    なるかな~
    てか、俺は
    ソフトのガイ
    だぜ!

    View full-size slide

  11. シリアルポートがあるじゃん

    オシロのマニュアルにプロトコルの説明がある!
    (c) IWATSU ELECTRIC CO.,LTD

    View full-size slide

  12. 運が良ければ少し見えるよ。
    さて、シリアルポートを
    設定しよう!

    View full-size slide

  13. これは大事!
    オシロ
    オシロ
    PC
    PC

    View full-size slide

  14. Hello world (1/2)
    (c) IWATSU ELECTRIC CO.,LTD
    DATE?

    View full-size slide

  15. Hello world (2/2)
    Ack
    '\x06'
    CR→CR+LF
    DATE 結果

    View full-size slide

  16. Qt Designer によるカッコイイ GUI

    View full-size slide

  17. Signals: クリックするとこの関数を

    View full-size slide

  18. 後は Python コードを書くだけ
    $ pyuic4 window.ui > window.py
    $ kate logic
    from PyQt4 import QtGui
    from window import Ui_MainWindow
    class Main(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self, ):
    super(Main, self).__init__()
    self.setupUi(self)
    ...
    if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())
    https://github.com/sangorrin/iwatsu-ds-8812-bringo-dso-application.git

    View full-size slide

  19. 決まる!
    決まる!

    View full-size slide

  20. 決まる!
    決まる!

    View full-size slide

  21. おわり
    @daromart
    http://sangorrin.github.com
    http://sangorrin.blogspot.com
    http://sangorrin.blogspot.com
    スライドはこっち: https://speakerdeck.com/sangorrin
    (slideshare やめよう! )

    View full-size slide