2015年12月11日金曜日

倒立振子をつくろう!? #1 arduino IDE 1.7x インストール編




 世の中には倒立振子と呼ばれるものがあることはご存知だろうか?
私だって知っていた.そして憧れた.あの倒立振子である.
博識な皆様なら,当然ご存知であろう.

そう.コレ(下の図参照)


わたしも,制御の世界に身を置くものとして,一度は作って見たいものである.

じゃあ,作っちゃおう!

幸いにも,ドキュメントはWWWの世界に腐らないケド,腐るほどあるので問題ないはず.
そもそも,必要な知識などは私の頭の中にあるはずである.
少なくとも,私の履修科目一覧はそう言っている.(制御工学,現代制御,システム制御...)


さて, 御託はこのへんにしておいて,タイトルにもあるとおり,
arduinoのIDEをパソコンにインストールする.
倒立振子を立たせるためには,制御用コンピュータが必要なのであるが,
今回はarduinoを使うよ.


arduinoとは使いやすくなったマイコンである.しかも,オープンソース.
IDEとは統合開発環境の略で,プログラミングに必要なアレコレが一緒くたになったものである.


今回はarduino M0 を使用することに決めた.
arduinoの開発会社が真っ二つに別れた影響により,
arduino M0では今までのarduino IDEが使用できない.そこで,新しくIDEをインストール
しなければならないが,今まで,arduino UNOなどで使用していたIDEを
アンインストールする必要もない.理由は後述します.


  •  環境設定 
私の環境はLinux Mint 17.3 Rosa(Ubuntu 14.04)

  • ソフトウェアのダウンロード
    ここから arduino IDE17.xをダウンロードする.

  •  インストール手順
   インストールはここにあり(英語)
   上のサイトを自分用に翻訳すると下のようになる.

   1.端末を開いて
   
      $ sudo vim /etc/udev/rules.d/90-extraacl.rules

    するとvimというテキストエディタで設定ファイルが開かれるので,
    そこに以下の設定を書き込む.

   KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="<your_username>"
   KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="<your_username>"

    
    ただ,ここで<your_username>というのはあなたのパソコン上の
    ユーザーネームなので以下の新しく端末を開いて,以下のコマンドを打つ.

                       $whoami

    すると,遠い昔,遥か彼方の銀河系で...設定したユーザーネームが表示される.
    私の場合は,sharuと表示されるので設定は,

   KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="sharu"
   KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="sharu"


     となる. 

    エディタで設定を保存して閉じる場合はエディタ上で

      :wq

                 と打つ.


  2.引き続き端末上で作業するよ.

      $ sudo usermod -a -G tty <your_username>
      $ sudo usermod -a -G dialout <your_username>

           
    とタイプしてくだされ.<you_username>は前述の通り,
    あなたの名前を入れてね.


  3.もちろん,端末上で作業するよ.

                     $ sudo apt-get remove modemmanager
                
    削除して大丈夫なのか...コレ...
    ちょっと調べたけど,大丈夫そうですな...


  4.端末上で(ry
    ここから,スーパーユーザーに変身して作業するので以下のコマンドを
    カチョー オーン!!

      $ sudo -s
      $ sudo vim /etc/udev/rules.d/98-openocd.rules

    開いたファイルにすかさず設定を書き込むべし.

      #Copy this file to /etc/udev/rules.d/

      ACTION!="add|change", GOTO="openocd_rules_end"
      SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end"

      #Please keep this list sorted by VID:PID

      #CMSIS-DAP compatible adapters
      ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"

      LABEL="openocd_rules_end"


    で閉じる(保存も)ためにエディタvim上で

     :wq

     そして,パソコンを再起動してください.もう一息です.


  5.端末上で打つべし!打つべし

     $ sudo udevadm control --reload-rules
     $ sudo udevadm trigger

さあ,パソコンの設定はコレで終了です.
最初の方でダウンロードしたものを解凍して,中に入っている
arduinoというシェルスクリプトを以下のコマンドで立ち上げてください.

     ./arduino

するとおなじみの画面が立ち上がる.しかし,読者諸君は興奮のあまり座席から立ち上がる
という愚行を犯してはならない.隣人から白い目で見られる.

このように,シェルスクリプトでIDEが立ち上がるため,以前のarduino IDEを削除する必要が
無いことがお分かりいただけただろうか.


さて,ここで注意点!!!

パソコンとシリアル通信するときはSerial.println()ではなく,SerialUSB.println()を使用
しないと通信できないゾ.


おつかれさまでした.