3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ArduinoをWindows PCからPythonで操作するためのTOOL : Ardipy

Posted at

#Ardipy
Arduinoには標準でfirmata arduinoが用意されています。
ただ、このfirmataは速度が遅い問題があることや、Pythonとのインターフェースが不十分な状況です。
また、firmataはいろいろな方式に対応しようとしているため、I2Cなどの通信などを行う場合に重く
使いづらいため、独自FWとPythonドライバを作ってみました。

Ardino+Pythonで Ardipy

I2C, SPIのUSB変換とPythonドライバはAardvarkという機器が標準でサポートしていますが
価格と入手性が悪いため、Arduinoを使った簡易検査装置として使う事が目的としています。

##Ardipyソースコード
Arduino Uno スケッチ(Arduinoで動作するFW)
https://github.com/Nomisugi/Ardipy/blob/master/Ardipy01.ino

Pythonインターフェース(Arduino FWをPCからコントロールするPython Driver)
https://github.com/Nomisugi/Ardipy/blob/master/Ardipy_Driver.py

firmataと違い、Ardipyは軽さを重視しているためArdino UNOで使うことを前提とし
それぞれのポートは最初から役割を決められています。画像が使える端子です。
arduino-transparent.png

注意点として PORT0,1 (TXD, RXD)ポートはUSB端子とUART通信で使用するため
使うと動作が停止します。Sample.py
ArdipyはPCとArduinoが常にUART通信を行う事が前提のため、このポートは使えません。

##Ardipy使い方
(1)Arduino UnoにArduino IDEを使いArdipy01.inoを書き込み
(2)Arduino UnoとPCを接続して、WindowsPCがUARTポート認識していること
(3)PythonにpySerialをインストール
(4)Pythonでサンプルコード実行

Sample.py
    from Ardipy_Driver import Ardipy

    ar = Ardipy()
    #Search for Arduino Uno UART
    ar.autoConnect()

    #I2C Check
    val = ar.i2cRead_word(0x40, 0x00)
    print(val)

    #AD Check
    val = ar.adRead(0x00)
    print(val)

    #Port Check
    light = True
    
    ar.portOut_bit(2, 0)
    i = ar.portIn_bit(3)
    print(i)

    for j in range(10):
        light = not light
        if( light ):
            ar.portOut_bit(2, 1)
        else:
            ar.portOut_bit(2, 0)
        time.sleep(1)

実際に動作しているかは、Arudino UnoのTX RXのLEDを確認してみてください。
またはArdinoのポート2にテスタを当てて確認してください。
今後はArdipyを使ったセンサー制御や各種GUIを作っていきます。
簡単なセンサー制御や簡単に制御機器をテストすることに使えると思います。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?