Open12

myCobotをUbuntuから動かす

tiryohtiryoh

ファームウェアをシリアル通信用のものに更新

本家のリポジトリからソースを持ってくる

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
tiryohtiryoh

2021年1月13日以降のファームウェア更新方法

GitHubのリポジトリ内での管理ではなくなった(該当コミット)。
elephantrobotics/myStudioを使うか、以下にファームウェアが公開されているのでダウンロードして使用する。

https://github.com/elephantrobotics/myCobot/releases/tag/0

wget https://github.com/elephantrobotics/myCobot/releases/download/0/myCobot.V1.3.zip
unzip myCobot.V1.3.zip
cd myCobot固件烧录器V1.3/ino

以後の書き込みは今までと同じ。

tiryohtiryoh

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-mycobotc2d4acdのものに以下のパッチをあてたもの。そのままだとsetup.pyでエラーが出る。

https://github.com/elephantrobotics/myCobot/pull/4/files

ビルドできたら実行する。

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とするもよう。

tiryohtiryoh

3110/mycobot-transponder を試す

TransponderのM5Stackにデータ通信内容を表示する。

https://twitter.com/Tiryoh/status/1348530576899276803

https://github.com/3110/mycobot-transponder

以下を見ながらPlattformIOをセットアップして、3110/mycobot-transponderをインポートする。少し手順は違うが、ATOMをM5Stackに置き換えつつ読んでセットアップする。

https://memoteki.net/archives/3108

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を参照しながら直す。

https://github.com/3110/mycobot-transponder/pull/1

tiryohtiryoh

https://twitter.com/saitotetsuya/status/1350336553696989188

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

https://hub.docker.com/layers/sglahn/platformio-core/5.0.1/images/sha256-ffd4b63129f7fccf2269ac4418453fbeaeea524f366b8fdaba2ba589ba0316cb?context=explore

tiryohtiryoh

Windows版しか公開されていないバージョンのmyStudioに同梱されているmyCobotのファームウェア(AtomMain)をUbuntuから書き込む

myCobotのATOMに書き込むファームウェアはAtomMain2.4以降はmyStudioに同梱されている。

2.5ではグリッパの関数が追加されたらしい。

https://twitter.com/CobotMy/status/1357502567547236352?s=20

今日現在Windows版しか公開されていないが、Ubuntuでもファームウェア取り出し&書き込みができたのでその方法をメモ。

簡単にまとめると、innoextractでWindows版のインストーラを展開して必要なバイナリだけ取り出し、esptoolで書き込む。
この手順をメモ。

tiryohtiryoh

まずは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
tiryohtiryoh

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