伝助日記

2007年2月の日記

2007年2月25日(日)
4014HVスピードチェンジ
2007年2月24日(土)
ソフトウェアRXで挫折
2007年2月23日(金)
ソフトウェアRXの準備
2007年2月21日(水)
ソフトウェアRXのアルゴリ..
2007年2月20日(火)
コンデンサーの足伸ばし
2007年2月18日(日)
C8051で4014HVを24個制..
2007年2月17日(土)
4014HVシリアル制御奮闘記..
2007年2月16日(金)
精密圧着ペンチ到着
2007年2月15日(木)
4014HVシリアル制御奮闘記..
2007年2月14日(水)
4014HVシリアル制御奮闘記..
2007年2月13日(火)
お詫びと訂正
2007年2月12日(月)
KRS-4014HV初体験
2007年2月11日(日)
伝助9号で悩んでます
2007年2月7日(水)
本気の電子工作 (単行本)
2007年2月5日(月)
マジカル・アイ
2007年2月2日(金)
バッティング・ロボット
2007年2月1日(木)
文章読み上げソフト
2007年2月25日(日)  4014HVスピードチェンジ No.597
本日はちょっと時間がなかったので4014HVとあまり遊べませんでした。
本日わかったことは、回転中にスピードコマンドを送ると、途中でスピードが変わります。
あたりまえでしょうか。

4014HVのスピードコントロールのアルゴリズムはどうなっているのでしょうか。
ちょっと興味深いです。

2007年2月24日(土)  ソフトウェアRXで挫折 No.596
ソフトウェアRXで挫折しました。
115.2kBPS(8.68μs)の1/4周期(2.17μs)で割り込みを発生させて、Softwareで6ポート分のTXとRXをやろうとしましたが、2.17μs内にすべて処理しなくてはならず、C8051F330Dでは全く無理だと言うことがわかしました。
それで、この前考えたアルゴリズムは断念することとしました。
CPUの処理速度が速ければ、うまく行くはずだったのですが、ちょっと考えが甘かったです。

そこで、方針を変えて、サーボからのデーター受信は必要な時に指定したサーボのデーターが読めれば良し、としました。
多分、普段は、マイコンからサーボに対して、位置とかスピードとかを一方的に送るだけでよいので、TXは、先週実験した8.68μsのタイマー割り込み内で6ポート分処理できます。
RXは、外部割込みの数が少ないので、ダイオードでORとって、サーボデーターが必要な時、1個づつサーボのデーターを受信することとします。
サーボの位置情報は、いわゆる教授モードの時や、EEPROMの読み出しの時に必要で、普段の動作時は、無視することとします。

普通のソフトウェアRXのアルゴリズムになってしまいました。
さて、この方法はうまく行くでしょうか?



2007年2月23日(金)  ソフトウェアRXの準備 No.595
ソフトウェアRXの実験準備で、2.17μsのタイマー割り込みでTXの実験をしました。
かなり厳しいです。
割り込みを4回カウントして1ビット送信するのですが、正確な115200のボーレートが作り出せません。
結構ジッタがあります。
まずは、TXがうまく行かないと、RXも無理です。
明日再挑戦です。

2007年2月21日(水)  ソフトウェアRXのアルゴリズム No.594
4014HVをマイコンポートに接続して、マイコンから4014HVを制御するソフトウェアTXの実装はできました。
次は4014HVからのデーターを受信する、ソフトウェアRXの実装です。
いろいろなアルゴリズムが考えられますが、今回は4014HVの制御に特化したアルゴリズムを考えています。
次のような条件があります。
1:TXポートとRXポートは共通ポートを使う。
2:TXとRXは同時に発生しない。
3:TX後にRXするByte数は決まっている。
4:TX/RXポートは6ポート実装する。
5:マイコンはC8051F330Dを使います。

今考えているアルゴリズムですが、115200bps(8.68μs)の1/4周期(2.17μs)タイマー割り込みを発生させ、TX直後のRX開始で、ポートをサンプリングし、はじめの0(スタートビット)を見つけます。
次の割り込みで、再度0であることを確認。
次のタイマー割り込みの4回おきにポートをチェックし、このポートの状態(ビット)がシリアルデーターとなります。
8ビット受信したら、パリティーとストップビットを受信します。
まだ受信するByte数がある場合は、また受信を開始します。
受信すべきデーターがすべてそろったら、受信を終了します。

TXも同じタイマー割り込みで処理します。
この場合、タイマー割り込み4回毎に1ビット送信のTX処理を行います。

さて、うまく行くでしょうか。
実験は、次の土曜日までお預けです。

2007年2月20日(火)  コンデンサーの足伸ばし No.593
この前千石電商で買った0.1μFのコンデンサーの足を伸ばしてます。
2.54mmピッチの基板で使えるようにしています。
地道な作業ですが、時間に余裕のあるときにやっておくと後で楽です。
ちなみに、500個で1,500円でした。


2007年2月18日(日)  C8051で4014HVを24個制御の可能性は No.591
私の使っている8bitマイコン、C8051F330Dで4014HVを24個制御できそうです。
TXのみ実行したときの話です。(RXはまだ実装していません)
115200bspのSoftware TXを6組(6ポート)まで実装できました。
回路は、各ポートをオープンドレインに設定して、5.6kΩで5Vへプルアップし、この端子を4014HVの信号線へ接続するだけです。
回路はいたってシンプルです。
1回のタイマー割り込み内で、6個のSoftware TXを実行します。

1つのSTXポートに4個の4014HVを数珠繋ぎに接続します。
1個の4014HVを制御するとき、STXポートを占有する時間は、マイコンからの3byte送信で約0.3ms,サーボからの3byte帰りで約0.3ms,合計で約0.6ms位です。
1つのSTXポートで4個の4014HVを制御すると、最速で2.4ms周期となります。
実際に4個のサーボを接続しての実験はしていません。
サーボがいっぱい手にはいたら、実測してみます。

とりあえず実験的に6個のSTX(サーボ24個分)を実装できたのですが、実験で使っているサーボが1個とは、ちょっと悲しいしだいです。

本日の4014HVの動画


2007年2月17日(土)  4014HVシリアル制御奮闘記3 No.590
4014HVをソフトウェアシリアルで動かすことができました。
TXのみの実験です。
8.68μs(115200bpsの1クロック分)周期でタイマー割り込みを発生させて、1ビットづつ送信します。

PUSH POPなど基本割り込み処理で約1.2μsかかってました。
1個のソフトTX処理で約1.3μsかかってます。
パリティーの処理時間は、あまり気にしなくて良かったです。

まず、自作ターミナルソフトできちんとDATAが送信されていることを確認。
とりあえず思いとおりのDATAが送信されていたので、ほっとしました。

さて、いよいよ4014の制御です。
電源電圧は10Vです。
ポジションコマンドの3バイトを送って、ポジションが変わるのが確認できました。
やれやれです。
ためしに、スピードのパラメーターを変えてみました。
おー、スピードも変わる。
スピード1は、かなり遅いです。

で、ここでおかしな症状を確認。
スピードを遅くすると目立つのですが、
時計回りと、逆時計回りで動きが違います。
時計回りはスムーズなのですが、
逆時計回りだと、スピードが速く、ぎこちない感じです。
原因は不明です。

4014スピード127(高速)動画

4014スピード40(低速)の動画


■私的メモ
 
;=======================================
; Timer0 割込み Software UART用
;=======================================
;**** SOFTWAER UART ********************

int_TM0:
SETB TEST_P ;TEST

PUSH PSW
PUSH ACC
PUSH DPH
PUSH DPL

CLR TF0

;***STX0********
JNB STX0_F, ST0R
INC STXBCNT0
MOV A, STXBCNT0
CJNE A, #1, ST01
CLR STX0_P ;START BIT = 0
MOV STXPCNT0, #0 ;PARTY CNT =0
JMP ST0R

ST01:
CJNE A, #10, ST02
MOV A, STXPCNT0
RRC A
MOV STX0_P, C ;PARITY BIT
JMP ST0R
ST02:
CJNE A, #11, ST03
SETB STX0_P ;STOP BIT = 1
CLR STX0_F
MOV STXBCNT0, #0
JMP ST0R

ST03:
MOV A, STXBUF0
RRC A
MOV STX0_P, C ;STX PORT
MOV STXBUF0, A

CLR A
ADDC A, STXPCNT0 ;PARTY BIT CNT
MOV STXPCNT0, A
ST0R:

;***STX1***

ST_RT:
POP DPL
POP DPH
POP ACC
POP PSW

CLR TEST_P ;TEST

RETI




2007年2月16日(金)  精密圧着ペンチ到着 No.592
株式会社ENGINEERより、無償交換キャンペーンの精密圧着ペンチが到着していました。
カタログも同封されていました。
このカタログを見るのが結構楽しかったです。

OLIMEXより、基板も到着しています。


2007年2月15日(木)  4014HVシリアル制御奮闘記2 No.589
ICS2.0コマンドリファレンスを読み直しています。
http://www.kondo-robot.com/pdf/ICS20CommandRef.pdf

通信条件
通信速度 115200bps
ビット長 8bit
スタート 1bit
ストップ 1bit
フロー制御 無し

で、ここまでは普通。
パリティ EVEN
と遭遇。

パリティ無しにしてくれていたら、楽だったのに、とちょっと残念。
今回は、ソフトでポートをパタパタして、TX信号を作ろうと思っているので、パリーティ・ビットも生成しなくてはいけなくなると、タイマー割り込みルーチンで余計な処理が増えて、結果として、ソフトウェアTXポートの数が減ってしまうことが危惧されます。

私のなりのパリティーbitの理解です。
パリティ EVENの時
DATA 8bitの1の数が偶数のとき、パリティーbit=0
DATA 8bitの1の数が奇数のとき、パリティーbit=1

2007年2月14日(水)  4014HVシリアル制御奮闘記1 No.588
4014HVをシリアル制御で使う決意をしました。

先日の疑問点は、おかださんが詳しく説明してくださいました。
ありがとうございます。
1:シリアル制御も5Vで動くか?
 動くけど不安定のようです。
 やはり9V以上で使うのがよさそうです。

2:サーボの出荷時のIDはいくつか?
 IDは0です。

3:マイコンボードのTXとRX端子の処理は?
 私が使うマイコンはいつものC8051F330Dです。
 このマイコンはTX端子をオープンドレインに設定できます。
 この場合、TX端子とRX端子を直結して、抵抗でプルアップし、この端子へサーボのシリアル信号を繋げばOKのようです。

それから、ICS2.0コマンドリファレンスに出てくる「ループバック」の意味が良くわからなかったのですが、これはTXとRXを1本の線で共有しているため、TXから送った信号が、そのままRXで受けてしまい、結果として自分で送信したデーターを自分自身で受信してしまう、ということのようです。

さて、4014HVのシリアル通信の様子がだいぶわかってきたので、どのようにマイコンから制御するか考えています。
1つのシリアルラインに4014HVが5個くらい数珠繋ぎできるようなのですが、8051はUARTが1個しかないので、シリアルが足りません。
そこで、汎用ポートをソフトウェアで制御して複数のシリアルポートを実現しようと思います。
それから、4014HVのシリアル通信は、マイコンのTXとサーボのTXが交互に発生するので、ソフトウェア制御シリアルポートも、1個のポートでTXとRXを交互行おうと思います。
これがうまく行けば、少ないポートでたくさんのサーボがコントロールできます。

はたしてうまく行くでしょうか。
実験は週末までおあずけです。

2007年2月13日(火)  お詫びと訂正 No.587
昨日の伝助日記で、「KRS-4014HVサーボを5Vで動かした」記事を掲載いたしましたが、複数の方から「低電圧動作は危険」との助言をいただきました。
6Vで実験していて、サーボから煙が出て壊れた事例もあるようです。
情報提供をしてくださった方々に感謝申し上げます。
ありがとうございました。

ご心配をおかけして申し訳ございませんでした。
これからは、9Vで実験を行なって行きます。

2007年2月12日(月)  KRS-4014HV初体験 No.586
KRS-4014HVを探し出しました。
買ったのは覚えていたのですが、何処にしまいこんだかがわからなくなっていたのですが、やっと見つけました。

まずは、自作のサーボテスターに繋いでPWMで動かしてみました。
電源は5Vですが、一応動きました。
トルクかけなければ壊れることは無いと思うのですが、実験なので良しとしましょう。

***********************
**実は5V動作は危険ということが判明しました。
**スペック通りに使いましょう。
***********************

スピードは結構遅いです。
デフォルトではスピードを遅い設定にしているのでしょうか、あるいは電源電圧が低いせいでしょうか。

とりあえず5Vでも動いたので、次はシリアル制御です。
TXとRXと信号線1本しか使っていないようなので、複数サーボを繋いだとき、サーボからのシリアル信号がぶつかる事はないのでしょうか。
ここら辺は、多分、サーボからは勝手に送信しないようにしているのでしょうね。

さて、現在の疑問点。
1:シリアル制御も5Vで動くか?
2:サーボの出荷時のIDはいくつか?
3:マイコンボードのTXとRX端子の処理は?

実験は、来週になります。


2007年2月11日(日)  伝助9号で悩んでます No.585
伝助9号は、S3003を使った伸び縮みする足で作ろうと思っていましたが断念することとしました。
スピードが遅いのと、意外と仕組みが複雑になって、重量がまします。
そこで、初心に戻って、伝助7号のサーボの配置(12サーボ)で、再挑戦という考えも浮かんできました。
伝助7号の時は、S3003サーボを使いましたが、スピードと力がなったので、結構大変でした。
それで今回は、KRS-4013HVとか強力なサーボを使って見たいのです。
シリアルコントロールが可能なようで、こちらも魅力です。
そこで、近藤科学のホームページに公開されている、ICS2.0コマンドリファレンスを見てみました。
http://www.kondo-robot.com/html/TechInfo.html
CMDは、bit8=1。
DATAは、bit8=0(7bit)の2Byte(14bit)。
なんか、MIDI規格に似ているような。(bit8の考え方だけですが)
回転角度が14bit分解能って、すごいですね。
サーボ内蔵ADのS/Nを上げないと、実際にはこれだけの分解能は実現できないと思います。
実際は、どうなんでしょう。
個人的には12bitの分解能があればよいと思ってます。

昨年、実験用としてKRS-4014HVを1個だけ購入したのがどこかで眠っていると思うので、制御の実験をしてみたくなりました。

2007年2月7日(水)  本気の電子工作 (単行本) No.584
amazon.co.jpから本気の電子工作 (単行本)の案内が届く。
本の中身は不明ですが、電子工作の血が騒いだので即ワンクリックしてしまいました。
最近は、電子工作とちょっとご無沙汰です。
といいますか、中途半端な状態で停滞気味です。
のんびり楽しくやりましょう。

OLIMEXから、基板送ったよメールを受けとしました。
お礼の返事出すの忘れてました。
これからだします。

2007年2月5日(月)  マジカル・アイ No.583
最近視力が極端に落ちてきました。
老眼なのですが。
本屋さんで、視力回復マジカル・アイの本を見つけました。
しばらく中の写真を見つめていると、なんと立体に見えてきました。

興味がわいたので、ネットで検索したら、沢山ヒット、
こんな面白いのが昔からあったのですね。

かつらさんのホームぺジに立体絵製作フリーソフトがあったので、使わせていただきました。
それで、伝助7号っぽい立体絵を描いてみました。

マジック・アイの見方は、こちらのホームページにも紹介されています。
http://www15.ocn.ne.jp/~monalisa/magiceyes-1.htm


2007年2月2日(金)  バッティング・ロボット No.582
Youtubeでバッティング・ロボットの動画を見ました。
昨日の晩、映画「どろろ」を見たばっかりなので、すごい映像を見るとCGではないかと疑ってしまいます。


2007年2月1日(木)  文章読み上げソフト No.581
いまさらですが、パナソニックの文章読み上げソフト、
Voice Editing Ver.1.0 Mobile Edition体験版を知りました。

それで、伝助定番の挨拶を音声に変換してみました。

皆さん、こんにちは。
僕は、伝助8号です。
また、お会いできて、うれしいです。
日本語ご挨拶の音声

Hello everyone.
I am a robot DENSUKE 8.
I'm glad to see you again.
英語ご挨拶の音声


No. PASS
 OR AND
スペースで区切って複数指定可能
++HOME++
[日記一覧] [最新]
shiromuku(fs2)DIARY version 3.00