#!/usr/bin/env python # coding: utf-8 # オリジナルの作成:2014/07/06 # # 0B-Windowsへのinoのインストールと使い方 # ## Windowsでinoを使う # [0A-MacOSXへのinoのインストールと使い方](http://nbviewer.jupyter.org/github/take-pwave/letsArduino/blob/master/0A-ino-install-MacOSX.ipynb) # に続いて、 Windowsでinoを使う方法を調べて見ました。 # # ## inoのインストール # Windowsでinoを使うには、以下のソフトが必要です。 # # - Arduino IDE Windows版 # - cygwin # - python27 # - python-setuptools # - make # - gcc-core # - nano(テキストエディタ) # - picocom # # 以下では、Arduino IDEがインストールされ、動いているものとして説明を進めます。 # ### cygwinのインストール # Cygwinの以下のサイトから、お使いのWindowsに合ったsetup-xxxx.exeをダウンロードしてください。 私は、古いXPにインストールしたので、setup-x86.exeをダウンロードしました。 # # cygwinのインストールで分かりにくいのが、このsetup-x86.exeのセットアップです。 以下の手順にそってインストールして下さい。 # # - ネットワークにアクセスできるようにして、ダウンロードしたsetup-x86.exeをダブルクリック # - Cygwin Net Release Setup Programの画面で、「次へ」ボタンを押す # - Choose A Download SourceでInstall from Internetを選択し、「次へ」ボタンを押す # - Select Root Install DirectoryとSelect Local Package Directoryは、そのまま「次へ」ボタンを押す # - Select Your Internet Connectionは、Direct Connectionを選択し、「次へ」ボタンを押す # - Choose A Download Siteでは、http://ftp.iij.ad.jp を選択し、「次へ」ボタンを押す # # 次が一番の難関のパッケージ選択画面です。 # # # # - Select Packages画面から # - Develをクリックし、makeとgcc-coreをクリックし、バージョン番号を表示 # - Pythonをクリックし、pythonをクリックし、バージョン番号を表示 # - Editorsをクリックし、nanoのSkipをクリックし、バージョン番号を表示 # - 最後に次にボタンを押すと、ダウンロードとインストールが実行されます(最初は時間がかかります) # - 完了ボタンをおして終わりです # ### Arduino IDEの移動 # 準備ができたので、inoのインストールに進みます。 # # 最初に、Arduino IDEをProgram FilesからC:\user\shareという名前のディレクトリを作成し、そこにArduinoという名前で 移動します。 # # # # デスクトップのArduinoショートカットでArduino IDEが使えるようにショットカットの プロパティを以下の様に変更します。 # # # ### inoのインストールとセットアップ # Cygwin Terminalのショートカットをダブルクリックし、Cygwin Terminalを起動します。 # # 最初にArduino IDEへのシンボリックリンクを作成し、inoをインストールします。 # # ```bash # $ ln -s /cygdrive/c/usr/share/Arduino/ /usr/share/arduino # $ easy_install ino # ``` # # ### picocomのインストール # 以下のpicocomのダウンロードサイトからpicocom-1.7.tar.gzをダウンロードし、C:\cygwin\homeの下の ユーザのディレクトリに保存します。 # # - [picocomダウンロードサイト](https://code.google.com/p/picocom/downloads/list) # Cygwin Terminalで以下の様に展開し、makeコマンドを実行します。 # # ```bash # $ tar xzvf picocom-1.7.tar.gz # $ cd picocom-1.7 # $ make # $ cp picocom.exe /usr/local/bin/ # ``` # # ## inoの動作確認 # 準備ができたので、inoの動作確認をします。 # # ```bash # $ mkdir sample # $ cd sample # $ ino init -t blink # $ ls -R # .: # lib src # # ./lib: # # ./src: # sketch.ino # $ ino build -m atmega328 # Searching for Board description file (boards.txt) ... /usr/share/arduino/hardware/arduino/boards.txt # Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt # Detecting Arduino software version ... 1.0.5 (1.0.5) # 途中省略 # Linking libarduino.a # Linking firmware.elf # Converting to firmware.hex # ``` # # 上記のように無事firmware.hexが作成されればインストールは完了です。 # ### スケッチのアップロード # inoは、LinuxやMacOSXなどのUNIXベースの環境を前提にしているため、inoのuploadコマンドは 使えません。 # # その代わりにアップロードスクリプトを用意します。 テキストエディタnanoを使って以下のテキストを入力(コピー&ペースト)してください。 Ctrl-Oで書き込み、Ctrl-Xで終了します。 # # ```bash # $ nano upload.sh # #!/bin/sh # MODEL=uno # MCU=atmega328p # PORT=COM3 # SPEED=115200 # case $# in # 4) MODEL=$1; MCU=$2; SPEED=$3; PORT=$4 ;; # 0) ;; # *) echo "Usage: upload.sh MODEL MCU SPEED PORT"; exit 1 ;; # esac # # /usr/share/arduino/hardware/tools/avr/bin/avrdude \ # -C /usr/share/arduino/hardware/tools/avr/etc/avrdude.conf \ # -p $MCU -P $PORT -b $SPEED -c arduino \ # -D -U "flash:w:.build/$MODEL/firmware.hex:i" # ``` # # 作成したスクリプトを/usr/local/bin/コピーします。 # # ```bash # $ chmod +x upload.sh # $ cp upload.sh /usr/local/bin/ # ``` # # upload.shの引数は、C:\usr\share\Arduino\hardware\arduinoのboards.txtを見て 調べて下さい。 私の持っているArduino Duemilanoveだと以下の様になっていました。 ここから、次の値をメモします。MODEL名には、list-modelsのモデル名を使用します。 # # - atmega328.build.mcu # - atmega328.upload.speed # # ``` # ############################################################## # # atmega328.name=Arduino Duemilanove w/ ATmega328 # # atmega328.upload.protocol=arduino # atmega328.upload.maximum_size=30720 # atmega328.upload.speed=57600 # # atmega328.bootloader.low_fuses=0xFF # atmega328.bootloader.high_fuses=0xDA # atmega328.bootloader.extended_fuses=0x05 # atmega328.bootloader.path=atmega # atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex # atmega328.bootloader.unlock_bits=0x3F # atmega328.bootloader.lock_bits=0x0F # # atmega328.build.mcu=atmega328p # atmega328.build.f_cpu=16000000L # atmega328.build.core=arduino # atmega328.build.variant=standard # # ############################################################## # ``` # # 以下の様にしてアップロードします。 # # ```bash # $ upload.sh atmega328 atmega328p 57600 COM10 # $ upload.sh atmega328 atmega328p 57600 COM10 # # avrdude.exe: AVR device initialized and ready to accept instructions # # Reading | ################################################## | 100% 0.02s # # avrdude.exe: Device signature = 0x1e950f # avrdude.exe: reading input file ".build/atmega328/firmware.hex" # avrdude.exe: writing flash (1076 bytes): # # Writing | ################################################## | 100% 0.55s # # avrdude.exe: 1076 bytes of flash written # avrdude.exe: verifying flash memory against .build/atmega328/firmware.hex: # avrdude.exe: load data flash data from input file .build/atmega328/firmware.hex: # avrdude.exe: input file .build/atmega328/firmware.hex contains 1076 bytes # avrdude.exe: reading on-chip flash data: # # Reading | ################################################## | 100% 0.53s # # avrdude.exe: verifying ... # avrdude.exe: 1076 bytes of flash verified # # avrdude.exe done. Thank you. # ``` # ### シリアルポートの使い方 # piccomは、Cygwinの/dev/ttySnを使って通信します。nには、COMの番号-1の値をセットします。 COM10の場合には、/dev/ttyS9を指定します。 # # ```bash # $ ino serial -p /dev/ttyS9 # picocom v1.7 # # port is : /dev/ttyS9 # flowcontrol : none # baudrate is : 9600 # parity is : none # databits are : 8 # escape is : C-a # local echo is : no # noinit is : no # noreset is : no # nolock is : yes # send_cmd is : sz -vv # receive_cmd is : rz -vv # imap is : # omap is : # emap is : crcrlf,delbs, # # Terminal ready # 0 # 999 # 1999 # 3000 # 4000 # 5000 # 6000 # 7001 # 8001 # 9001 # 10002 # # Thanks for using picocom # term_exitfunc: reset failed for dev /dev/pty0: Resource temporarily unavailable # ``` # # 残念ながら、ttyのリセットで失敗するようで、終了後 # # ```bash # $ stty echo # ``` # # で文字が表示できるようになりますが、改行キーの後にもどらない現象が残ります。 # # ここは、今後の課題です。 # In[ ]: