ブログトップ

電子工作やってみたよ

ジャイロボーイのマイブロック GM, EQ, cntrl について調べてみました。


c0335218_20413527.jpg


***************************************************************************
Label GM

buff = mSum

mSum = ( モーターAの回転角度 測定値 )+( モーターDの回転角度 測定値 )

mDiff = ( モーターAの回転角度 測定値 )ー( モーターDの回転角度 測定値 )

mD = mSum - buff

mPos = mPos - mD

mSpd =(( mD + mDP1 + mDP2 + mDP3 ) / 4 ) / tInt

rtn

***************************************************************************
Label EQ

mPos = mPos - tInt * Cdrv

buff2 = ( 0.8 * gSpd ) + ( 15 * gAng )

buff3 = ( 0.08 * mSpd ) + ( 0.12 * mPos )

pwr = -0.02 * Cdrv + buff3 - buff2

IF pwr > 100 THEN pwr = 100

IF pwr < -100 THEN pwr = -100

rtn


***************************************************************************
Label cntrl

mPos = mPos - ( Cdrv * tInt )

右駆動 = pwr + ( Cstr * 0.1 )

左駆動 = pwr - ( Cstr * 0.1 )

rtn

***************************************************************************


数学の拡張命令における掛け算や足し算などの優先順位は以下の通り通常の数学と同等でした。

2 + 3 * 4 => 2+ ( 3 * 4 ) 答えは 14です。


a * b + ( 1 - a ) * c => ( a * b ) + ( ( 1 - a ) * c )





いま 庭に咲いている花です。  名前は不明です。

c0335218_20123857.jpg




by telmic-gunma | 2017-06-12 08:33 | レゴ マインドストーム | Trackback | Comments(2)

マインドストームのジャイロボーイの動画を撮れたので載せます。
すごく安定しています。
これから いろいろ調査、勉強したいと思います。






c0335218_20413527.jpg


イチゴが色づいたのでたべました。
苗を植えて二年目、今回 初めて採れましたが、思いのほか大きかったです。
野イチゴみたいなのを考えていたのでスーパーで売っているのとそん色ない大きさには嬉しくなりました。
甘さは今一かな。 砂糖と牛乳で食べればいいかも。 ジャムもいいね。


c0335218_21065252.jpg


by telmic-gunma | 2017-05-30 07:16 | レゴ マインドストーム | Trackback | Comments(2)

ジャイロボーイのソフト どうなっているのか勉強を始めてみたのですが、思いのほか難しくてわからない。
そこで代理店のアフレルに「ジャイロボーイのソフトの説明書有りませんか」、と聞いてみたら英文のソフト説明を教えてくれました。
こう言っちゃあなんですが、英語はからっきしなので、もう無条件に翻訳ソフトを通過させてみました。
グーグルの「英文和訳」で検索して最初に出てきたグーグルのものを使って翻訳してみました。
日本語として少しおかしなところもあるけれど、 私よりは遥かに頭いいですね。
なにも 完璧である必要はなく たった一言でもヒントとなってスカッとわかることありますものね。


もし これを読んだ人で 「ここの意味こうじゃないの」というのがありましたら コメントで教えて下さい。

どこかで読んだのですが、この マインドストームの適正年齢は10歳から21歳と書いてありました。
私なんか この上限を3倍以上過ぎてしまっているのですよ。 どうしたらいいのでしょうか。


「引用元)EV3 model program descriptionsGyroBoy Program Descriptions」

リンク先
https://le-www-live-s.legocdn.com/sc/media/files/ev3-program-descriptions/ev3-program-description-gyroboy-8f351eb6ca8c99121f27be9cb2b12ad6.pdf

c0335218_18520597.jpg



ジャイロボーイ メインまとめ

**************************************************************************
ジャイロボーイ Overview

Gyroboy runs two parallel program string.
The first string, loop M, handles the data collection and balancing equations.
These are all tuned to the robot and should not be changed without advanced knowledge.
The second loop, BHV,handles the behavior of the robot.
It allows basic control and sensor feedback.
By changing the varables Cdrv and Cstr, you can make the robot do what you want


Gyroboyは2つの並列プログラム文字列を実行します。
最初の文字列、ループMは、データ収集とバランシング方程式を処理します。
これらはすべてロボットに調整されており、高度な知識がなければ変更しないでください。
2番目のループBHVは、ロボットの動作を処理します。
基本的な制御とセンサフィードバックが可能です。
変数CdrvとCstrを変更することで、ロボットはあなたが望むことをすることができます


**********************************************************************
ジャイロボーイ Overrview 1

Loop M begins with My Block RST, this will reset all motors and sensor.
My block gOS checks to see how still the robot is.
Once complete, the robot sets up its launch sequence.
On display graphics show an expression for the robot.


Loop MはMy Block RSTで始まり、すべてのモーターとセンサーをリセットします。
マイブロックgOSは、ロボットがまだどれくらいの状態であるかを確認します。
完了すると、ロボットは起動シーケンスを設定します。
ディスプレイグラフィックスでは、ロボットの式が表示されます。

**********************************************************************
ジャイロボーイ Overview2

Loop BAL takes all of the data from the Gyro Sensor and Motor sensores to process then to balance
Time is also used in the calculations
Timer1 is used to calculate the time it take to run the equation, and regulated,and requlates the time between getting the data and running the balancing equation.
The time needs to be regulate in order to have a more stable robot.
The Unregulated Motor Blocks for Motor A and D are used to make sure that only the balancing equation requlates the movement.
not any other internal calculations.
Myblock CHK is there to check if the robot has fallen and ends the loop with Variable ok ifit dose.
The My Blocks are show as they are to improve readability and possible customization.


ループBALは、ジャイロセンサーとモーターセンサーのすべてのデータを処理してバランスを取る
時間も計算に使用されます
Timer1は、方程式を実行するのにかかる時間を計算するために使用され、調整され、データを取得してバランシング方程式を実行するまでの時間を再計算します。
より安定したロボットを使用するためには、時間を調整する必要があります。
モーターAとDの調整されていないモーターブロックは、平衡式だけが動きを再現することを確認するために使用されます。
他の内部計算ではありません。
Myblock CHKは、ロボットが落ちたかどうかをチェックし、用量が変わったらループを終了します。
My Blocksは、読みやすさとカスタマイズ可能性を向上させるためのものです。

**********************************************************************
ジャイロボーイ Overview 3

Loop Mends by stopping the motors and behaviors
Achange in graphics,sound and brick light display
indicate the fallen status and is ready to reset.
the user to put the robot back on the stand,then by pressing the touch sensor the robot can start again


モーターとビヘイビアを停止してループを作成する
グラフィック、サウンド、ブリックライトディスプレイのAchange
落ちた状態を示し、リセットする準備ができています。
ユーザがロボットをスタンドに戻すようにしてから、タッチセンサを押すことによってロボットは再び始動することができる

**********************************************************************
ジャイロボーイ Overview 4

Loop BHV controls the behavior of the robot
State variable S is wired to A switch in Numeric Mode with 3 options.
If Variable S is 0, the Variables CDrv and Cstr are set to 0 and this is the idle state of the robot.
If S is 1.
the robot does a launch sequence.
Variable CDrv is set to 40 for 4 seconds.
then back to zero then Variable S is changed to 2 in order to begin the movement state


ループBHVはロボットの動作を制御します
状態変数Sは3つのオプションで数字モードのAスイッチに接続されています。
変数Sが0の場合、変数CDrvとCstrは0に設定され、これはロボットのアイドル状態です。
Sが1の場合
ロボットは起動シーケンスを実行します。
変数CDrvは4秒間40に設定されます。
次にゼロに戻り、変数Sが2に変更されて移動状態を開始する

**********************************************************************
ジャイロボーイ Overview 5

when Variable S is 2,
it is the main operating and interctive state of the robot.
The Color Sensor is checked and for each available color,
this is a different value for variables Cstr and Cdrv.
The next Switch in Ultrasonic Mode checks to see if an object is in front of the robot.
if there is,the robot stops and saves its last driving condition,
then prepares to tum away by moving slightly back, and waving its arms.
The robot than turns randomly left or right for a few seconds and goes back to its
previous driving state.


それはロボットの主な動作状態および活動状態である。
カラーセンサーがチェックされ、使用可能な色ごとに、
これは変数CstrとCdrvの値が異なります。
次の超音波モードのスイッチは、物体がロボットの前にあるかどうかをチェックする。
ロボットが停止していれば、その最後の運転状態を保存し、
やや後ろを動かして腕を振って脱走する準備をする。
ロボットは数秒間ランダムに左右に振り回され、
前の運転状態。

******************************************************************


ジャイロボーイ サブルーチン オールまとめ


*************************************************************
ジャイロボーイ サブ RST

My Block RST resets all motors, sensors, timers and variables that are needed in this program.


マイブロック RSTは、このプログラムで必要とされるすべてのモーター、センサー、タイマー、および変数をリセットします。

*************************************************************
ジャイロボーイ サブ gOS

My Block gOS makes an offset value of the Gyro Sensor in its steady position.
If the Gyro is slightly drifting.
this will keep the value requlated as the robot moves.
The offset is also dynamically calclated while the robot is running.
To calculate this value the gyro value is read and added together 250 times.
In each addition,
the value is checked at maximum and minimum values to make sure the robot is steady.
After Loop gChk ends, the difference between gMax and gMin is checked,
if the value is less than 2,
the calculation will continue, otherwise the robot will check the gyro again.
The average of the gSum is takenby the Math Block dividing by 250, and then this is wired to the Variable gOS.


マイブロック gOSは、ジャイロセンサのオフセット値を安定した位置にします。
ジャイロがわずかに変動している場合,これは、ロボットの動きに応じて値を再設定します。
オフセットは、ロボットが動作している間も動的に計算されます。
この値を計算するために、ジャイロ値を250回読み取り、加算します。
各追加において、値は最大値と最小値でチェックされ、ロボットが安定していることを確認します。
ループの終了後、gMaxとgMinの差がチェックされ、値が2未満の場合、計算が続行されます。
そうでなければ、ロボットはジャイロを再度チェックします。
gSumの平均は250で除算された数学ブロックによって取り込まれ、次にこれは変数gOSに配線されます。

*************************************************************
ジャイロボーイ サブ GT

My Block GT calculates a time interval based on a timer and loop count.
Timer 1 is divied by Variable cLo,
witch represents the loop count and wired to the Variable tlnt.
One is added to Variable cLo after the calculation.


マイブロックGTはタイマーとループカウントに基づいて時間間隔を計算します。
タイマー1は変数cLoで除算され、witchはループカウントを表し、変数tlntに配線されています。
計算後に1が変数cLoに追加されます

*************************************************************
ジャイロボーイ サブ GG

My Block GG gets information from the Gyro Sensor.
Variable gOS, from the My Block gOS,is used to create a dynamic offset.
The Gyro Sensor,reading degrees/seconds is used to create a newoffset.
The difference between the gyro reading and Variable gOS creates Variable gSpd.
This way is faster than using the direct readings from the gyro and compensates for drifting in the gyro as it happens on the robot.


マイブロック GGはジャイロセンサーから情報を取得します。
マイブロック gOSからの変数gOSは、動的オフセットを作成するために使用されます。
度/秒を読み取るジャイロセンサーを使用して、新しいオフセットを作成します。
ジャイロの読み値と変数gOSの違いは、変数gSpdを作成します。
この方法では、ジャイロからの直接読み取りを使用するよりも高速で、ロボットで発生するジャイロのドリフトを補正します。

*************************************************************
ジャイロボーイ サブ GM

My Block GM gets information from the motors.
First,the motor position is calculated by adding the degree values of Motor A and D and subtracting that value from a prevous calculation.
Variable mD is the initial difference.
The difference is added to an old mPos and makes the new mPos.
Motor speed,Variable mSpd,is created by taking an average of 4 motor differences and dividing by Variable tlnt.
The last blocks move the motor differences to other variables in succesion.


マイブロック GMはモーターからの情報を取得します。
まず、モーターの位置は、モーターAとDの次数値を加算し、その値を前の計算から引いて計算されます。
変数mDは初期差です。
差異は古いmPosに追加され、新しいmPosが作成されます。
モータ速度、変数mSpdは、平均4つのモータ差をとり、変数tlntで除算することによって作成されます。
最後のブロックは、モーターの違いを他の変数に移動します。

*************************************************************:
ジャイロボーイ サブ EQ

My Block EQ is the balancing equation.
Using the variables mPos,mSpd,gAng,gSpd and Cdrv, the Veriable pwr is created.
First create a target mPos using Variable Cdrv.
Next,Multiply gAng with .8 and gSpd with 15.
The same is done with Variables mPos, with .12 and mSpd with .08.
These multipliers give weight to the variables that are added together in a Math Block.
All arefinally added together with Cdrv and multiplier -.02 to create the pwr Variable.
Lastly, Variable pwr is checked if it is greater than 100 or less than -100 and sets the value to the maximum or minimum if needed.


マイブロックEQはバランスの取れた式です。
変数mPos、mSpd、gAng、gSpd、およびCdrvを使用して、Veriable pwrが作成されます。
最初に、変数Cdrvを使用してターゲットmPosを作成します。
次に、0.8でgAngを乗算し、15でgSpdを乗算します。
変数mPosでは.12、mSpdでは.08と同じことが行われます。
これらの乗数は、算術ブロックで一緒に加算される変数に重みを与えます。
すべてがCdrvと乗算器-.02と一緒に追加され、pwr変数を作成します。
最後に、変数pwrが100より大きいか-100より小さいかどうかがチェックされ、必要に応じて値が最大値または最小値に設定されます。

*************************************************************
ジャイロボーイ サブ Ctrl

My Block Ctrl uses teo variables to control the robot.
Cdrv is again used to create a target motor position.
The Variable Cdrv is multiplied by tlnt and subtracted from the previous mPos to create the target.
Variable Cstr is multplied by .1and, when added to the power,
Variable pwr will wire to the left drive motor.
By subtracting the wire will go to the right drive motor.


マイブロック Ctrlは、ロボットを制御するためにteo変数を使用します。
Cdrvを再び使用して目標モータ位置を作成する。
変数Cdrvにtlntを掛け、前のmPosから減算してターゲットを作成します。
変数Cstrは.1で乗算され、電力に加えられると、
変数pwrは左の駆動モーターに配線されます。
ワイヤを差し引くことにより、右側の駆動モーターに送られます

*************************************************************
ジャイロボーイ サブ Chk

My Block Chk checks if the robot has fallen.
If the power is 100 for more than 2 seconds,
the Variable ok will end the balancing loop and robot can be placed on the stand again.


マイブロック Chkは、ロボットが落ちたかどうかをチェックします。
電源が100秒間2秒を超える場合、
[OK]ボタンを押すとバランシングループが終了し、ロボットを再びスタンドに置くことができます。

*************************************************************

庭のイチゴに実がなってきました。まだ花が咲いているのに早いですね。
赤くなるまでもうちょい、イチゴジャム できるかな。

c0335218_15060424.jpg








by telmic-gunma | 2017-05-20 18:57 | レゴ マインドストーム | Trackback | Comments(2)

マインドストームのジャイロボーイ(自立二輪ロボ)うごきました。
メカを組み立てるのは部品点数が多くてたいへんだったですが、ソフトの方はメーカーが作った物を転送するだけなので簡単でした。
一発で動いたのにはびっくりでした。

電卓(HP29C)は大きさ比較のため置いてあります。 組みあがってみると意外と大きいですね。
c0335218_20413527.jpg




c0335218_20420525.jpg





c0335218_20424262.jpg
動画がうまく撮影できなかったのでうまく行ったら後で載せます。

この後やりたいことは ジャイロボーイのソフトを解読することですね。
初めての言語を覚えるのは、上手な人が作ったソフトを徹底的に解読するのが一番身に着く気がします。

またアフレルに聞いたら、回路図なども公開されているので、面白いセンサーや出力装置を手作りしてつなげてみたいです。

これ いつまでも孫にわたさないで私が勉強していたのでは(楽しんで?)、そのうち怒られそうですね。



我が家の庭にさいた「スイセン」です。
c0335218_20430924.jpg


長ネギの苗をうえました。 おじさんのところから貰ったもので、市販されている苗よりも大きくて元気がいいです。 
c0335218_20433916.jpg


by telmic-gunma | 2017-05-11 21:56 | レゴ マインドストーム | Trackback | Comments(2)