/idraw

iDrawは、ユーザーが作成したSVGファイルを使用してAxiDrawを制御するプロジェクトです。

Primary LanguagePythonMIT LicenseMIT

iDraw

プロジェクト概要

iDrawは、ユーザーが作成したSVGファイルを使用してAxiDrawを制御するプロジェクトです。

必要なモジュール

  • Raspberry Pi 4B
  • Arduino Uno
  • AxiDraw

環境

  • Python 3.11

セットアップ

注意: 以下のセットアップを行う前に、仮想環境を作成することをお勧めします。

$ python3 -m venv your_venv_name
$ source your_venv_name/bin/activate

Raspberry Piでのセットアップ

  1. リポジトリをクローンする:

    $ git clone https://github.com/junseiTanaka/idraw.git
  2. Inkscapeアプリケーションをインストールする:

    $ sudo apt update
    $ sudo apt install snapd
    $ sudo reboot
    $ sudo snap install core
    $ sudo snap install inkscape
  3. AxiDraw_API

    $ python -m pip install https://cdn.evilmadscientist.com/dl/ad/public/AxiDraw_API.zip
  4. 必要なパッケージをインストールする:

    $ cd idraw
    $ pip install -r requirements.txt
  5. USBポートの名前を固定 ArduinoとRaspiを接続(ペンプロッターは接続しない)

    $ udevadm info -a -n ttyACM0

    ATTRS{idProduct}=="AAA" ATTRS{idVendor}=="BBB" の出力結果をメモする。

    $ sudo nano /etc/udev/rules.d/99-usb-serial.rules

    99-usb-serial.rules

    SUBSYSTEM=="ttyACM*", ATTRS{idProduct}=="AAA(先ほど調べた値)", ATTRS{idVendor}=="BBB(先ほど調べた値)", SYMLINK+="arduino",MODE="0666"

    ctl-Xで抜け出し、yを押して保存。 udevの再起動をするために以下を実行

    $ sudo udevadm trigger

    最後に

    $  ls /dev/arduino

    でファイルが見つかれば完了。

使い方

①SVGデータをPATHデータに変換する

SVGデータがある場合

  1. AxiDrawで描いて欲しいSVGデータを用意する。

  2. SVGデータをidraw/src/svgディレクトリに移動する。

  3. ターミナルから以下を実行し、新しいファイルがpath_svgディレクトリ内に保存されていることを確認する:

    $ python3 SVGConverter.py
  4. AxiDrawとRaspberry PiをUSB接続する。

  5. Arduino UnoとRaspberry PiをUSB接続する。

SVGデータがないが、書きたい文字がjsonファイルにある場合

  1. AxiDrawで描いて欲しい文字が書かれたjsonデータを用意する。

  2. jsonデータをidraw/src/jsonディレクトリに移動する。

  3. ターミナルから以下を実行し、新しいファイルがpath_svgディレクトリ内に保存されていることを確認する:

    $ python3 ~/idraw/src/SVGConverter.py
  4. AxiDrawとRaspberry PiをUSB接続する。

  5. Arduino UnoとRaspberry PiをUSB接続する。

注意: USB接続の順番を守ること。AxiDraw → Arduino Unoの順番でRaspberry Piに接続する。 USB接続はどちらからでも大丈夫です。

②AxiDrawを実行する

  1. ターミナルから以下を実行する:
    $ python3 ~/idraw/src/AxiDrawController.py

①は毎度実行する必要はありません。一度PATHデータが生成されれば②だけ実行すれば大丈夫です。

## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.