myCobotをUbuntuから動かす
myCobot
ここのメモ内容をまとめたリポジトリ
PC環境
- Ubuntu 18.04.5 LTS
- Docker 20.10.1
参考ページリスト
ファームウェアをシリアル通信用のものに更新
本家のリポジトリからソースを持ってくる
git clone https://github.com/elephantrobotics/myCobot.git elephantrobotics-mycobot
2021年1月9日時点で最新のファームウェアのディレクトリにcd
する
cd elephantrobotics-mycobot/Software/myCobot固件烧录器V1.3/ino
M5Stackのファームウェアを書き込む
docker run --rm -it -v $(pwd):/work --device /dev/ttyUSB0:/dev/ttyUSB0 tiryoh/esptool:3.0 --chip esp32 --port /dev/ttyUSB0 write_flash --flash_mode dio -z 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 Transponder.ino.bin 0x8000 Transponder.ino.partitions.bin
ATOM Matrix(アーム先端のもの)のファームウェアを書き込む
docker run --rm -it -v $(pwd):/work --device /dev/ttyUSB0:/dev/ttyUSB0 tiryoh/esptool:3.0 --chip esp32 --port /dev/ttyUSB0 write_flash --flash_mode dio -z 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 AtomMain2.3.ino.bin 0x8000 AtomMain2.3.ino.partitions.bin
2021年1月13日以降のファームウェア更新方法
GitHubのリポジトリ内での管理ではなくなった(該当コミット)。
elephantrobotics/myStudioを使うか、以下にファームウェアが公開されているのでダウンロードして使用する。
wget https://github.com/elephantrobotics/myCobot/releases/download/0/myCobot.V1.3.zip
unzip myCobot.V1.3.zip
cd myCobot固件烧录器V1.3/ino
以後の書き込みは今までと同じ。
2021年1月25日以降のファームウェア更新方法
さらに変更があり、elephantrobotics/myStudioのみでの公開となった。しかもWindows版以外は遅れて公開される。
Ubuntuから書き込む方法は以下にメモした。
PythonスクリプトからmyCobotを動かす
以下のDockerfileをビルドする。
# (C) 2021 Daisuke Sato
# SPDX-License-Identifier: MIT
FROM python:3.6.12-slim-buster
LABEL maintainer="tiryoh@gmail.com"
RUN pip3 install pyserial ipython
COPY elephantrobotics-mycobot/API/Python /work/python-mycobot
RUN cd /work/python-mycobot && python3 setup.py install
ENTRYPOINT ["ipython"]
docker build -t tiryoh/python-mycobot .
※このときのelephantrobotics-mycobot
はc2d4acd
のものに以下のパッチをあてたもの。そのままだとsetup.py
でエラーが出る。
ビルドできたら実行する。
docker run --rm -it --device /dev/ttyUSB0:/dev/ttyUSB0 tiryoh/python-mycobot
ATOM Matrixを赤く光らせる。
from pymycobot.mycobot3 import MyCobot
mycobot = MyCobot('/dev/ttyUSB0')
mycobot.set_color('ff0000')
Python2の場合はfrom pymycobot.mycobot import MyCobot
とするもよう。
3110/mycobot-transponder を試す
TransponderのM5Stackにデータ通信内容を表示する。
以下を見ながらPlattformIOをセットアップして、3110/mycobot-transponderをインポートする。少し手順は違うが、ATOMをM5Stackに置き換えつつ読んでセットアップする。
2021年1月10日現在、以下のビルドエラーが出ていた。
M5Stack/src/utility/In_eSPI.h:494:18: error: expected initializer before numeric constant
#define TL_DATUM 0 // Top left (default)
^
直すためのPRを出している。もし、ビルドエラーが出た場合は以下のPRを参照しながら直す。
PlatformIOに対応したらしい
git clone
したディレクトリ内で以下のコマンドを実行すれば書き込みができた。
docker run --rm --mount type=bind,source="$(pwd)",target=/workspace -u `id -u $USER`:`id -g $USER` --device=/dev/ttyUSB0 sglahn/platformio-core:latest run -t upload
実際に使ったのはsglahn/platformio-core:5.0.1
Windows版しか公開されていないバージョンのmyStudioに同梱されているmyCobotのファームウェア(AtomMain)をUbuntuから書き込む
myCobotのATOMに書き込むファームウェアはAtomMain2.4以降はmyStudioに同梱されている。
2.5ではグリッパの関数が追加されたらしい。
今日現在Windows版しか公開されていないが、Ubuntuでもファームウェア取り出し&書き込みができたのでその方法をメモ。
簡単にまとめると、innoextractでWindows版のインストーラを展開して必要なバイナリだけ取り出し、esptoolで書き込む。
この手順をメモ。
まずはWindows版のzipファイルをダウンロード
wget https://github.com/elephantrobotics/myStudio/releases/download/v0.0.5/mystudio-windows.zip -O mystudio-windows-v005.zip
zipを展開するとmystudio.exe
というインストーラが出てくるのでこれをinnoextractで展開する
unzip mystudio-windows-v005.zip -d mystudio-windows-v005
cd mystudio-windows-v005
innoextract mystudio.exe
以前の方法と同様にesptoolで書き込む。
cd app/ino
docker run --rm -it -v $(pwd):/work --device /dev/ttyUSB0:/dev/ttyUSB0 tiryoh/esptool:3.0 --chip esp32 --port /dev/ttyUSB0 write_flash --flash_mode dio -z 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 atom/AtomMain2.5.ino.bin 0x8000 atom/AtomMain2.5.ino.partitions.bin
上記にてこの手順を追加。
mycobot-setup-toolsの使い方
ツールのダウンロード
git clone https://github.com/Tiryoh/mycobot-setup-tools.git
cd mycobot-setup-tools
myCobotのファームウェアのダウンロード、展開
./scripts/00-clone-source.sh
書き込み用ツールの用意と書き込み
./scripts/01-prepare-flash-tool.sh
./scripts/03-flash-atom-matrix-firmware.sh