趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • ESP32でNTP Clientを動かしてみた

    投稿日 2017年 2月 8日 コメントはありません

    一昨日のESP-WROOM-32(ESP32)をArduino IDEで動かしてみた続きです。

    Arduino IDEにはWiFi関連のサンプルプログラムがあるので、動かしてみました。

    「ファイル」⇒「スケッチ例」⇒「あらゆるボードのスケッチ例」⇒「WiFi」の下にいくつかサンプルが有りますが、こちらはESP32環境ではビルドできませんでした。Espressif社提供のライブラリとArduino IDEに初めから付いているWiFiライブラリでは完全に互換ではないようです。(確か、バージョン情報を取得するようなライブラリでコケてたような気がします)

    「ファイル」⇒「スケッチ例」⇒「ESP32 Dev Module用のスケッチ例」⇒「WiFi」の下の「WiFiIPv6」というのを開いてみると、NTPクライアントプログラムのように見えますので、これを動かしてみることにします。
    スケッチ例を開いて、冒頭にある

    #define STA_SSID "xxxxxxxxxxxxxxxxx"
    #define STA_PASS "xxxxxxxxx"

    の部分にSSIDとパスワードをセットして名前を付けて保存、シリアルポートを /dev/ttyUSB* に設定した後、シリアルモニタを起動して、次に基板上のタクトスイッチを押しながら、「マイコンボードに書き込む」としてやると、ビルドと書き込みが行われます。タクトスイッチは「Writing at 0x00010000… (5 %) 」という表示が出たところで離してもOK。

    書き込みが終わると、ESP-WROOM-32モジュールは勝手にリブートして起動します。

     

    シリアルモニタ側には IPv6 でのステーションとしての動作、アクセスポイントとしての動作状況の表示、IPv4のステーションとしての動作状況が表示され、IPv4のIPアドレス取得ができると、その後NTPクライアントが動作している状況が表示されました。

    また、同時にアクセスポイントとしても動作しているので、スマートフォンのWiFiアナライザなどのツールでみると「esp32-v6」というSSIDでのアクセスポイント動作が確認できました。


  • ESP32を動かしてみた

    投稿日 2017年 2月 6日 コメントはありません

    ふと秋月のWebサイトをみていたら、ESP-WROOM-32が発売になっていました。早速、秋月へ行ってゲットしてきました。

    で、とにかく動かしてみます。すでに先達もいるようなので、参考にさせてもらいながら、なるべく手抜きして動かします。開発環境はESP-WROOM-02の時と同様にArduinoで動かします。

    使用した部品

    使用した部品は以下の通りです。

    • ESP-WROOM-32
      まずこれがないと、ですね。
    • FT-232RQ USBシリアル変換キット
      最近のお気に入りのUSBシリアル変換基板です。Linuxでも安定して動作するのでGoodです。
    • NJU7223DL1
      3.3Vのレギュレータです。データシートの回路図だと入出力のコンデンサが小さくて済みそうなので、選びました。
    • 0.1uF 1608 チップコンデンサ✕3
      三端子レギュレータの入出力に各1個、USBシリアルのRTS端子とEN端子の間に1個
    • 22uF 1608 チップコンデンサ✕1
      ESP-WROOM-32の資料では電源入力に10uFが付いているので、手持ちの22uFのチップコンを使用
    • 10kΩ 1608 チップ抵抗✕2
      1個はEN端子のプルアップ、もう1個はIO0端子のプルアップ
    • 0.022uF 1608 チップコンデンサ✕1
      EN端子の入力とGND間に接続
    • 適当なタクトSW✕1
      IO0端子をGNDに落としてダウンロードモードに移行させるのに使います
    • ユニバーサルプリント基板
      これを使いました。最近は軽量化を目指して薄めの基板を使ってます。この基板は両面なのですが、内面がスルーホール処理されていないので表裏の接続ができていない箇所があってハマリました。
    • その他
      適当なピンヘッダ・ピンソケット、ポリウレタン被覆線、スズメッキ線

    ハードウェアの組み立て

    こちらの回路を参考に手抜きして作りました。

    • GND端子はUSBシリアル基板のGNDに接続
    • 3V3端子は三端子レギュレータの出力端子に接続
    • EN端子は10kΩでプルアップ、GNDとの間に0.022uF、USBシリアル基板のRTS端子との間に0.1uFを接続。この0.1uFによりPC側でRTSを制御するとESP-WROOM-32側にリセットがかかります。
    • IO0端子はプルアップ、および、タクトスイッチを接続して、ボタン押下でGNDに落ちるようにします。ボタンを押しながらArduino IDEで書き込み操作をすることで、書き込みモードへ移行できます。
      (注:IO0のプルアップは不要らしい。タクトスイッチによるIO0のコントロールがうまく行かなかった際につけたが、外してOKかは試していない。ちなみに、タクトスイッチでIO0がコントロールできなかった原因はノンスルーホール基板を使ったので基板の表裏で接続ができてなかったため。)
    • TXD0端子はUSBシリアル基板のRXDへ接続
    • RXD0端子はUSBシリアル基板のTXDへ接続

    回路図はこんな感じです。15ピンのGNDは手抜きで接続していませんが、動いています。

     

    こんな感じになりました。

    ESP-WROOM-32は裏返しに両面テープで基板に貼り付けてあります。基板を作りなおす時も多分無事に剥がせると思います。

    無計画に作ったので、裏側は汚いですw。左上のレギュレータ周りがどうしようもないですね。

    まずはハードウェアの動作確認

    Arduinoで書き込みをする前に、ハードウェアの動作確認をしておきます。
    といっても、よくよく結線を確認した後、電源を投入(USBケーブルで接続)するだけです。
    電源を投入したら、スマートフォンのWiFiアナライザなどアプリケーションで、「ESP-xxxxxx」というSSIDが見えることを確認しておきます。SSIDが見えればとりあえずESP-WROOM-32はアクセスポイントとして動作しているはずです。(注:Arduino環境の構築ができていれば、Arduinoのシリアルモニタで /dev/ttyUSB* を115200bpsでモニタすればブートローダなどの表示も確認できます)

    Arduino開発環境の構築

    PCはLinux Mint 18の64bit版です。

    まず、arduino IDE をインストールします。その前に、古いバージョンをアンインストール。

    $ cd arduino-1.6.12
    $ ./uninstall.sh 
    Removing desktop shortcut and menu item for Arduino IDE... done!

    arduino.cc から最新版の arduino-IDE をダウンロード。今回ダウンロードしたファイルは arduino-1.8.1-linux64.tar.xz です。

    $ cd ~
    $  xzcat ダウンロード/arduino-1.8.1-linux64.tar.xz | tar xvf -
    $ cd arduino-1.8.1/
    $ ./install.sh
    Adding desktop shortcut, menu item and file associations for Arduino IDE... done!

    次に、arduino-esp32 をインストール。このページのコマンドをコピペ。

    $ sudo usermod -a -G dialout $USER && \
    > sudo apt-get install git && \
    > mkdir -p ~/Arduino/hardware/espressif && \
    > cd ~/Arduino/hardware/espressif && \
    > git clone https://github.com/espressif/arduino-esp32.git esp32 && \
    > cd esp32/tools/ && \
    > python get.py
    [sudo] xxx のパスワード: 
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています 
    状態情報を読み取っています... 完了
    git はすでに最新バージョン (1:2.7.4-0ubuntu1) です。
    アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 39 個。
    Cloning into 'esp32'...
    remote: Counting objects: 2799, done.
    remote: Compressing objects: 100% (10/10), done.
    remote: Total 2799 (delta 1), reused 0 (delta 0), pack-reused 2785
    Receiving objects: 100% (2799/2799), 54.67 MiB | 3.44 MiB/s, done.
    Resolving deltas: 100% (1152/1152), done.
    Checking connectivity... done.
    Checking out files: 100% (903/903), done.
    System: Linux, Info: Linux-4.4.0-45-generic-x86_64-with-LinuxMint-18-sarah
    Platform: x86_64-pc-linux-gnu
    Downloading xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
    Done
    Extracting xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
    Downloading esptool-fe69994-linux64.tar.gz
    Done
    Extracting esptool-fe69994-linux64.tar.gz
    Done
    ~/Arduino/hardware/espressif/esp32/tools $

    いよいよ起動します。デスクトップ上のArduino IDEのアイコンをダブルクリックして、Arduino IDEを起動。
    起動したら、「ツール」→「ボード:xxx」→「ESP32 Dev Module」を選択でESP32モジュールを選択します。

    サンプルを動かしてみる

    次にサンプルを動かしてみます。シリアルに結果が表示されるものが良いと思うので、WiFiScanを動かしてみます。
    「ファイル」→「スケッチ例」→ESP32 Dev Module用のスケッチ例の下の「WiFi」→「WiFiScan」選択すると、サンプルプログラムが表示されます。「ツール」⇒「シリアルポート」⇒「/dev/ttyUSB0(環境によって変わります)」でシリアルポートを選択した後、「ツール」⇒「シリアルモニタ」でシリアルモニタを起動しておきます。

    準備ができたら「⇒」ボタンをクリックして、書き込んでみます。「⇒」をクリックする際にはIO0に接続したタクトスイッチを押しながらクリックすることでダウンローダを起動します。「Wrting … 」という表示が出たら、タクトスイッチのボタンを離します。

    書き込み完了後はこんな感じ。

    書き込みが終わると、シリアルモニタの方に表示が始まります。

     

    こんな感じでSSIDのリストが表示されれば成功です。


  • 秋月の新商品がおかしい・・・

    投稿日 2016年 7月 12日 コメントはありません

    今日発見した秋月電子の新商品・・・

    Screenshot-2

    どういう経緯で彼岸花の球根を電子パーツショップが扱うようになったのだろう・・・・?

    Screenshot-3

    「植物ですので大きさや色味はバラツキがあります」・・・・って、そりゃそうだけど、何故秋月に球根??よりによって彼岸花!?

    しかも在庫が「AAA」ってどんだけ在庫してるんだろう??


  • 秋月の新しいGPSモジュールを試してみました

    投稿日 2016年 2月 22日 1つのコメント

    秋月の新しいGPSモジュール(単品ではなくキットの方)を試してみました。

    このキットはこのUSBシリアル変換基板と接続して使うことを初めから想定しているのか端子配置が合わせられています。・・・が、Androidでも使ってみたいと思っているので、今回はあえてPL-2303を使用したUSBシリアル変換モジュールと接続するケーブルを作成しました。

    まずは、aitendoのモジュールと同じ構成で中華Androidに接続、「You Are Here GPS」を起動するとしばらくして測位ができて座標が表示されました。GPSモジュール側でもLEDが1秒周期で明るく点滅するようになりました。さらに、中華AndroidのGoogle Mapsでも現在位置としては取得できたのですが、継続的にトラッキングしてはくれません(理由不明)。

    そこで、今度はLinuxMint13環境で動かしてみました。

    まずはwineとwine-geckoをインストールして、秋月のWebサイトに上がっているMiniGPS(GPSチップの製造元、MediaTekのソフトのようです)を動かしてみました。

    $ cd ~/.wine/dosdevices
    $ ln -s /dev/ttyUSB0 com1

    としてからMiniGPSをwineで実行します。実行したらCOM1を選択して9600bpsに設定。測位が完了すると無事にGPS衛星の掴み具合を表示してくれました。(なお、後述のgpsdをインストール後はCOMポートに接続できなくなりますので要注意)

    次にgpsdをsynapticでインストールしました。・・・が、これだけでは動いているんだかよくわかりません。せっかくGPSなのですから、マップ上に自分の場所を表示させてみたいものです。ググってみると、Vikingというのが定番みたいなので、Synapticでインストールしてみました。

    使い方がちょっとわからなかったのですが、ウインドウの左側がレイヤーになっているようなので、

    1. 左側の下の方の「+」ボタンを押して、「New Map Layer」でOpenStreetMap(MapQuest)を追加します。以下のダイアログが開くので、
      Screenshot-Layer-Properties-1「Autodownload maps」にチェックを入れてOKを押します。
    2. 次に、「New GPS Layer」でGPSを追加します。ダイアログで「GPSRealtime Tracking mode」を選択して、以下のように設定します。
      Screenshot-Layer Properties

    この状態だと現在位置はニューヨークのマンハッタンになっているのですが、追加したGPSを右クリックして「Start Realtime Tracking」を選択してしばらくすると、地図上に軌跡が描かれるようになりました。

    Screenshot-Untitled-Viking-1

    キャプチャ画面でもわかる通り、道路に沿って綺麗に軌跡を描いてくれます。

    ちなみにこのVikingですが、aitendoで購入したモジュールでも同じように動作しました。
    Linuxで動かすぶんにはPL-2303系のモジュールである必要はないと思うので、FT234Xのモジュールに変更して動かしてみようかと思います。


  • 部品を買ってきました

    投稿日 2015年 10月 27日 コメントはありません

    FusionPCBからTrackingできるようになったよ、という通知がとっくに来ているのですが、なかなか荷物状況の確認ができるようにならず・・・。で、ようやくSingapore Postのトップ画面左側にある「Track Item」で「Information Received」になりました。でも、物理的な荷物の引受とは関係ないんだそうで(^^;。

    まあ、焦ってもしょうがないですので、部品を買い集めました。

    PARTS

    基本的には秋月で手に入るものばかりで基板設計したので概ね揃いました。


  • いまさらH8-300開発環境を構築してみたけど・・・

    投稿日 2015年 3月 26日 1つのコメント

    いまさらですが、余っているH8/3664ボードを何かに使おうと思って、開発環境を調査してみました。

    1.環境

    VMware上の Lubuntu14.04.2をターゲットにします。
    OSをインストールしたら、build-essentialパッケージをインストールした後、VMware-Toolsをインストールします。

    2.Cコンパイラ

    いまさらアセンブラもないので、Cコンパイラを探します。
    synapticでh8を検索すると、binutils-h8300-hmsとgcc-h8300-hmsが見つかります。これらをインストールします。これらをインストール後、バージョンを確認すると以下のようになっていました。

    ~$ h8300-hitachi-coff-gcc -v
    Reading specs from /usr/lib/gcc/h8300-hitachi-coff/3.4.6/specs
    Configured with: ../configure coff
    Thread model: single
    gcc version 3.4.6
    ~$

    3.書き込みツール

    昔、三岩さんが作られたものと思われるツールが sourceforge にあがっていましたのでコンパイルしてみます。説明では先頭の4行を環境に合わせて修正してからコンパイル、と書いてありましたが、はじめからLinuxのみが#defineされていました。

    ~$ mkdir H8tools
    ~$ cd H8tools/
    ~/H8tools$ wget mes.sourceforge.jp/h8/h8write.c
    --2015-xx-xx xx:xx:xx--  http://mes.sourceforge.jp/h8/h8write.c
    mes.sourceforge.jp (mes.sourceforge.jp) をDNSに問いあわせています... 202.221.179.22
    mes.sourceforge.jp (mes.sourceforge.jp)|202.221.179.22|:80 に接続しています... 接続しました。
    HTTP による接続要求を送信しました、応答を待っています... 200 OK
    長さ: 70666 (69K) [text/x-csrc]
    `h8write.c' に保存中
    
    100%[======================================>] 70,666       128KB/s   時間 0.5s 
    
    2015-xx-xx xx:xx:xx (128 KB/s) - `h8write.c' へ保存完了 [70666/70666]
    
    ~/H8tools$ gcc h8write.c -o h8write
    h8write.c: In function ‘error_print’:
    h8write.c:732:4: warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stderr,message[error_code]);
        ^
    h8write.c:733:4: warning: format not a string literal and no format arguments [-Wformat-security]
        if ( s_message != NULL ) fprintf(stderr,s_message);
        ^
    h8write.c:737:4: warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stderr,message[error_code]);
        ^
    h8write.c:738:4: warning: format not a string literal and no format arguments [-Wformat-security]
        if ( s_message != NULL ) fprintf(stderr,s_message);
        ^
    h8write.c:742:4: warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stderr,message[error_code]);
        ^
    h8write.c:743:4: warning: format not a string literal and no format arguments [-Wformat-security]
        if ( s_message != NULL ) fprintf(stderr,s_message);
        ^
    ~/H8tools$

    Warningがたくさん出ましたが、実行ファイルは生成されました。

    4.コンパイルテスト

    Strawberry LinuxのWebサイトからLED点滅サンプルを持ってきてコンパイルしてみました。

    $ wget strawberry-linux.com/h8/h8led-0.1-20020706.tar.gz
    $ tar xvfz h8led-0.1-20020706.tar.gz
    $ cd h8led
    $ make clean
    $ make

    ・・・が、-lc がないと言って怒られます。探してみると、どこにもH8用のlibc.aがありません。これは libc.a がないことを意味していますので、newlibをインストールすることにしました。

    5.newlibのインストール

    組み込み用のlibcであるnewlibをコンパイルします。
    その前に、まずgitからインストールです。

    ~$ mkdir newlib
    ~$ cd newlib/
    ~/newlib$ sudo apt-get install git
    ~/newlib$

    さらに、newlibのソースを取ってきます。

    ~/newlib$ git clone git://sourceware.org/git/newlib-cygwin.git

    このままコンパイルすると、「makeinfoがない」といって怒られますので、synapticでtexinfoパッケージをインストールして、別のターミナルを新規に開いてから configureスクリプトを走らせて、make、make install します。

    ~/newlib/newlib-cygwin$ ./configure --target h8300-hitachi-coff
    ~/newlib/newlib-cygwin$ make
    ~/newlib/newlib-cygwin$ sudo make install

    libc.a、libg.a、libm.a が /usr/local/h8300-hitachi-coff/lib の下にインストールされました。

    6.改めてコンパイルテスト

    よくみると、さらにはMakefileでライブラリパスが設定されていなかったので、これを修正してみたのですが、今度は互換性のないlibc.aをスキップしました、となってしまいました。

    ~/H8sample/h8led$ make
    h8300-hms-gcc -O -mh -g -mrelax -mint32 -DH8_3664 -T h8-3664.x -L /usr/local/h8300-hitachi-coff/lib -nostdlib 3664crt0.S  led.o -o h8led.exe  -lc -lgcc
    /usr/lib/gcc/h8300-hitachi-coff/3.4.6/../../../../h8300-hitachi-coff/bin/ld: 互換性のないを /usr/local/h8300-hitachi-coff/lib/libc.a スキップしました (-lc を探索している時)
    /usr/lib/gcc/h8300-hitachi-coff/3.4.6/../../../../h8300-hitachi-coff/bin/ld: cannot find -lc
    collect2: ld returned 1 exit status
    make: *** [h8led.exe] エラー 1

    確か、gccのクロスコンパイラをビルドするときにはライブラリ(libcなど)なしで一度コンパイラをビルドしてライブラリをビルド、その後再度コンパイラをビルドし直す手順になっていたかと思うのですが、そのへんがちゃんと行われていないのかもしれません。(ググってもnewlibのバイナリがなく、ソースからビルドするしかなさそうだ、という時点で嫌な予感はしたんですけどね)

    7.まとめ

    ・・・うーむ。ぐぐってみると、同じ問題がはるか昔に出ていたようです。
    https://bugs.launchpad.net/ubuntu/+source/gcc-h8300-hms/+bug/342667
    ここを見る限り、リポジトリにあってSynapticでインストールできても結局メンテナンスされてなくて使い物にならないようで、そのままずーっと放置されているようですね。

    コンパイラごとソースからビルドすれば動く組み合わせもあるかもしれませんが、そこまでして動かす元気はありません。今でも秋月ではH8/300のボードを売ってますが、みなさんどうやって使ってるのでしょう?(メンテナンス目的?教材用?)
    いまでもcygwin + gcc2.95.3ベースの環境をCD-Rで売ってるようですが、いまさらのような気がします。

    H8は比較的電子工作用途に受け入れられた数少ない日本製マイコンですが、この状況ではとても使う気にはなれません。かといって、いまさらR8Cとか78Kとかってのもないでしょうから、素直に諦めるほうが良さそうです。

    さて、余ってしまったボード、どうしよう・・・。


  • Raspberry Pi 2がやってきた

    投稿日 2015年 2月 10日 コメントはありません

    先週の月曜日(2月2日)深夜に速攻で「ぽちっ」としてしまったRaspberry Pi 2が届きました。

    上の2つが今回届いたRaspberry Pi 2、中段左が秋月で買ったRaspberry Pi model B+、中段右がRaspberry Pi Camera、左下かつて数ヶ月待ちで届いたRaspberry Pi Model B 512MBの残り1つです。

    IMG_0354s

    しかし、秋月価格のRaspberry Pi Model B+よりもRS価格のRaspberry Pi 2 Model Bの方が安い(ただし2個購入時)ってのがなんとも。

    IMG_0355s

    IMG_0359s


  • 大量のファイル名操作

    投稿日 2014年 5月 6日 コメントはありません

    Androidの本体側も不安でしたので、USBマスストレージとして認識する状態でディスクイメージを吸い上げ、ファイル抽出したところ、JPEGだけで1万個近いファイルがでてきました。(細々としたファイルも含めると10万個くらい?)

    PhotoRecが80近いディレクトリを作ってしまったので、一括して処理しないと面倒です。なので、JPEGのみを集めてくることにしました。

    #どうでもいいけど、本体もFATで処理できてしまった・・・。FATフォーマットなの?

    $ ./testdisk-7.0-WIP/photorec_static Copy-Of-HONTAI.IMG 
    $ cd OUTPUT-HONTAI/
    $ ls
    recup_dir.1 recup_dir.24 recup_dir.39 recup_dir.53 recup_dir.68
    recup_dir.10 recup_dir.25 recup_dir.4 recup_dir.54 recup_dir.69
    recup_dir.11 recup_dir.26 recup_dir.40 recup_dir.55 recup_dir.7
    recup_dir.12 recup_dir.27 recup_dir.41 recup_dir.56 recup_dir.70
    recup_dir.13 recup_dir.28 recup_dir.42 recup_dir.57 recup_dir.71
    recup_dir.14 recup_dir.29 recup_dir.43 recup_dir.58 recup_dir.72
    recup_dir.15 recup_dir.3 recup_dir.44 recup_dir.59 recup_dir.73
    recup_dir.16 recup_dir.30 recup_dir.45 recup_dir.6 recup_dir.74
    recup_dir.17 recup_dir.31 recup_dir.46 recup_dir.60 recup_dir.75
    recup_dir.18 recup_dir.32 recup_dir.47 recup_dir.61 recup_dir.76
    recup_dir.19 recup_dir.33 recup_dir.48 recup_dir.62 recup_dir.77
    recup_dir.2 recup_dir.34 recup_dir.49 recup_dir.63 recup_dir.8
    recup_dir.20 recup_dir.35 recup_dir.5 recup_dir.64 recup_dir.9
    recup_dir.21 recup_dir.36 recup_dir.50 recup_dir.65
    recup_dir.22 recup_dir.37 recup_dir.51 recup_dir.66
    recup_dir.23 recup_dir.38 recup_dir.52 recup_dir.67
    $ mkdir ALLJPG_F
    $ i=1; for f in recup_*/f*.jpg ; do g=00000$i.jpg; mv $f ALLJPG_F/JPGF_${g:(-10)}; i=$((i+1)); done
    $ mkdir ALLJPG_T
    $ i=1; for f in recup_*/t*.jpg ; do g=00000$i.jpg; mv $f ALLJPG_T/JPGT_${g:(-10)}; i=$((i+1)); done
    $ mkdir ALLJPG_E
    $ i=1; for f in recup_*/*.jpg ; do g=00000$i.jpg; mv $f ALLJPG_E/JPGE_${g:(-10)}; i=$((i+1)); done
     (この行はファイルがないのでエラーになるはず。もしファイルがある場合に回収するためのもの。)
    $ mkdir ALLPNG
    $ i=1; for f in recup_*/*.png ; do g=00000$i.png; mv $f ALLPNG/PNG_${g:(-10)}; i=$((i+1)); done

    冒頭のファイル抽出はSDカードの場合と何も変わらないので説明は省略します。
    最後の8行でファイルを6桁の連番を付けながら、各ディレクトリに集めてきます。この部分はこちらのサイトを参考にさせていただきました。


  • 全ファイルスキャンしてみた

    投稿日 2013年 12月 22日 コメントはありません

    年の瀬ということもあり、所有する全ファイル(すべてのファイルがFreeNASに入っている)をKasperskyでウイルススキャンをかけてみたところ、秋月で買ったGPSデータロガー GT-730FL-S に添付のCDROMのアプリケーションにトロイの木馬があるという警告が出た。とりあえず、このファイル(ImageSetup_Canmore.msi)を削除して再スキャン。

    ・・・その後、問題のあるファイルはこれだけだった。
    でも、このGPSロガー、結構あっちこっち出回ってたと思うんだけど、大丈夫なんだろうか?


  • TOCOS Wireless Engineを試してみた

    投稿日 2013年 12月 21日 コメントはありません

    秋月でTOCOS Wireless Engineを入手してみたので動かしてみました。

    入手したのはUSBドングルタイプのToCoStickを1つと、モジュールのTWE-Lite DIPの半完成品タイプ2つです。半完成品なので、マッチ棒アンテナとピンヘッダを半田付けしないといけないです。モジュールの端子とピンヘッダの端子がかなり近いので、ショートさせないように気をつける必要があります。

    アンテナとピンヘッダを取り付けたら、初めからモジュール内にはアプリケーションが書き込まれているということで、まずはTWE-Lite DIP使用方法(初級編)に沿って動かしてみました。当然かもしれませんが、無事に動きました。本当に「あっ」という間に動くようになります。これだけで簡単なリモコンが実現できそうな感じです。(実際にはIDがぶつからないように設定変更するべきですが)

    次に、TWE-Lite DIPを子機だけ1台に設定し、ToCoStickを親機にして制御してみることにしました。
    ・・・が、ToCoStick用のアプリケーションはLinux版は存在しません。ですので、Android版を試してみました。手持ちの中華Android4.0パッドでは動きませんでしたが、Xperia Aでは問題なく動作しました。こちらの画面では電波の強度も表示できるので、自室(鉄筋コンクリートのマンションで共用通路側です)に子機を置いて、Xperia + ToCoStickの組み合わせで歩き回って見たところ、奥のベランダ側の窓際で電波強度はギリギリ、共用通路側は自室前は問題ありませんが、隣家の前まで行ってしまうと電波強度はギリギリでした。まあ、WiFiの電波も飛び交っている所ですし、窓は防犯用の網入り窓ガラス + アルミ合金製ブラインドがついている(しかも閉めっぱなし)なのでしかたがないところだと思います。

    次にToCoStickをLinuxマシンにさしてターミナルプログラムで115.2kbpsにて /dev/ttyUSB0 をみてみると、子機から飛んでくるデータがすでに見えています。TWE-Lite DIP使用方法(上級編)をみると、UARTでの制御は簡単そうです。

    また、Raspberry Piに挿して、sshでRaspberryPiにログインした後、

    $ screen /dev/ttyUSB0 115200

    とすると子機からのデータが流れてくる様子をみることができます。(終了は CTRL-A + 大文字K)

    ちょっと動かしてみただけですが、TWE-Liteは非常に扱いやすくまとめられていて、いろいろ工作のネタがありそうです。特に初めから収められているアプリケーションはIDさえ変えて混信回避の策をとれば十分にいろんなことに使えそうです。それに何といっても『認証済みの無線モジュールが秋葉原で安価に手に入る』というのは夢のようです。
    欲を言えば、縦方向に場所を取るマッチ棒アンテナではなく、チップアンテナやパターンアンテナタイプがあればいろんなものに押し込むのに便利な所ですが・・・。