日本大学歯学部紀要 31, 1―7，2003

パソコンを利用した学生実験課題の開発研究―マイクロコントローラを用いた重力加速度の測定―
山岡大藤原 忠夫

Development of physics education with a personal computer―Measurements for the acceleration of gravity using the microcontroller―
Masaru Yamaoka and Tadao Fujiwara

Abstract
We developed the measurement system, which applied the A/D conversion circuit to the measurement for the acceleration of gravity before, in order to decrease the unprepared artificial mistake, which generated by the measurement in the exercises for students. Since accuracy was inferior in the measured value obtained by the measuring method using this A/D conversion circuit,the research for the improvement was planned, and the measuring method reported here wasnewly developed.
The measurement system developed in order to measure the period of a Boulder’s pendulum
consists of an oscillating detection circuit developed previously, a periodic detection circuit developed this time, and the calculation programs which accompanies it. In this periodic detection circuit, the microcontroller which detected and processed the state of the port was used for thechange of the circuit of a previous A/D conversion circuit.
As a result, the measured value of the acceleration of gravity was 9.7988±0.0001 m/sec2,andwas very appropriate.
Key words : the acceleration of gravity, the exercises for students, a period of a Boulder’s pendulum, the periodic detection circuit, the microcontroller.に注視して 200 回を越える振動回数を数えて重はじめに力加速度の測定値を得ている。

大学の基礎物理教育の力学分野では，多くのこの測定法の問題点の一つに，注視するが故大学で，初等力学の基礎である重力加速度の測に振動回数の数え間違いあるいは時計計測によ定を学生実験の実験課題として採用している。

る測定誤差という人為的ミスによって，しばし重力加速度の測定には，落下法や可逆振り子ば測定値の誤りがみられてきた。そこで，筆者などの様々な方法があるが，本学部の物理学実らは，このような授業現場で起こる人為的ミス

験では「ボルダの振り子」による測定法で実施を解消するため，ボルダ振り子の振動を光スしている。この学生実験では，ボルダ振り子のイッチで検出し，この検出信号を A/D コンバー

振動周期をストップウォッチを用いて測定し，タによってパソコンに取り込んだのち，その計

その測定精度の向上のため，測定者が振動を常測データから重力加速度を算出するプログラム

日本大学歯学部物理学教室〒101―8310 東京都千代田区神田駿河台 1―8―13（受理：2003 年 9 月 24 日）

Department of Physics Nihon University School of Dentistry
1―8―13 Kanda―Surugadai, Chiyoda―ku, Tokyo 101―8310, Japan― 1 ―日本大学歯学部紀要 31, 1―7，2003

を備えた「重力加速度―ボルダの振り子」実験の振動周期を周期検出回路で計測したのち，その計測処理システムを研究・開発し，報告しの計測データをパソコンで処理して得た。

1）

た 。

今回，この周期検出回路をマイクロコント

報告した計測処理システムは，従来の測定法ローラを用い，ポートの状態を検出・処理すると比較し，周期計測における人為的ミスを取り回路を新たに考案・自作した。なお，マイクロ除くとともに，周期計測を簡素化，効率化する

コ ン ト ロ ー ラ は Microchip 社 製 PIC16F84（以ことは認められた。しかし，振動周期を検出す後，PIC と記す）を用いた。

るサンプリング周期の精度に起因する測定値のまた，送信された計測データから振動周期を誤差，バラツキがみられ，振動周期の検出をよ算出・表示する振動周期測定用プログラム，周り高精度なものに改良・開発することが必要と期データを抽出する周期データ抽出プログラされた。

ム，そして重力加速度を算出するプログラムとこの観点から，A/D コンバータ回路の代わりにマイクロコントローラを用いた周期検出回から成る重力加速度測定ソフトウェアを開発した。

路を考案し，精度の高い測定値を得ることがで振動周期測定用プログラムは，Microsoft Vis-きる計測処理システムの研究・開発を行った。

ual C++（以後，VC++と記す）
を用いて開発・作成した。周期データの抽出と重力加速度の算出

重力加速度測定の計測処理システム

は，表計算アプリケーションソフト Microsoft

1．計測処理システム構成の概要

Excel 2000（以後，Excel と記す）に付属の Visual「重力加速度―ボルダの振り子」実験の計測

Basic Application（以後，VBA と記す）で作成し処理システムは，ボルダ振り子周期検出装置（以たマクロプログラムと，Excel の表計算機能を後，周期検出装置と記す）と，計測データから組み合わせて処理した。

重力加速度を求めるソフトウェアを備えたパソ

なお，実験に供したボルダ振り子は，中村理

コンとで構成した（図 1）。なお，使用したパソを用い科機器社製ボルダの振り子（VP―40 N）

コンは Dell 社製 Inspiron（ PP01L ）で， OS はた。ただし，ボルダ振り子の金属球に取り付けWindows XP である。

る金属線を 1.1019 m と 1.4172 m の 2 種類の長ボルダ振り子の振動周期は，光スイッチと周期検出装置の振動検出回路で振動を検出し，そさとして実験に用いた。
2．ボルダ振り子の周期検出装置
ボルダ振り子の振動周期を計測する周期検出装置（図 1）
は，振動検出回路，周期検出回路および電源回路で構成した。
①振動検出回路
振動検出回路は，ボルダ振り子の金属線が光スイッチ間を横切ったとき，赤外光が一瞬遮られることで発生するスパイク状のトリガパルス波形を，図 2 に示すトリガパルス波形の周期に同期したパルス波形（以後，同期パルス波形と記す）に波形整形するために用いた。
光スイッチ間で生じるトリガパルス波形を，

図 1 計測処理システム構成図― 2 ―パソコンを利用した学生実験課題の開発研究路を用いたが，そのサンプリング周期が 0.1 secであったため2），この精度に起因する測定値に誤差がみられた。そこで今回，このパルス間隔Tw をより高い精度で検出するため，図 3 に示すように PIC のポート端子に同期パルス波形（図 2）を入力し，その ON 状態，OFF 状態を検出して外部クロックによってパルス間隔 Tw を0.001 sec の精度で計測する周期検出回路を，
PIC16F84 と周辺回路および RS232C 用 IC とを
図 2 トリガパルス波形と同期パルス波形用いて構成した。
図 3 中に示す PIC の OSC 端子（OSC 1，OSC

PIC のポートに直接入力する方法は，PIC の2）には，4 MHz のレゾネータで作製した発信ポートの ON 状態，OFF 状態を検出する閾値

回路を付加し，PIC を 4 MHz のクロックで動電圧が TTL レベルの 2.5 V 固定であるため，ト作させた3）。この発信回路には，14 ステージのリガパルス波形の振幅がこれを越えて初めて検バイナリ・リップル・カウンターを接続して出が可能となる。しかし，この閾値電圧を越え244 Hz の外部クロックを発生させた。ついでるトリガパルス波形を得るには，光スイッチ間PIC の RA 4 端子（タイマー入力端子）に入力しの光軸の調整を正確に行う必要があり，この調た4，5）。

整には煩雑な操作を要する。そこで，トリガパ

RS232C 用 IC は，送信する信号を TTL レベ

ルス波形の振幅が多少小さくても，すなわち光ル＋5 V から 232C レベル±12 V に変換するた軸が多少ズレてもポートの ON 状態，OFF 状めに，RS232C ドライバー（MAX232CE）を用い態を検出するためには，閾値電圧を TTL レベた。また，通信は送信のみとした。
PIC でのポート処理は，ポート検出用端子にルの 2.5 V より小さい値に設定できる振動検出

入力された 同 期 パ ル ス 波 形 を TTL レ ベ ル の回路が必要となる。
このため，波形整形のための回路をレベルコ

ON あるいは OFF のいずれの状態であるかをンパレータ回路，ワンショット・マルチバイブ検出したのち，ポートが ON 状態あるいは OFFレータ回路およびエッジ・トリガ・フリップフ状態のいずれかが保持されている間，PIC16F84ロップ回路で構成した。この 3 つの回路を用いた振動検出回路は，先に報告したものと同じである1）。
②周期検出回路
学生実験において重力加速度の値を十分な精度で求めるには，振動検出回路から出力された同期パルス波形のパルス幅の値すなわちパルス間隔 Tw を高い精度で検出することが必要となる。
先の計測処理システムの周期検出回路では，このパルス間隔 Tw の計測に A/D コンバータ回― 3 ―図 3 周期検出回路

日本大学歯学部紀要 31, 1―7，2003に内蔵のタイマ 0（8 bit カウンタ）
で 244 Hz の外部クロックのパルス数をカウントした。
このポート処理を実行するプログラムは，プ
ログ ラ ム ソ ー ス コ ー ド を MPASM（Microchip社）でマシン語に変換のち，PIC の 1024 ワードのフラッシュメモリに書き込んで用いた。
なお，フラッシュメモリへの書き込みは，FirstPick（Micro Application Laboratory 社）の Writerを用いた。
PIC の RS232C 通信プログラムは，アセンブ

図 4 振動周期測定用プログラムの手順

ラ言語で新たにプログラムを作成して用いた。
なお，通信フォーマットは，通信速度：9600「通信ポートのコントロール」は，パソコンbps，データ長：8 bit，ストップビット：1 bit，の COM 1 のポートを使用する設定とし，PICパリティチェック：無しで，非同期シリアル通の通信フォーマットに合わせた通信パラメータ

信のインターフェース（以後，RS232C と記す）をプログラムに直接記述して行った。

を介してパソコンに送信した。

「計測データの取得」では，ポートが ON 状

③電源回路

態あるいは OFF 状態の 244 Hz のパルス数 が電源回路は，市販の AC―DC アダプタ（出力PIC から 3 バイトで送信されるため，この 3 バ

9.5 V，200 mA）と CMOS 3 端 子 レ ギ ュ レ ー タ

イトのデータを配列変数に格納して取得した。

で構成した。出 力 電 圧 は＋5 V で，100 mA の「パルス間隔 Tw の算出」では，配列変数に電流が供給できるように設計した。また，配線格納したパルス数に外部クロック 244 Hz で定は PIC の高周波動作での安定と，ノイズを吸まる 1 カウント 4.09 msec を乗じてパルス間隔収するため，電源ライン幅を太くした。

Tw を算出した。

3．重力加速度測定ソフトウェア「振動周期の算出」では，ON 状態，OFF 状

重力加速度測定ソフトウェアは振動周期測定

態のパルス間隔 Tw を足し合わせて振動周期を用プログラム，収集した振動周期データから振求めた。

動周期を抽出する周期データ抽出プログラム，「振動周期データの収集と表示」では，図 5および重力加速度を算出するプログラムから構に 示 す よ う に，得 ら れ た 振 動 周 期 を 順 次 エ成した（図 1）。

ディットボックスに表示し，250 個の振動周期①振動周期測定用プログラムが収集された時点で，図 5（図中，右下）に示す

振動周期測定用プログラムは，PIC でカウントされた外部クロックのパルス数からパルス間Excel へのデータ転送を実行するメッセージボックスを表示させた。

隔 Tw すなわち振動周期を算出する VC++で作「Excel へのデータ転送」では，メッセージ成したプログラムである。図 4 は，その処理手ボックスの OK ボタンをクリックして得られる順を示したものである。

イベントと Get Module File Name 関数を用い振動周期の収集数は，測定精度を向上させるて，重力加速度を算出するためにあらかじめ用ために 250 個とし，個々の値を順次ディスプレ意した xls ファイルのパスを取得し，Excel をイに表示した。

起動させてそのファイルを開いた。
つぎに，
振動― 4 ―

パソコンを利用した学生実験課題の開発研究

表 1 重力加速度の測定結果
g（ m/sec2 ）

実験結果

理科年表値

9.7988±0.0001

9.7976319

表 1 に，今回開発した周期検出回路による重力加速度 g の実験結果を示した。
実 験 は，ボ ル ダ 振 り 子 の 金 属 線 の 長 さ を1.1019 m と 1.4172 m の 2 種類とし，その長さで各々 20 回行った。この時の振り子の振れ幅は，光スイッチの光軸を中心に左右約 0.5 cmで振れるよう調整して行った。
表 1 は，重力加速度 g の値が長さに依存せずにほぼ同一であったため，2 種類の長さのデータ数を合わせて平均値（n=40）とし，その図 5 振動周期データの表示画面確率誤差を求めた結果である。

周期データは，DDE（Dynamic Data Exchange）

考の手法によって，ワークシート（Sheet 1）上の指定した各セルに 1 個ずつ入力させた。

察

本学部の物理学実験では，初等力学の重力加②振動周期の抽出と重力加速度算出プログラム速度を定量的に理解させるため，比較的簡便なExcel の Sheet 1 に転送された 250 個の振動装置で精度のよい測定値が得られる「ボルダの周期データの中で最も頻繁に出現する最頻値を振り子」を用いた実験を実施している。この重Mode 関数で求め，その値の±3％ の範囲に分力加速度測定の実験は，振動周期の測定精度を布する 200 個の振動周期を抽出した。その後，向上させるため，20 振動毎の時間測定を連続抽出した振動周期を，コピーコマンドを使用しして 10 回，合計 200 振動をストップウォッチて Sheet 2 の指定した行に貼り付けた。これらで計測している。測定者が常に振動を注視しなの処理は，Excel に付属の VBA で作成したマ

がら，この一連の操作を確実に行うことは，容クロプログラムで処理した。

易なことではなく，しばしば振動回数の数え間つぎに，抽出した 200 個の振動周期データか違いなどの人為的ミスによって不正確な測定結ら 20 振動毎，200 振動までの時間を Excel の果となり，授業進行の弊害となることがみられ

表計算機能を用いて算出したのち，Average 関てきた。

数を用いてその平均値を Sheet 3 上に求めた。

そこで筆者らは，この振動周期計測におけるまた，つぎの近似式から重力加速度 g の値人為的ミスを取り除くため，A/D コンバータをただちに求めることとした。
2g =4 π（ l + r ）T2
l ：金属線の長さとパソコンを用いた測定法の研究開発を企図し，2001 年度にその計測処理システムを考案・自作し，その詳細を報告した1）。

r：金属球の半径

T ：ボルダの振り子の周期

すでに報告した計測処理システムは，ボルダ振り子の振動を検出するための光センサと振動― 5 ―日本大学歯学部紀要 31, 1―7，2003

検出回路，および A/D コンバータのサンプリ

作をコントロールするプログラムでは，外部クング周期から振動周期を算出するプログラムをロックの周波数の変更に即座に追従し，最高 1備えたパソコンとで構成したものである。このμsec の測定精度まで対応できるように，メモ計測処理システムによる測定では，目的としたリ空間を有効に利用するポインタ処理で記述し測定者の人為的ミスは解消できたが，振動周期た。

を測定する（同期パルス波形のパルス間隔 Tw）

先に報告した計測処理システムでは，光ス精度すなわち A/D コンバータのサンプリングイッチの位置調整が煩雑であったのは，振動周周期が 0.1 sec であったため，これに起因する期を半周期のみの計測としたことによる。さら測定結果の誤差がみられた。また，振動周期をに，半周期の計測は測定値のバラツキなど，測半周期のみから算出したため，振り子の振れが定精度への影響もあった。この問題点を解消す

光スイッチの中心から左右均等に振れるようにるため，重力加速度測定ソフトウェアの振動周

光スイッチの位置を調整することが必要とさ期測定用プログラムを半周期から全周期で振動れ，その調整が非常に煩雑であった。

周期を算出するプログラムに変更・修正し，光そこで，今回，振動周期の測定を高い精度にするため，ボルダ振り子周期検出装置を抜本的スイッチと金属線との配置における煩雑さの軽減を図った。に改良するとともに，計測時の調整すなわち光振動周期測定用プログラムは，新たに VC++スイッチの位置調整が煩雑とならない新たな計で作成したが，この利用はすでに開発した周期測処理システムの研究・開発を企図した。

検出回路で用いた Visual Basic（以後，VB と記振動周期の測定精度を向上するには，ボルダす）の MSComm コントロールの処理スピード

振り子周期検出装置（図 1）の周期検出回路で処が遅く，それに伴う送信データ欠落の障害を取理する同期パルス波形のパルス間隔 Tw の測定り除くためである。また，プログラムのインス精度を上げることが必要である。そこで，ポートールでは，OS とした Windows のバージョトの状態と外部クロックから振動周期を検出す

ンに左右されずスムーズなインストールがでる新たな周期検出回路を，マイクロコントロー

き，VB に比較してプログラムのインストールラを用いて独自に考案・自作することとした。

容量も 1/10 と小さい利点がある。

周期検出回路の測定精度は，PIC のポートがボルダ振り子による重力加速度の実験は，金ON 状態あるいは OFF 状態で保持されている属線の長さを 1.1019 m と 1.4172 m の 2 種類に間の外部クロックのパルス数と，その周波数とついて行った。表 1 に示したように，重力加速で決定される。そこで，重力加速度を有効数字

度 g は，9.7988±0.0001 m/sec2 で あ っ た。結

4 桁で得るため，2 秒程度で振動する周期を，果は，理科年表の東京の緯度における値と比較

先の A/D コンバータ回路の 0.1 sec よりさらにして，有効数字 3 桁まで同一であり，学生実験

2 桁下の 0.001 sec 程度で検出することとし，の実測値と比較しても優れた結果であった。ま

周期検出回路の PIC の外部クロックを 244 Hz

た，確率誤差が±0.0001 と非常に小さいことかに設定して 1 カウントを 4.09 msec で検出する

ら，バラツキが小さく，先の計測処理システムことにした。

より安定した測定が行われていた。したがって

周期検出回路で使用した PIC は，プログラ今回開発した周期検出回路とした計測処理シス

ムの書き換えが繰り返して行えるフラッシュメ

テムを学生実験に導入することは望ましいと考モリ型の PIC16F84 を用いた。また，PIC の動える。

― 6 ―パソコンを利用した学生実験課題の開発研究

今後，開発した計測処理システムを授業現場おわりにへ導入し，学生実験での測定結果の分析および今回，研究・開発した重力加速度の計測処理システムは，従来の処理システムに比べて振動操作性について詳細な検討を行いたいと考える。

周期の測定精度を向上させたものである。この
本研究は，日本大学歯学部佐藤研究費の一部に精度を向上するため，周期検出回路をすでに開発した A/D コンバータのサンプリング周期かよった。

ら検出する回路を，ポート状態の検出と外部ク

参考文献

ロックのカウント数から検出する回路に置き換えた回路を設計・自作し，重力加速度 g を測

１）山岡大，藤原忠夫：パソコンを利用した学生
実験課題の開発研究―A/D コンバータを用い定した。また，振動周期の算出法を半周期からた重力加速度の測定―；日本大学歯学部研究全周期とした各回路に対応したソフトウェアを紀要，29, 1―7, 2001.

開発することで，精度の向上のみならず，従来

２）秋月電子通商株式会社：PIC 周波数カウンタのシステム調整の煩雑さを軽減させることとしキット製作マニュアル；秋月電子通商株式会

た。

社，第 2 班，3, 1997.

その結果，重力加速度 g の測定値が十分な

３）村田製作所：CERAMIC RESONATOR アプリ

精度と正確さで得られた。確率誤差が先の計測

ケーションマニュアル；cat.No.P 60―13, 29―31,処理システムに比べて非常に小さいことから，

2002.

高精度の測定が行われたと考えられる。したがって，ボルダ振り子の振動周期の計測には，ポート状態の検出と外部クロックのパルス数計

４）湯山俊夫：ディジタル IC 回路の設計；CQ 出
版，第 5 版，153―156, 1988.
５）藤たかし，若原正年：最新 C―MOSIC 規格表；

測による周期検出回路を用いることが優れていると結論される。

― 7 ―

CQ 出版，44, 1988.