Python上でのパーツライブラリの使用方法について



  • 今まではJavaScriptから使っておりましたが、せっかくなのでPythonでも使いたいと思い、obnizのPython用ライブラリ(v0.3.0)を初めて試しています。手始めに、このバージョンからサポートされたLEDなどを使いたいと思い、以下のコードを試してみました。

    import asyncio
    from obniz import Obniz
    
    
    async def onconnect(obniz):
        led = obniz.wired("LED", {"anode": 0, "cathode": 1})
    
        def read_state(state):
            if state == "push":
                led.on()
    
            else:
                led.off()
    
        obniz.switch.onchange = read_state
    
    
    obniz = Obniz('0000-0000')
    obniz.onconnect = onconnect
    
    asyncio.get_event_loop().run_forever()
    

    このコードを実行すると、次のようなエラーが表示されました。

    Python 3.7.4 (default, Jul 9 2019, 00:06:43)
    [GCC 6.3.0 20170516] on linux
    WebSocket connection is closed: code = 1000 (OK), no reason
    _call_on_connect
    Task exception was never retrieved
    future: <Task finished coro=<onconnect() done, defined at main.py:5> exception=Exception('unknown parts [LED]')>
    Traceback (most recent call last):
    File "main.py", line 6, in onconnect
    led = obniz.wired("LED", {"anode": 0, "cathode": 1})
    File "/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/obniz/obniz/obniz_parts.py", line 31, in wired
    parts = ObnizParts.parts(partsname)
    File "/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/obniz/obniz/obniz_parts.py", line 27, in parts
    raise Exception("unknown parts [" + name + "]")
    Exception: unknown parts [LED]

    恐らく、ライブラリの使い方が間違っているのではないかと思います。もし、何か抜けている手順などありましたら、ご指摘いただけると助かります。どうぞよろしくお願いいたします。

    なお、repl.itではこちらに置いてあります。

    https://repl.it/@kotobuki/ObnizPartsLibTest


  • administrators

    @Shigeru-Kobayashi さん

    ご連絡ありがとうございます。
    確認いたしますので少々お待ち下さい


  • administrators

    @Shigeru-Kobayashi さん

    すみません、調査した結果、pipではうまくパーツライブラリが入っていないことが判明しました。
    バグとなっておりすみません。

    修正したバージョンをリリースしますので、少々お待ち下さい。


  • administrators

    @Shigeru-Kobayashi さん

    obniz.py 0.4.1 にてパーツライブラリの修正を行いました。
    pipにて入れていただければ、LEDその他のパーツが使えます。

    お試しいただけますようお願いいたします。



  • @kido さん

    早速のご対応、ありがとうございました。v0.4.1での動作を確認いたしました!

    https://repl.it/@kotobuki/ObnizLED


 

Recent Projects

  • @nak435 かしこまりました。よろしくお願いします。

    read more
  • @Yuki-Sato さん、

    外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    今週末に確認しますので、お待ちください。

    read more
  • @nak435 時間がかかってすいません、

    なんとか3.3vをgndにつないでFlick Largeを動かしたかったのですが、うまく動かすことができなかったです。
    3.3vをgndを繋がずに接続するというのはライブラリで推奨して伝えることは難しいと思ってます。

    Flick LargeでなくFlick Hatの方で、外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    よろしくお願い致します。

    read more
  • @nak435 ありがとうございます。
    接続は3.3vのgnd以外同じでした。
    エラーはそのせいかもしれませんが、しかし電気的にはgndを繋がない場合3.3vとしてうまく供給できないはずなのでそこが不思議です。

    教えていただいたプログラムの部分を修正して試してみたいと思います。
    また少し時間がかかりそうなのですが、早めに試したいと思います。

    引き続きよろしくお願い致します。

    read more