忍者ブログ

yoshikiyo Lab

自称makerのブログ。電子工作とかテスラコイルとか 「とりあえず動けばいい」そんな適当すぎるものづくりをしています。

   

ロボトレーサのサーボモータ変更とちょっとした改良

このロボトレマシンには2つのサーボ機構が搭載されています。
ステアリング駆動サーボ、カメラ駆動サーボはそれぞれ
確度センサとコアレスモータによって構成されています。


駆動用のモーターのスピードが上がるとステアリングサーボモータのトルクが不足して
ステアリング動作に問題が発生することが分かりました。

まあ、初めから「ギア比も不足しているしトルクが不足するだろうなぁ」とは思っていましたが
やっぱりだめでした.....

サーボモータのトルク不足を改善するために
ステアリング駆動サーボモータとカメラ駆動サーボモータを変更しました。
このコアレスモータと同サイズでより駆動トルクの大きなものを選定しました。

マクソンモータ製の「DCX08M EB SL 4.2V」を採用しました。


「DCX08M EB SL 4.2V」


ステアリングサーボ用のモータはさらに高トルクとなるように
ギアヘッドを合わせて注文しました。
「GXP 8 1段」


今は簡単なテストコースしか用意していないので
ベンチーマークコースを作成して調整に入りたいと思います。




あと、マシンにフルカラーLEDモニタを追加した。
マシン状態を表すインターフェースとしてブザーしかないのは不便でした。

いつものように基板加工機で基板を削りだして適当に作りました。
回路はフルカラーLED「OSTA5131A」とドライブ用のトランジスタ「2SA1586」の構成です。


直接コネクタで実装します。

拍手[0回]

PR

ROMライター

Z80ワンボードマイコンを作ってみました。
このワンボードマイコンはROMからプログラムをロードして動作します。
単体のUV-EPROMやEEPROMが必要です。

UV-EPROMは書き込み回数が20回程度と少ないためEEPROMも用意しました。
EEPROMであれば書き込み回数を気にすることなくプログラムの書き換えを行えます。

UV-EPROM「MBM27C64」


EEPROM「UPD28C64」



UV-EPROM or EEPROMにマシン言を書き込める装置が必要になります。
ROMライターとして市販されています。

要は、ROMの書き込みシーケンスに従ってデータを書き込めれば良いわけなので
ワンチップマイコンを使用してROMライターを作ってみました。

ハードウェア構成は以下のようになりました。


H8の外部バスにROMを接続しただけです。
あとは、UV-EPROM用に12Vと21Vの書き込み電源を用意してあります。


外部バス経由で簡単に着込めばよいと考えていましたが.....
UV-EPROMは書き込み速度が遅く高速なバスでは制御ができないことが分かりました。
外部バスにつなげてはありますが、結局ピン設定をIOにしてソフトウェア制御しています。

UV-EPROMの消去は殺菌灯を組み込んだポータブル蛍光灯を使っています。
15~20分程度でROM内容を消去することができます。


ちなみにカバーの透明板を外さないと全く消去ができません。
消去に有効な波長400nm以下の紫外線が吸収されてしまうようです。

拍手[0回]

Z80開発環境構築

80の開発環境の構築について

Z80のソフトウェア開発はアセンブリ言語を用いて行います。
アセンブリ言語(単純にアセンブラと呼ばれることのほうが多い)は、
コンピュータが理解できるマシン語を人間がわかりやすいように記述したものです。
したがってアセンブリ言語からマシン語への変換作業が必要になります。

手作業でマシン語に変換する「ハンド・アセンブル」という手法もありますが
非常にめんどくさいので「Z80アセンブラ」を使用してこの作業を自動化します。

書き込みまでの流れ
------------------------------------------------------------------
アセンブリ言語記述

アセンブラ(ハンド・アセンブルでもOK)

マシン語

HEXファイル(ROMライターによる。なくてもOK)

ROMライター

ROM化
------------------------------------------------------------------

アセンブラにはASxxxx Cross Assemblersを使用します。
HPトップ下のほうの「Get the "ASxxxx Cross Assemblers"」


実行ファイルだけあればよいので「Executables Only Distributions」から
「VS 2015 executables as a zipped file (7353K)」をダウンロード
windows10環境なので、できるだけ新しいVSでコンパイルされたものを選択


ダウンロードしたファイルは解凍して適当な場所に保存しておきます。
様々なCPUに対応したアセンブラがまとめて圧縮されています。
この中で必要なのは「asez80.exe」と「aslink.exe」だけです。
「asez80.exe」がアセンブラ本体で「aslink.exe」はHEXファイルを作るときに必要です。


ASxxxxアセンブラはコンソールアプリケーションなのでコマンドプロンプトから
引数をセットして使用します。


これだと何度もアセンブルする場合に大変なのでバッチファイルを作成して
「TeraPad」に組み込んで開いたファイルを直接アセンブルできるようにしています。


「asez80.exe」を起動するバッチファイルを作成して
そのバッチファイルを「TeraPad」から起動するという流れです。
バッチファイル


「TeraPad」へツール登録


アセンブラを実行するといくつかのファイルが生成されます。
.lstファイルの中身を見てみます。赤枠部分にアドレスとマシン語が記載されています。
正常にアセンブルできていることがわかります。


ソースコードにエラーがある場合はエラー行のメッセージが出力されます。
この出力ファイルを「aslink.exe」に与えることでHEXファイルを生成することもできます。
とりあえずアドレスとマシン語がわかれば何とかなるのでこれで終了です。
ROMライター側がまだ HEXファイル形式に対応していないので.......

今回は「TeraPad」と組み合わせましたが
「TeraPad」だとアセンブリ言語にシンタックスハイライトがつかないので
ほかのエディタに統合して使ったほうがよさそうです。

結局ソースファイルの編集は「Visual Studio Code」使っていますし....
こっちはアドオンを入れることで色分けしてくれます。

拍手[0回]

Z80ワンボードマイコンを作ってみた

有名なZ80CPUを使ってワンボードマイコンを作ってしまいました。


Z80ワンボードマイコンのブロック図です。

Z80を最低限動作させるために必要な回路とROMのほかに
RAM,PIO,CTCが1枚の基板上に構成されています。

Z80ワンボードマイコンのメモリマップ


〇CPU

CPUにはZ80を採用しています。ただしオリジナルのZ80は入手できなかったのでシャープが販売していたZ80セカンドソース品の「LH0080A」を使いました。

〇ROM,RAM

Z80の64kBあるメモリ空間をすべて利用できるように設計しました。
ROMはROM1とROM2に分けています。
各16kBとしてアドレスレコーダによりチップセレクト信号を生成しています。
これはROM1にモニタソフトを入れようと考えているためです。
インターフェースボードを作成してTK80のようにボード単体でソフトウェアを作成できるようにする予定があります。

RAMはZ80のRAM領域32kBすべてを使用しています。

〇パラレルI/O

8255を使って24bit分のパラレルIOポートを設けました。
オリジナルの8255はTTL出力ですが今回はCMOS出力の「D71055C」を使っています。
CMOS出力のほうが何かと接続しやすいので.....

〇CTC
タイマーとしてZ80CTCを使いました。
8bitタイマーが三つ入ったシャープ製「LH0082A」を使っています。

Lチカ成功しました。


回路図




Lチカのソースコード
TEST0.asm

LEDをカウントアップして
一定時間経過すると今度は入力のテストに移行します。

拍手[0回]

基板

発注していた基板が届きました。
基板は「Minimal Board Editor」というフリーのCADで設計して
PCBGOGOに発注しました。


実装と動作確認確認をしてマシンに組み込み
基板加工機で試作した基板と交換しました。
 
この基板が

 
こうなりました。


最後に現在の全体構成
 

拍手[0回]

最新コメント

[08/21 coiler]
[08/21 yoshikiyo]
[08/21 coiler]
[08/20 yoshikiyo]
[08/20 coiler]

カレンダー

09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

ブログ内検索

カウンター

Copyright ©  -- yoshikiyo Lab --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]