■ Plotclockの製作 ■

 2014年に「Johannes Heberlein」氏によって公開された、ホワイト・ボードにサーボ・モーターで時刻を書く時計です。
 時計としての実用性はあまりありませんが、三角関数の計算でサーボモータを制御するプログラムが見事で、コミカルな動きの楽しめる工作です。
 オリジナルは「Arduino」のスケッチですが、BASCOM-AVRのBASIC言語に移植しました。


回路の解説
 
 ・左アーム、右アーム、昇降の3つのサーボモータのPWM信号をAVRで制御します。
 ・サーボモータの電源は5Vなので、AVRと同じ電源に接続しています。
 ・製作では「Arduino UNO」ボードを使用しましたが、プログラム内で3つのサーボの制御ポートを
  自由に選択できますから、任意のAVR回路でも動作します。

 
 ・プログラム内で行われている計算の原理図です。


回 路 図  PDF版 Plotclock_Cir.pdf (126KB)
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

プログラム  テキスト形式 ソースファイル  Plotclock_001.TXT
 BASCOM-AVR用 ソースファイル
 (BASCOM-AVR(製品版)が必要です)
 Plotclock_001.bas
 HEXファイル  Plotclock_001.hex



購入品

開封状態
 
アクリル部品

ビス類
 動 画


製作について
 
・「Aliexpress」で「Plotclock」のキットを購入しました。
・製作図面等は何も付いておらず、同梱のサーボモーターも模造品のようで、付属のビスでは
 固定できなかったので2mmのビスナットで固定しました。
・サーボモータの精度が悪いのと、アクリルのアーム等のしなりが大きく、ペンの移動時にペンの
 慣性で揺れが起きるので、文字がきれいに書けるキットではありませんでした。
・資料が少ない分、色々と調べて工夫する必要がありますが、それも楽しみとして下さい!

・製作の参考サイト。
https://www.thingiverse.com/thing:248009
https://wiki.fablab-nuernberg.de/w/Ding:Plotclock
https://youtu.be/2DZSj8b2RGw

アクリル部品の図面。
https://github.com/9a/plotclock/blob/master/plotclock_beta1.pdf

 
・この製作の回路とは別のAVRポートを使用する場合は、プログラム冒頭の「ポート名の定義」で
 ポートを指定して下さい。

・組み立てで重要なのが、サーボモータに取り付けるアームの位置です。
・プログラムには「キャリブレーション・モード」を用意してありますので、組み立て時に使用します。

1.アームとリフトの組み立て時。
 ・Const Calibration_mode = 1 にしてコンパイルします。
 ・プログラムが起動したら、左アームが2つのアーム用モータに対して水平の位置、右アームが
  2つのアーム用モータに対して水直の位置になるように取り付けます。
  (ギアの刃に対する位置の微調整は、キャリブレーション・モード2で行います)
 ・昇降サーボの位置を、ペンがホワイトボードに描画する位置に取り付けます。

2.サーボとアームの調整。
 ・Const Calibration_mode = 2 にしてコンパイルします。
 ・左右のアームがそれぞれ水平と垂直の位置を交互に繰り返しますから、下記の値をこまめに
  微調整していきます。

  Const Servoleftnull = 1845 '左サーボの水平位置。初期値(1950)
  Const Servorightnull = 760 '右サーボの水平位置。初期値(815)

  Const Servofaktorleft = 638 '左サーボの垂直位置。
   値を小さくすると左へ回転、大きくすると右へ回転。初期値(600)
  Const Servofaktorright = 650 '右サーボの垂直位置。
   値を小さくすると右へ回転、大きくすると左へ回転。初期値(600)

3.イレーザーの待機位置調整。
 ・Const Calibration_mode = 3 にしてコンパイルします。
 ・左右のアームが描画位置(0,0)とイレーザーの待機位置を往復しますから、下記の値を微調整
  していきます。

  Const Eraserwpx = 71 'イレーザーの待機位置[X]。(距離cm) 初期値(75)
  Const Eraserwpy = 44 'イレーザーの待機位置[Y]。(距離cm) 初期値(47)

※ その他、アームの長さや筐体の種類によって、プログラム冒頭の「[Plotclock]の個体差設定」
  を微調整していくことで、描画の精度が上がります。



操 作 方 法
 
 ・シリアルターミナル(パソコン)を接続して、「Tera Term」等のターミナルソフトを起動します。
 ・シリアルポートの設定を、下記にします。
   9,600ボー、パリティー無し、データ・ビット 8、ストップビット 1

 ・プログラムでは、1分ごとに自動で描画を行います。
 ・時間は「Arduino」ボードの水晶(16MHz)でカウントしていますので、電源を切ると「00:00」から
  始まります。
 ・時刻を管理する場合は、別途RTCなどのモジュールを追加して下さい。

 ・ターミナルから4桁の数字を入力すると、時刻設定が行えます。
  例、(12:34) → 1234 + [Enter]
 ・入力のエラー処理は一切行っていないので、キー入力に注意して下さい。

 ・[Enter]キーのみを押すと、描画を行います。

 ・プログラムは[Timeplot]サブルーチンで[_hour]と[_min]変数に対して描画を行いますから、
  BASCOMの時計機能命令で自由に改変して下さい。




   電子工作の部屋 Top へ 前のページへ戻る