Maker Faire Tokyo 2022の申し込みをしましたが、残念ながら落選となりました。

これで出展費用が浮きましたので toio を買ってみました。

最近発売された書籍にUnityをつかってROSでtoioが動かせるという記事があり、これを使えば手軽にROSの実験ができるかなと考えたのです。

まずは試してみたいので、最低限のセットtoio本体1個と充電器を購入しました。

パッケージはSonyらしくシンプルでかっこよいです。

toio_package1.jpg

EMU1802でIDIOTモニタまで動作するようになりましたので、ハードウェアはこれでFIXとし、ジャンパー線をはずして基板上で配線することにします。今日はおおたfabさんで作業しました。

emu1802-fixed1.jpg

前回までの実験でHIGHアドレスも使えるようになったので、EMUZ80のCOSMAC環境でモニタプログラムを動かしてみます。以降は紛らわしくならないようにEMU1802と呼ぶことにします。

IDIOTモニタをファームウェアに組み込む

COSMACコミュニティでは超有名なIDIOTモニタプログラムをEMU1802で動かしてみます。このモニタプログラムの大きさは1Kバイトです。ソフトウェアでシリアル通信を実装しており、COSMAC CPUのQ出力とEF3入力がシリアルポートになります。

オリジナル版は$8000からのアドレスに配置されていますので、これを$0000に配置しなおします。まずはIDIOTのアセンブラソースをいつも使っているSB-Assemblerでアセンブルできるように修正しました。

emuz80_cosmac_idiot_sbasm_src1.png

COSMAC CPUのクロックは2MHzぐらいにしたいのですが、現状のファームウェアだと2MHzにするとタイミングの関係かうまく動きません。そのため10分の1のクロック0.2MHzとしています。これでも300bps程度の通信速度は出せるはずです。

これまでの実験ではTPB信号だけを使い、HIGHアドレスのラッチタイミングを示すTPA信号は使っていません。このためLOWアドレスしか使えずアドレス空間は$00-$FFの256byteだけでした。今回はTPA信号も使いアドレス空間を$0000-$FFFFに拡張します。

EMUZ80のソースを確認

EMUZ80ではPICのCLC(Configurable Logic Cell)機能を使うことで、Z80のMREQ, RFSHを組み合わせたタイミングで割り込みを発生させているようです。その後にRD/WR信号をみてメモリの読み書きを制御しています。CLCの設定まわりはPICの開発環境であるMPLAB X IDEのプラグイン MPLAB Code Configurator(MCC)でレジスタの値をみながら確認しました。

emz80_mcc_clc1.png

このCLCをうまく使えばTPA信号も拾えるかなとも思ったのですが、COSMACはタイミング信号がシンプルすぎるので、このCLC機能は使わずにTPA信号、TPB信号から直接割り込みを発生させるようにしてみました。

前回の実験でLチカまで動かすことができたので、今後の実験を行いやすくするためにEMUZ80の基板をCOSMAC CDP1802 CPUを実装できるように改造してみます。もちろんZ80もEMUZ80で動かしたいので、COSMAC専用に追加で基板を注文しました。

emuz80_cosmac_modpcb1.jpg

どちらの色を使おうかなと思ったのですが、今回はスタンダードな緑色の基板を使うことにしました。

最近話題のマイコンボードとして電脳伝説さんのEMUZ80が人気です。Z80CPUとPIC18F47Q43を組み合わせ最小限のパーツでZ80マイコンボードを作ろうという試みです。

私も早速組み立てました。部品の少なさに圧倒されます。

emuz80_board1.jpg

おおたfabさんでは、「素人でもロボットをつくりたい」という勉強会を定期的に行っています。前回はルンバロボットのすべての機能を結合し試運転を行いました。今回はいよいよMaker Faire Tokyo 2022の出展申し込みです。

Maker Faireとは

Maker Faire(メイカーフェア)は、ものづくりを行っている個人、団体、学校、企業が一堂に集まって作った作品を展示しあうお祭りです。始まった当初はMake Tokyo Meetingといわれていましたが、2012年から現在のMaker Faireという名前に変わっています。私自身はMake Tokyo Meetingで1回、Maker Faire Tokyoで2回の出展経験があります。いずれも電子工作というカテゴリでしたが、今回はおおたfabのみなさんとロボティクスというカテゴリで出展にチャレンジします。

ROS MelodicをインストールしたRaspberry PiのGPIOを使ってLチカをやってみました。

ros_blink_led.jpg

pigpioのインストール

GPIOを制御するライブラリとしてpigpioを使用します。このRaspberry Piはubuntu 18.04 LTSで動いているので、ソースからbuildを行います。

公式サイトの情報に従ってダウンロードとインストールを行います。

wget https://github.com/joan2937/pigpio/archive/master.zip
unzip master.zip
cd pigpio-master
make
sudo make install

インストールが終わったら、公式サイトの手順にあるようにテストプログラムを実行して正常にインストールされたかを確認します。

おおたfabさんでは、「素人でもロボットをつくりたい」という勉強会を定期的に行っています。前回はルンバにフレームを取り付けて自律走行のテストを行いましたが、今回はすべての機能を結合し試運転を行いました。

製作中のロボットの概要

目標としているロボットの概要ですが、あらかじめ定められた場所を順番にまわってモノを届けたり、たまに光ったり音を出したりして、その場にいる人を和ませてくれます。また受付の呼び出しボタンを押すと、お客様のお出迎えもできるような、その場にいる人のお助けができるロボットを目指しています。

ルンバ本体

各フレームのねじ止めを行い、ルンバにも固定して取り付けました。おおたfabさんのレーザーカッターで切り出した板や3Dプリンタで出力した固定器具や100円ショップで購入した材料などを使っています。

roomba_otafab61_roomba_frame1.jpg

この状態での自律走行の様子です。きちんと目的の場所まで動いてくれます。

おおたfabさんでは、「素人でもロボットをつくりたい」という勉強会を定期的に行っています。前回はNavigation(自律走行)が行えるようになったルンバをどう活用するかを考えましたが、今回はアイデアに基づいてフレームを実装してみます。

roomba_otafab60_roomba_frame1.jpg

今回は2通りの実装方法を試してみることにしました。いずれも自律走行に必要なLiDARのレーザーを遮らないように実装することを考えました。

最近のコメント

アセット

  • toio_remote_control_app2.png
  • toio_remote_control_app1.png
  • toio_front.jpg
  • toio_back.jpg
  • toio_charge.jpg
  • toio_set.jpg
  • toio_package2.jpg
  • toio_package1.jpg
  • emu1802-fixed5.jpg
  • emu1802-fixed4.jpg

カテゴリ

ウェブページ

  • about
  • blogs
  • today
Powered by Movable Type 7.9.4