ブログトップ

電子工作やってみたよ

ジャイロボーイの基本的な数値を計ってみました。

全重量(充電式バッテリー搭載して)   817g
身長(高さ 接地部からてっぺんまで)  235mm
幅(タイヤ接地部外側)         130mm
ジャイロセンサーの中心の高さ(接地部より)75mm
重心の高さ(接地部より)        125mm
車輪の直径                55mm


ジャイロセンサーのプログラム上の使われ方について

プログラム上の使用箇所  3か所
   マイブロック RST   リセット
   マイブロック gOS  測定ー角速度
   マイブロック GG   測定ー角速度

とりあえず 上記のものを調べました。 忘れないうちに書いておきます。

疑問点は、ジャイロセンサーで「角度」を測るのではなくて、「角速度」を計っていることですね。(角度の測定モードは付いているにもかかわらず。)
累積誤差が出ないのかしら。
前回のジャイロボーイの動画では誤差の累積は見受けられませんね。
まあ 1時間とか動作させていれば、そのうちやってみます。




c0335218_20413527.jpg

庭に咲いたはなです。  名前はちょっとわかりません。
c0335218_10011358.jpg


by telmic-gunma | 2017-05-31 10:11 | レゴ マインドストーム | 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)

NHK 大科学実験を見ていたら「坂の下であいましょう」というテーマをやっていました。「サイクロイド曲線上ならばどこからボールを転がしてもスタートが同時ならばゴールも同時」ということです。
大科学実験の売りは「答えはやってみなくちゃわからない」ですけれどこれ計算だけで確認できたら面白いなと思い挑戦してみました。
高校時代の物理の教科書を出してきて勉強を始めました。

c0335218_14250776.jpg


これは Eテレの画面です 白い曲線がサイクロイド曲線と呼ばれる一番短時間で通り抜ける曲線です。
c0335218_14251437.jpg


サイクロイド曲線上での自由落下、曲線のままでは難しいので、最初のステップとして直線を何本も組み合わせて折れ線近似でやるように計画しました。
まず 大きさは 後で実物模型で実験ができるように直径1mの円を転がしたときにできるサイクロイド曲線で計算してみます。
近似直線のつなぎ目は転がる円の20度ごとにしました。  
実際は当然上下逆になりますが、数学としてのグラフはこのままにしたあります。

c0335218_14261852.jpg


計算に使用する公式などは以下のものを使いました
c0335218_14264704.jpg
サイクロイド曲線の売りは、坂のどこからスタートさせても到達するまでの時間は一緒ということなので以下の3種について計算してみます。

0度~180度

c0335218_14252743.jpg

60度~180度

c0335218_14253849.jpg


120度~180度

c0335218_14254899.jpg


計算は、はじめHP29Cを使いましたが、メモリオーバーになったので HP32SIIに乗り換えました。
頑張って節約すれば入ったでしょうが、これ一か月以上やっていたので人間のエネルギーがなくなりました。

HP32SIIでのソフト
c0335218_11434333.jpg

使用変数名表
c0335218_11252601.jpg
結果
0度~180度   0.710557578秒

60度~180度 0.715087422秒 (+0.64%)

120度~180度  0.734847684秒 (+3.42%)

最後の120度~180度が大きくずれていますが、この間は3本と少ない直線で近似しているため誤差が大きくなったものと思われます。
まあ これならスタート地点が変わっても時間は同じと言えるのではないでしょうか。

この後のやりたいこと。
*120度~180度の間は 折れ点の数を10個くらいに増やして結果がどうなるか確認してみたい。
*直径1mの円で実物のサイクロイド曲線を作りビー玉を転がして時間を確認したい。今回の計算はトンチンカンの値かもしれない。
*折れ線の近似曲線ではなく数式通りのサイクロイド曲線で答えを出してみたい。(かなり勉強が必要でしょうか?)
*大科学実験の実験装置の計算をしてみたい。
*サーキットビュアー(回路シュミレーター)に乗せてやってみたい。

この事でちょっと自信が付きました。 これなら 他の物にも同じ調子で、あきらめずにぶつかっていけば何とかなるかもしれないとおもいます。


我が家の庭に咲いた イチゴの花 です。 
雪の下に埋もれていたのに元気です。 大きな実がなるといいですね。
c0335218_16250093.jpg








by telmic-gunma | 2017-05-04 16:31 | HP電卓 | Trackback(7) | Comments(4)