2017年5月19日金曜日

こんにちはTWELITEその2(開発環境を揃えてテストプログラムを動かしたい)

前回に続きTEWLITE 今回は開発環境を揃えて,サンプルプログラムを書き込みます.
基本的にはなんでも良いのでしょうが,メーカー推奨のeclipseを使います.

C/C++の開発しかしないので こちらのサイトの[Download Links]にある [Mac OS X (Cocoa) 64-bit]をクリックしてソフトをダウンロードします.
 KeplerとかLunaとかNeonとかはバージョンの名前です.
今回はNeon. 

ダウンロードしたものを解凍すると[eclipse]というアプリケーションがでてくるので これを適当な場所に移動して起動します.(インストーラーはないのでこれで完了)

念のためコンパイルできるかどうか動作確認をしてみます.(以下の行程はスキップしても良いです)

まずはWorkspaceを選びます.
/Users/ユーザー名/Documents/workspace が選ばれていると思いますのでそのまま[OK]を押します.

 次に[Welcome]のタブが出てきます.
ランチャになっているので[Create a new C++ project]を選びます.

 [C++ Project]のウィンドウが開くので プロジェクト名を適当な名前にします. 

[Project type]は[Hello World C++ Project]にして,
[Toolchains]は[Cross GCC]を選び [Next]を押します. 

Basic Setting の画面が出ますが,[Next]を押して次に進みます.

Select Configurations の画面が出ますが,[Next]を押して次に進みます.

Cross GCC Commandの画面が出ますが[Finish]を押して次に進みます. 

はじめの画面に戻りますので,ウィンド左上の[Welcome]のタブを閉じてしまいます. 

すると[Project Explorer]やソースコーソが表示されると思います. 

このままだとコンパイルはできても実行ができないので[Project]の中にある[Properties]を選び設定を追加します. [Run/Debug Settings]を選んで右側の[New]を押します.

 [Select Configuration Type]のウィンドウが出ますので[C/C++ Application]を選びます.

 [C/C++Application:]の欄に[Debug/プロジェクト名]を入力し[OK]を押します.

 これで[Run]から[Run]を選ぶと[Console]ウィンドウに
"!!!Hello World!!!"
が表示されます.

これで開発環境と動作確認は完了です.
一旦立ち下げましょう.
*スキップした方はここから


次にTWELITEのサンプルソースコードをメーカーサイトからダウンロードしてきます.
その1で入手している時には不要です.
もしまだダウンロードしていなければMac版の「2014/08月号 SDK ファイル 」をダウンロード. ファイルをダウンロードしたら適当な場所におきます.
ここでは
 /Users/ユーザー名/Documents/TWESDK/Wks_ToCoNet
にあるとして話を進めます.

 次にEclipseを起動し,先ほど記入したSDKを置いたディレクトリを選びます.
 バージョンが古いからうんぬんかんぬんとでますので[OK]を押します. 

試しにSamp_PingPongを動かします.
 [Samp_PingPong]のなかにあるPingPong.cを開きます.

この状態で[Build]するとエラーがでます.
Include fileにstdio.hを追加するとけるので
 #include <stdio.h>
を16行目あたりの適当なところに記入しておきます. これで[Build]すると無事コンパイルが終わります. あとは,[Build]フォルダにできた Samp_PingPong_PingPong_JN5164_0_1_4.bin をその1で紹介したjenprogを使って書き込みます. TWESDKを書類フォルダに入れている場合はターミナルで
 cd ~/Documents/TWESDK/Tools/jenprog/
./jenprog -f 0 ../../Wks_ToCoNet/Samp_PingPong2/PingPong/Build/Samp_PingPong2_PingPong_JN5164_0_1_4.bin 
などと転送すれば書き込みができます.


2017年5月7日日曜日

こんにちはTWELITEその1(シリアル通信とファームウエア書き換えをOSXで行いたい)

ArduinoでパワーMOSFETを使ってみるのその2の前に割り込み企画

この連休中はセンサーの値を無線で飛ばしてLCDで表示したくてTWELITEはじめてみました.

とりあえず以下の3つを入手
TWELITE DIP(DIP基板用TWELITE)
MONOSTICK(USB接続用TWELITE)
TWELITE R(TWELITE書き込み用基板)
しました.
参考書籍は
TWE‐Lite(トワイライト)ではじめるカンタン電子工作を入手.

TWELITE DIPがあれば,TWELITEの内蔵マイコンに初期インストールされている「超簡単!TWE標準アプリ」を使って単体でデータを飛ばすことができるというすぐれもの

TWELITEは無線通信機能と内蔵マイコンを持っているため,必要に応じてマイコン部分に自分でいろいろとプログラムを作って書き込むこともできます.この場合はTWELITE Rとパソコンを使ってプログラムを書き込みます.
ただ,Arduinoほどお手軽ではありません.例によってOSX環境で使うとなるとWindowsに比べていろいろめんどくさくなっており,備忘録としてメモ書きを残しておきます.(初めてのことをMac環境でやるものではないといえばそこまでですが)

1.USBドライバのインストール

まずFTDIドライバのインストールを行います.
私はFTDIドライバをこちらからダウンロード2.3を選んでインストールしました.
(OSX 10.12Sierraはドライバインストール不要とのことらしいですが,試さずにインストールしてしまいました.)

2. pyserialのインストール

次にpyserialをインストールします.

私はpython関連をAnacondaにお任せしているので
Anacondaの[Anaconda-Navigator]を起動し[Environments]から[pyserial]を選んでインストールしました.なおpyserial自体はpythonのパッケージなので直接起動するようなアプリケーションではありません.pythonを普段使われている方はpipからインストールすればよろしいかと思います.pythonをまだ使われていない方はAnacondaオススメです.

3.書き込みツールのインストール

次にこちらのページから開発元が公開しているjenprogをダウンロードします.
SDKにも含まれているのでどうせアプリ開発をやるのであればSDKをダウンロードしてしまいましょう.解凍したら適当な場所に動かします.
私は[書類]フォルダのなかにTWESDKフォルダをおきました.

次にOSXのターミナルアプリを使います.
コマンドラインを出したら
cd ~/Documents/TWESDK
として先ほど作成したTWESDKフォルダに移動します.
この場合はTools/jenprogフォルダ内にjenprogの実行ファイルがあります.
 cd Tools/jenprog
としてjenprogフォルダ内に移動したら
 ./jenprog -h
として動作を確認します.
./jenprog -h
*** jenprog ver 1.3 ***
Usage: jenprog.py [options]

Options:
  -h, --help            show this help message and exit
  -a ADDR, --address=ADDR
                        start reading at address
  -l LEN, --len=LEN     number of bytes to read
  -m MAC, --mac=MAC     reset the mac addr (e.g. -m 01234567ABCDABCD)
  -k KEY, --key=KEY     reset the license key
  -v, --verify          also verify after writing
  -z, --compare         compare between flash content and specified file
  -s, --show            show mac address and license key
  -e, --erase           erasing the flash after reading mac and license key
  -b BAUD, --baud=BAUD  baud rate for serial connection.
  -t TARGET, --target=TARGET
                        target for connection
  -F, --force           skip firmware compatibility
  -C, --list-com-ports  skip firmware compatibility
  -D CDIR, --current_dir=CDIR
                        current directory
などと表示されれば動作しています.

次にUSBに接続しているTWELITEのリストを出します.
 ./jenprog -l
と入力するとAdminパスワードをきかれるので入力するとUSBポートに刺さっているTWELITEの一覧が表示されます.
 
# TWEUSB device list (num=2)
# ID,S/N,Desc
0,MWV61OJ,MONOSTICK
1,MWS4BXE,TWE-Lite-R

うまく表示されない場合は差しっぱなしで再起動するとか,挿すポートを変えて見てください.私のMacBookProは一度認識されたあと引き抜くと認識してくれないことがあります.

さて,プログラムを書き込みます.
まず書き込みの確認として出荷時に書き込まれている「超簡単!TWELITE標準アプリ」をインストールしてみます.メーカーWEBから最新版ソフトをダウンロードし解凍します.
App_TweLite_Master_1_8_1_BIN(バージョンによります)の中にあるApp_TweLite_Master_JN5164_1_8_1.binとApp_TweLite_Master_JN5164_TOCOSTICK_1_8_1.bin
を~/Documents/TWESDK/Tools/jenprogフォルダ内にdataというディレクトリをつくりコピーしておきます.(どこで作業してもいいのですが簡単のため)
その上でファームウエアを書き換えるときはそれぞれ
./jenprog -f 0 ./data/App_TweLite_Master_JN5164_TOCOSTICK_1_8_1.bin 
./jenprog -f 1 ./data/App_TweLite_Master_JN5164_1_8_1.bin 
と入力します.すると
SET MWS4BXE INTO PROGRAM MODE
*** jenprog ver 1.3 ***
 file info: 04 03 0008
writing...
  0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..done - 7.89 kb/s
done

OK: firmware is successfully programmed.
などと表示されれば無事完了です. 
プログラムを書き込んだらいちどリセットします.(忘れがちですが)
リセット方法は製品によって異なり,
TWELITE Rはボード上のリセットスイッチを押します.
MONOSTICKはリセットスイッチが押せないのでコマンドライン上から下記コマンドでリセットします.
./jenprog -r 0

最後に動作確認をします.
標準アプリケーションはシリアル通信でデータが送られてきています.
WindowsはTeratermを使うのが標準かと思いますが,私はMacの場合,Cooltermを使っています.

Cooltermを起動したら,[Options]の中の[Port:]からTWELITEのポートを選び,[Baudrate:]は115200を選びます.
シリアル通信のデータが表示されていることが確認できます.
(シリアルの確認だけであれば,Arduino IDEを使うのも簡単です)
これで一応Windowsの皆様と同じ土俵に乗ったはずです.
次はプログラムを作成して書き込んでみます.
その2はこちら