Arduinoを使用して地球の質量を測定する方法
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 4 | ||||
| × | 2 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
イントロ
ある晴れた日、私は体重計で自分の体重を測っていました。突然、「地球の質量はどれくらいになるだろうか」という考えが浮かびました。それを別にしてください「どうすればそれを測定できますか?」地球を置くことができるそのような体重計はありません。地球の質量を測定するには、間接的な方法が必要です。ここでは、地球の質量を測定するためのそのような間接的な方法の1つの実装を紹介します。
ステップ1:間接的な方法
19世紀初頭、科学者たちはニュートンの第2法則とニュートンの万有引力の法則を使用して、地球の質量を測定しました。これらの方程式は、それぞれF =maとF =(GmM)/(r ^ 2)です(m =物体の質量、a =加速度、G =重力定数、M =地球の質量、r =地球の半径) 。 「a」の加速度項を重力による加速度に置き換えて、これら2つの方程式を組み合わせると、次のようになります。
mg =GmM / r ^ 2
この方程式は、M、つまり地球の質量について解くことができます。
M =(gr ^ 2)/ G。
<図>Gとrの値がわかっていると仮定します。つまり、arduinoといくつかのセンサーを使用した小さな実験を使用して、重力による加速度を見つけます。最後に、すべてをまとめてMの価値を見つけます。
適切な数式については、添付の画像をご覧ください。
実験を始めましょう。
ステップ2:実験の概要
(ここで少し計算してください。arduinoがすぐに起動します)
重力による加速度を決定するには、「自由落下」と呼ばれるものを知る必要があります。これは、重力の下でのみ、物体/物体が地球に向かって下向きに移動する運動です。現在、この自由落下を特徴付ける科学用語はほとんどありません。 初速度、最終速度、移動距離、飛行時間、加速度です。
- 初期速度 -自由落下の開始時または実験の開始時の自由落下体の速度。
- 最終速度 -実験終了時の自由落下終了時の自由落下体の速度。
- 移動距離 -自由落下中に自由落下する物体がカバーする距離。
- 飛行時間 -自由落下下で移動した距離をカバーするのにかかる時間。
- 加速 -自由落下中に物体が観測する速度の変化率。重力による加速度と同じです。
さて、ニュートンの方程式の1つが次のようになります-
移動距離=(初速度*飛行時間)+(加速度*(飛行時間)^ 2)/ 2
上記の方程式には4つの変数があります。これには、関心のある1つ、つまり「加速度」が含まれます。これらの4つの変数のうち、3つがわかっている場合は、残りの4番目の未知の変数を計算できます。
そのうちの2つを修正できます
- 移動距離=1メートル(オブジェクトを1メートルの高さからドロップします)
- 初速度=0 m / s(実験は静止状態から開始します)
2つの未知の変数が残っています。ここで、arduinoが起動し、飛行時間を見つけるのに役立ちます。 飛行時間を正確に決定するには、1。飛行の開始と2.飛行の終了の2つのタイムスタンプが必要です。
ステップ4で、これら2つのタイムスタンプを決定するためのカスタム回路を作成します。フライトの開始とステップ5の終了のタイムスタンプを見つけるための回路について説明します。
arduinoといくつかのセンサーの助けを借りて、飛行時間を計算し、上記の式で不明なものを1つだけ残します。つまり、重力による加速度(bingoooo !!!)です。
方程式をさらに単純化するために、上記の方程式に固定変数値を入れましょう。
1 =(g *(飛行時間)^ 2)/ 2
だから、
g =2 /(飛行時間)^ 2
実験の詳細はステップ7で続きます。
疑問がある場合は、添付の画像を参照してください。
<図>
ステップ3:必要なもの
重力による加速度を測定するための実験に必要なもののリストは次のとおりです。
- Arduinoボード、できればuno / duomilanove(この実験にこのボードを使用したという理由は特にありません)
- ArduinoをPCに接続するためのUSBケーブル
- 560オーム抵抗器(数量4個)、100オーム抵抗器(数量2個)
- 圧電センサー(数量4個)
- 1組のIRTx(IR LED)とRx(フォトダイオード)
- 1つのポテンショメータ
- 1つのオペアンプ(UA741Cなど)
- 1つのブレッド
- 長さ1.2メートルのワイヤー3本
- IR回路を組み立てるための小さな5cmx5cmの汎用PCB
- テープ
- 段ボールシート
疑問がある場合は、添付の画像をご覧ください。
<図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図> <図>ステップ4:回路図1:IR回路
この回路は、「g」の測定に使用されるオブジェクトの自由落下の開始時間をタイムスタンプするために使用されます。添付のフリッツの概略画像に関する重要なポイントは次のとおりです。
- IR LEDは順方向バイアスで使用され、このアプリケーションでは通常のLEDとして機能します。つまり、IRレシーバーのフォトダイオードを照らします。
- フォトダイオードは逆バイアスで使用されます。
- カソードと抵抗の接合部からの出力は、オペアンプの入力端子の1つに接続されています。
- オペアンプの他の入力端子は、しきい値電圧を決定するポテンショメータに接続されています。
- オペアンプの出力はArduinoボードに送られます。
疑わしい場合は、ビデオ(時間=5分16秒)を参照してください。
ステップ5:回路図2:圧電回路
この回路は、「g」の測定に使用されるオブジェクトの自由落下の終了時間をタイムスタンプするために使用されます。添付のフリッツの概略画像に関する重要なポイントは次のとおりです。
- 回路図に示すように、4つの圧電センサーが接続されています。
- 4 560オームの抵抗器が圧電センサーと並列に接続され、自由落下する物体が表面に当たったときに圧電センサーによって生成される電圧スパイクを低減します。
- 圧電センサーのマイナス端子は回路のアースに接続されています。
- 圧電センサーの正端子はアナログ入力ピンに接続されています。
疑問がある場合は、添付のビデオを参照してください(時間=9分2秒)。
ステップ6:物事をまとめる
これらの手順に従って、物事をまとめてください。
- 段ボールを使用して屋根のような構造を作り、約1.1メートルの壁に貼り付けます。
- IRモジュールを下向きにして段ボールの屋根に取り付けます。
- 長さ1.2mのワイヤーの1つを使用して、オペアンプの出力をArduinoのピン番号4に接続します。
- 残りの1.2mの長さのワイヤーを使用して、VccとGNDをarduinoからIRモジュールに接続します。
- ワイヤーが壁にしっかりと取り付けられていること、IRモジュールが段ボールの屋根に取り付けられていること、圧電モジュールがIRモジュールのすぐ下の地面にしっかりと取り付けられていることを確認してください。
疑わしい場合は、添付の画像を見てください。アセンブリを理解しやすいように、適切にマークが付けられています。
<図>
ステップ7:実験の詳細
すべてが整ったら(ステップ8で説明したArduinoコードを除く)、この実験の手順を実行してみましょう。
- 1の番号が付けられた画像に示すように、自由落下に使用されるオブジェクトの上に小さな薄い突起を貼り付けます。
- 自由落下を続けるためにオブジェクトを離れる前に、上部の投影がIRからフォトダイオードへの光を遮るように、オブジェクトを1メートルのマークで保持します。 2の番号が付けられた画像に示されているように。
- 圧電着陸帯に落下させる力を加えずに物体を離れます。
- 落下するとき、IR TXとRXの経路に障害物はなく、自由落下の開始時間に関して、ちょうど左のオブジェクトに関する信号を提供します。
- 物体が着陸帯に接触すると、圧電センサーが制御された電圧スパイクを生成し、自由落下の終了時間に関して物体の到着を通知します。
- 開始時刻から終了時刻を引くと、ステップ2で説明したように、重力による加速度の計算に使用する飛行時間が得られます。
ステップ8:Arduinoコード
この実験用にArduinoコードを添付しています。コードは本当にシンプルです。疑問がある場合は、コードを詳細に説明しているビデオを参照してください(ビデオの時間=13分35秒)。
ステップ9:実験をしましょう
この実験を行う前に、次の点に注意する必要があります。
- 圧電センサーのしきい値は、arduinoコードで適切に設定する必要があります。
- 圧電パネルをIRモジュールのすぐ下に配置します。
- 外力を加えずに、必ず1メートルから物体を落とします。
ここでは、添付のビデオのタイムスタンプ17分でこの実験を行っています。この実験で得られた結果、つまり飛行時間を使用して、地球の質量を計算します。
ステップ10:地球の結果と質量
この実験を3回繰り返した後、飛行時間に関して次の結果が得られました。
- 443ミリ秒
- 443ミリ秒
- 464ミリ秒
平均してみましょう。
平均飛行時間=450ミリ秒
この値を式に代入して重力による加速度を求めると、加速度は約9.8755 m / s2になります。添付の画像に見られるように。
最後に、この「g」の値を地球の質量に置き換えると、添付の画像に示されているように、約6.0066 x 1024Kgになります。
グーグルによる地球の実際の質量は5.972x 1024Kgです。近づいたと思います。
お時間をいただきありがとうございます。ご不明な点がございましたら、動画をご覧になるか、コメント欄にご記入ください。
<図>
コード
- Arduinoコード
Arduinoコード Arduino
単純なarduinoコードconst int SensorPin1 =A0; const int SensorPin2 =A1; const int SensorPin3 =A2; const int SensorPin4 =A3; const int photoPin =4; const int ledPin =13; const int threshold =110; char stringToPrint [100]; int startTime、endTime; int val1、val2、val3、val4; void setup(){Serial.begin(115200); //セットアップコードをここに配置して、1回実行します:pinMode(ledPin、OUTPUT); pinMode(sensorPin1、INPUT); pinMode(sensorPin2、INPUT); pinMode(sensorPin3、INPUT); pinMode(sensorPin4、INPUT); pinMode(photoPin、INPUT);} void loop(){//メインコードをここに配置して、繰り返し実行します。intstart =digitalRead(photoPin); startTime =millis(); if(start ==HIGH)digitalWrite(ledPin、HIGH); while(start ==LOW){digitalWrite(ledPin、LOW); val1 =analogRead(sensorPin1); val2 =analogRead(sensorPin2); val3 =analogRead(sensorPin3); val4 =analogRead(sensorPin4); // sprintf(stringToPrint、 "%d、%d、%d、%d"、val1、val2、val3、val4); //Serial.println(stringToPrint); if((val1> =threshold)||(val2> =threshold)||(val3> =threshold)||(val4> =threshold)){endTime =millis(); sprintf(stringToPrint、 "%d ms"、endTime --startTime); Serial.println(stringToPrint); digitalWrite(ledPin、HIGH); delay(1000); digitalWrite(ledPin、LOW); start =HIGH; }}}
回路図
IR回路のフリッツ回路図 ハードウェアイメージ フリッツの概略図 ハードウェアイメージ 製造プロセス