LoginSignup
5
5

More than 3 years have passed since last update.

EV3シリアルコンソールを起動してみた

Posted at

きっかけ

ロボカップジュニア2019を観戦しに行ったのを機に、EV3とPCあるいはEV3同士複数台での接続方法を研究したいと思ったため。

環境

  • EV3 インテリジェントブロック
  • シリアル-USB変換モジュール(今回はサンハヤト製MM-FT232)
  • パソコン(WindowsでもMacでも可)

↓これがMM-FT232というモジュール
FTDI社製のICであるFT232RQを搭載しています。
shopping.png
同じような変換治具があるならば、これでなくても構いません。

サンハヤト社によるMM-FT232の取扱説明書

接続の準備

EV3のシリアルコンソールに入るには、本体のUSB-Aやmini-Bなどではなく、センサーポート1から仮想シリアルポートとしてPCに接続しなければなりません。
まずはポート1にセンサーケーブルを挿し、もう片側をなんらかの方法で電子回路に組み込めるようにします。

一番ラクなのは、mindsensors.comで売っているBreadboard Connector Kit for NXT or EV3という変換ボードを使う方法だと思います。
しかしながら、海外のサイトということで購入するのは少し難易度が高かったため別の方法を考えました。

EV3(NXT)のセンサーケーブルはモジュラージャックの規格であるRJ11/RJ12とほぼ同じ形状です。
すなわち、同じような形状で6極6芯のソケットを用意すれば良いと考え、以下のようなパーツを購入しました。
IMG_1589.JPG
これなら電子部品屋に売ってました。
このパーツの右上を削ることでケーブルを挿せるようにしました。
IMG_1665.JPG

つづいて、配線について。
IMG_1676.jpg
スクリーンショット 2019-05-16 12.23.05.png
上の画像のようになっており、以下のように配線します。
6a0120a6ffc261970b01b7c91a2fb8970b.gif
(画像は「ロボジョイくらぶ・マイスターブログ/EV3のUSBシリアル変換治具について」のページより)

ざっくりいうと、UARTの通信方式に従い、片方のTXDをもう片方のRXDに接続する感じ。

ということで完成したのが↓の画像のようなもの
IMG_1663.JPG

FTDI社のドライバをインストール

ICを動作させるためにFTDI社のホームページからドライバをダウンロード・インストールする必要があります。
https://www.ftdichip.com/Drivers/VCP.htm
スクリーンショット 2019-05-16 13.00.38.png
ダウンロード・インストールは手順に従って行えばいけるはずです。

u-bootの起動

前提として、EV3のボーレートは115200です。

windowsの場合

毎度おなじみ、TeraTermを使います。
インストールしていない人は先にやっておいてください。
TeraTermのインストール方法

ではまず、Tera Termを開きます。
開くとどのポートに接続するか選択する画面が出てくるので、以下を参考に適切なものを選んでください。
スクリーンショット (94).png

恐らくUSB Serial Portと出ていると思います。

次に、ボーレートの設定を行います。
[設定]->[シリアルポート]と進んでください。
スクリーンショット (92).png
ここでスピードを115200に変更します。
これを怠ると文字化けします。
スクリーンショット (93).png
これで準備完了です。

macの場合

ターミナルでscreenコマンドを使うのが無難でしょう。
まずはポートを調べる必要があるので以下のようにします。

$ ls -la /dev/tty.*
crw-rw-rw-  1 root  wheel   21,   4  5 26 20:03 /dev/tty.MindstormsEV3-SerialPor
crw-rw-rw-  1 root  wheel   21,   6  6  2 10:47 /dev/tty.usbserial-AK05LF65

この場合、下の/dev/tty.usbserial-AK05LF65がMM-FT232のポートになります。
(上はEV3rtを使用してBluetooth接続したときの仮想ポートです。)

つぎに実際に接続を試みます。

$ screen /dev/tty.usbserial-AK05LF65 115200

これで真っ白な画面になればおそらく繋がっています。

EV3を起動

では起動ボタンを押してみましょう。
以下のように文字列がダダぁーーーと流れるはずです。
(今回はEV3rtでやっています。)
EV3console.gif

流れてくる文字列は以下に記します。

Mindstorms EV3 標準OS

EV3 initialization passed!
Booting EV3 EEprom Boot Loader

        EEprom Version:   0.60
        EV3 Flashtype:    N25Q128A13B

EV3 Booting system

Jumping to entry point at: 0xC1080000


U-Boot 2009.11 (Oct 26 2012 - 10:30:38)

I2C:   ready
DRAM:  64 MB
MMC:   davinci: 0
In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
DDR Clock : 132000000 Hz
Invalid MAC address read.
Hit 'l' to stop autoboot:  0
Card did not respond to voltage select!
16384 KiB M25P128 at 0:0 is now current device
## Booting kernel from Legacy Image at c0007fc0 ...
   Image Name:   Linux-2.6.33-rc4
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1965008 Bytes =  1.9 MB
   Load Address: c0008000
   Entry Point:  c0008000
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
IP-Config: No network devices available.
INIT: version 2.86 booting
Please wait: booting...
Starting udev
Remounting root file system...
Caching udev devnodes
Configuring network interfaces... ifconfig: SIOCGIFFLAGS: No such device
done.
Setting up IP spoofing protection: rp_filter.
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Setting up VirtualDrive...
Initialize Bluetooth...
Found a Texas Instruments' chip!
Firmware file : /lib/firmware/TIInit_6.2.31.bts
Loaded BTS script version 1
texas: changing baud rate to 2000000, flow control to 1
Device setup complete
Serial Port service registered
Starting lms2012
玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻玻
TOPPERS/EV3rt

EV3 initialization passed!
Booting EV3 EEprom Boot Loader

        EEprom Version:   0.60
        EV3 Flashtype:    N25Q128A13B

EV3 Booting system

Jumping to entry point at: 0xC1080000


U-Boot 2009.11 (Oct 26 2012 - 10:30:38)

I2C:   ready
DRAM:  64 MB
MMC:   davinci: 0
In:    serial
Out:   serial
Err:   serial
ARM Clock : 300000000 Hz
DDR Clock : 132000000 Hz
Invalid MAC address read.
Hit 'l' to stop autoboot:  0
reading boot.scr

** Unable to read "boot.scr" from mmc 0:1 **
reading uImage

871472 bytes read
## Booting kernel from Legacy Image at c0007fc0 ...
   Image Name:   TOPPERS/hrp2 Kernel (EV3)
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    871408 Bytes = 851 kB
   Load Address: c0008000
   Entry Point:  c0008000
   Loading Kernel Image ... OK
OK

Starting kernel ...


TOPPERS/HRP Kernel Release 2.2.1 for EV3(AM1808(ARM926ES-J)) (Aug  1 2018, 09:58:58)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
                            Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2014 by Embedded and Real-Time Systems Laboratory
            Graduate School of Information Science, Nagoya Univ., JAPAN

EDMA3_CC0.ER: 0x00010c00
EDMA3_CC0.EMR: 0x00000000
Card is present
<6>fb0: ST7586 frame buffer device, using 7 KiB of video memory

<3>fb0: Initing display

System logging task is started on port 1.
<3>fb0: Initing display

brick_dri initialized.
analog_dri initialized.
motor_dri initialized.
i2c_dri initialized.
uart_dri initialized.
sound_dri initialized.
bluetooth_dri initialized.
BT Chip: CC2560

   _____   ______ ___  ______
  / __/ | / /_  // _ \/_  __/
 / _/ | |/ //_ </ , _/ / /
/___/ |___/____/_/|_| /_/

==================>Beta 7-2<=

Powered by TOPPERS/HRP2 RTOS
Initialization is completed..
BT Addr: 00:17:EC:F5:93:35

u-bootを操作する。

起動時にパソコン側から"l"キーを送り続けると自動起動がキャンセルされ、任意のコマンドが打てるモードに入ります。
スクリーンショット (95).png

考察

今回の経験から、EV3のかなり核心まで迫ることができ、まだまだ未探索部分があることが分かった。
そして、EV3rtにはUARTで情報を吐き出すことが出来るので、それを例のセンサー値監視アプリに応用することもできた。
従って、Connect to EV3は有線でも無線でも使用可能となった。

次回、その件について詳しく書きます。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5