NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(sqrt関数の使い方)

sqrt関数

 sqrt関数は平方根を求める事が出来る関数です。
 平方根(へいほうこん、英語: square root)とは、数に対して、平方すると元の値に等しくなる数のことです。参考に2~8の平方根と語呂合わせを表1に示します。
 二乗根(にじょうこん)自乗根(じじょうこん)とも言われ、数学では「√、ルート」記号がつかわれます。
表1:平方根(ルート)を語呂合わせで覚える
X √X 語呂合わせ
2 1.41421356⋯ 一夜一夜に人見頃(ひとよひとよにひとみごろ)
3 1.73205081⋯ 人並みに奢れや(ひとなみにおごれや)
5 2.2360679⋯ 富士山麓 オウム鳴く(ふじさんろくおうむなく)
6 2.449489⋯ 煮よ よく弱く(によよくよわく)
7 2.64575⋯ 菜に虫いない(なにむしいない)
8 2.828⋯ ニヤニヤ(にやにや)
 
 Arduino IDEで使用するsqrt関数の使い方は以下の通りです。
 試しにこのプログラムをArduino UNOで実行すると、図2の通りシリアルモニタ上に「Distance = 1.00」と出力されます。
void setup() {
  Serial.begin(9600); //9600bpsでシリアルポートを開く
}

void loop() {                                                            //{}内を無限ループで実行する
  float YA = 0, YB = -0.7071;                                    //点A・BのY座標を宣言
  float XA = 0, XB = -0.7071;                                    //点A・BのX座標を宣言
  Serial.print("Distance = ");                                      //"Distance = "をシリアル出力
  Serial.println(sqrt(pow(XB - XA, 2) + pow(YB - YA, 2))); //BからA迄の距離を計算
  delay(1000);                                                          //1000ms(1秒)待ちます
}
イメージ 1
図1:プログラム例
sqrt (x)パラメータ
x     :数値
戻り値平方根(double)

イメージ 1
図2:シリアルモニタ出力結果

:プログラムの補足
 プログラムの例はA・B 2点の座標(X・Y)から2点間の距離を計算する式で、平方根sqrt関数を使った例です
 ピタゴラスの定理(直角三角形の3辺の長さの関係を表す等式)を使い、直角三角形の2辺の長さから残りの1辺の長さを計算で求めています。
 参考に三角関数の基礎とピタゴラスの定理をグラフにすると図3の様になります。
 図3円周上のどの位置に点Bを置いても、AB座標からピタゴラスの定理(①式)によって求まる半径rは全て1です 

イメージ 2

三角関数の基礎
 sinθ = Y/r、θ = Asin(Y/r)
 cosθ = X/r、θ = Acos(X/r)
 tanθ = Y/X、θ = Atan(Y/X)
atan2関数で方位を計算!
 目的地(A)の緯度(YA)・経度(XA)が既知で、かつ現在地(B)の緯度(YB)・経度(XB)がGPS等で分かっている場合、以下の式で目的地の方角(θ)と距離(r)を算出する事が出来ます。
 前提: X = XB-XA、Y = YB-YA
 目的地迄の距離
   :r = sqrt(pow(X,2)+pow(Y,2))
 目的地の方角:θ = atan2(Y,X) 
 
図3:三角関数の基礎とピタゴラスの定理
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る