2021年7月31日土曜日

3Dプリンタでケース作り

ワクチン接種後、微熱が続いていて調子が戻りません。今日で接種から5日目ですが、37度ちょっとで頭痛も続いています。夏風邪をひいたのか?

そんな中ですが、先日作った 3x4のキーパッド と 小型液晶モジュール基板 を収めるケースを作っています。Fusion360で設計を行い、3Dプリンタで印刷です。このような四角いケース作りには慣れてきました。と言っても寸法を間違えていて手戻りがありましたが。


ケースの内側には、基板をビス止めするボスがあります。以前、ボスが折れる失敗があったので末広がりにテーパをつけてあります。

基板はタッピングビスで固定しました。あまり強く締めるとネジ穴を舐めそうなので軽めに締めています。

基板取り付け後の表側の様子です。電卓か大昔の携帯電話のようです。

Arduinoは裏蓋側に載せる予定ですが、設計はこれからです。最初からきちんとした図面がある訳ではなく、行き当たりばったりで少しずつ設計と試作を行って徐々に完成形に近づけていくスタイルです。徐々にカタチになって行くのでモチベーション維持にも効果があるかと思っています。途中で辻褄が合わなくなって大きな手戻りになったりもしますが、それも楽しんでいます。

頭痛のため本日の工作はここまで。早く治まって欲しい。

2021年7月28日水曜日

小型液晶モジュール基板作成

昨日、新型コロナウィルスのワクチン1回目の接種をしてきました。念のため本日は休暇をとっています。午前中は腕の痛み程度だったのですが、午後から37度台の熱が出てきました。普段の平熱が35度台なので結構きついです。

発熱する前に小型液晶モジュールを基板に載せてみました。この液晶モジュールはピンピッチが2.54mmではないのでユニバーサル基板に刺さりません。秋月では変換基板とのセット品も販売されています。

今回は、先日 FMラジオ用に作った基板 を流用して載せてみます。FMラジオでは他にFMラジオモジュールとPICマイコン、タクトスイッチなどが載ります。

この基板、レジスト漏れがあるので送料のみ100円で頒布中でまだ残っています。詳しくは こちらをご覧下さい


裏面には液晶モジュールを動かすのに必要なコンデンサ3個と抵抗2個、ピンヘッダを載せました。ピンヘッダのスルーホールは元々PICのICSP用に確保してあったものです。ここから電源とI2C信号を供給するために2本だけジャンパ配線しました。

表側はこんな感じです。

ブレッドボードに挿して、動作確認です。

折角の休みですが不要不急の外出もできないので、工作したかったのですが発熱で怠いので横になってこの記事を書いています。

2021年7月25日日曜日

3Dプリンタでボルト・ナットなど印刷

4連休の最終日、夏バテ気味のカラダに鞭打って、午前中 先日の続きの障子張り替え を2枚行いました。暑さで集中力が落ちてしまい1日2枚が限界です。残り4枚はお盆の夏休みの課題です。

午後は疲れてしまい昼寝してしまったため工作は殆んど進まず、3Dプリンタで作った部品の組み合わせ確認程度です。今回、初めて袋ナットを印刷してみました。内部にサポート材が詰まるので、それをうまく取り除けるかが心配でした。ちなみにM10です。


穴に詰まったサポート材は細身のラジオペンチで捻りとった後、内側ネジ山の谷部分はデザインナイフで削りながら整形し、最後にM10のタップでキレイにして完了です。

タップはアマゾンで購入した金属のネジ山を修正するため(新規のネジを切るものではない)のセットものです。評価ではネジが切れないとか、精度が低いとかありますが、PLA樹脂を切るには十分でした。安いし。なお、ボルト側もダイスで仕上げています。

2021年7月24日土曜日

タクトスイッチで3x4キーパッド試作

今朝、ちょっと思いついて10キー(3x4) キーパッドを作ってみました。ステッピングモータを使った工作に使う予定です。

手元にあった部品で作ったのでユニバーサル基板も狭い切れ端です。基板がもう少し広ければ、4x4にしたかったのですが。取り合えず3x4で間に合います。動作確認用にキーを押すと小型LCDに表示するようにしてみました。まぁ、シリアルモニタでPC側で確認してもよいのですが。

回路は 秋月電子の4x3キーパッド とほぼ同じです。組立説明書 に回路図が載っています。350円なので部品を自分で揃えるならこのキットを買った方が楽です。

スケッチは自分で書いてみました。無保証です。
バグがあったので修正('21.07.26)
//--------------------------------------------------------------
//                                                 21.07.24 naka
//                                                 21.07.26 naka bug fix
//  3x4キーパッド
//--------------------------------------------------------------
#include <FaBoLCDmini_AQM0802A.h>
FaBoLCDmini_AQM0802A lcd;

// Arduino pinアサイン
#define KeyColSize 3
#define KeyRowSize 4
char pin_key_col[KeyColSize] = {8,7,6};
char pin_key_row[KeyRowSize] = {5,4,3,2};
// キーマップ
char key_map[KeyRowSize][KeyColSize] = {
  '7', '8', '9',
  '4', '5', '6',
  '1', '2', '3',
  '0', 'X', 'Y'
};

void setup() {
  // I/O port設定
  int i;
  for (i=0;i<KeyColSize;i++) {
    pinMode(pin_key_col[i], OUTPUT);
    digitalWrite(pin_key_col[i],HIGH);
  }
  for (i=0;i<KeyRowSize;i++) {
    pinMode(pin_key_row[i], INPUT);
  }

  // モニタLCD設定
  SetupLCD();
  dispLCD_msg("KeyPad  ","");
  delay(1000);
}

void loop() {
  char key;
  key = check_key();
  if (key!=' ') {
    disp_key(key);
    while(check_key()!=' '); // キーが離されるまで待つ
  }
  delay(10);
}

char check_key() {
  int key_row,key_col;
  for (key_col=0;key_col<KeyColSize;key_col++) {
    digitalWrite(pin_key_col[key_col],LOW);
    for (key_row=0;key_row<KeyRowSize;key_row++) {
      if (digitalRead(pin_key_row[key_row])==LOW) {
        digitalWrite(pin_key_col[key_col],HIGH);  // bug fix '21.07.25
        return key_map[key_row][key_col];
      }
    }
    digitalWrite(pin_key_col[key_col],HIGH);
  }
  return ' ';
}

void disp_key(char key) {
    static char buff[9];
    static int col = 0;
    if (col==8) {
      dispLCD_msg("","");
      col = 0;
    }
    buff[col++] = key;
    buff[col] = 0;
    dispLCD_msg(buff,"");
}

void dispLCD_msg(char msg1[],char msg2[]) {
  lcd.clear();
  lcd.print(msg1);
  lcd.setCursor(0, 1); // Col,Raw
  lcd.print(msg2);
}

void SetupLCD() {
  lcd.begin();
  lcd.command(0x38);
  lcd.command(0x39);
  lcd.command(0x14);
  lcd.command(0x73);
  lcd.command(0x51);  // 5V
//  lcd.command(0x56);  // 3.3V
  delay(2);
  lcd.command(0x6c);
  delay(300);
  lcd.command(0x38);
  delay(1);
  lcd.command(0x01);
  delay(2);
  lcd.command(0x0c);
  delay(2);
}


土曜日ですが午前中、Aliexpressで購入したUSB Type-C のArduino Nano互換機が郵便で届きました。やはり最近中国からの郵便が早くなっていますね。

今回はType-Cでしたが、昔ながらのUSB-miniBでも安い互換機がなくなってきたようです(探し方が悪いのかも)、今回は送料込みで5個で2000円ちょっとでした。mini-Bでも大差なかった。

1個400円なら、性能の高いSeeeduino XIAO (秋月で580円)の方がよいかも知れませんが、XIAOはIOピンが少ないので、Nanoの出番はまだありそうです。

2021年7月22日木曜日

安価なステッピングモータで遊ぶ(その6、加減速)

ステッピングモータの回転開始時に徐々に回転数を上げ、停止前には回転数を下げるプログラムを書いてみました。脱調予防と内部のギアが壊れることの予防目的です。慣性の大きなものを回す場合には気にする必要がありそうですが、そこまで不要かも知れません。

Arduinoのライブラリ使えば簡単にできると思いますが、勉強のために自作しています。また、同時に複数のモータをそれぞれ独立に制御(回転方向、回転角度、回転速度、加速時間など)を制御できるようにしてみました。


回っている羽根のような部品は、左右で微妙に形が違うのですがどちらも失敗作。この後、3つ目を作りましたがまだ結果を確認していません。

久しぶりに3Dプリンタを酷使していますが、糸引きが多くなってきました。気温が高いからでしょうか? それともフィラメントが吸湿したから?  まぁ、安物の3Dプリンタ なのである程度は仕方ないと諦めています。些細なことより、思いついたことがすぐに試せるのは素晴らしいです。

2021年7月18日日曜日

暑い中、障子張り替えDIY

梅雨明けから急激に暑くなり、すでに夏バテ気味です。汗をかいては冷たいものばかり飲んでいるので食欲もあまりありません。痩せるといいけど不思議と痩せない。暑い中、障子の張り替えを行いました。夏にやるものではないですが、思い立ったら吉日、後回しにするといつやるかわからないので決行です。

省エネだという超強プラスチック障子紙を初めて使ってみます。室内でネコを飼ったりしてないし、小さな子供もいないのですが、普通の障子紙だとやはり破れることもあるのでこれにしてみました。


前に貼ってあった障子紙を剥がす下処理が結構大変です。水で濡らして糊を緩めますが、桟に糊や紙のカスが残ってしまいます。カーボン製のヘラでこそげ落として、雑巾でしっかり拭き取りました。その後、乾くまで待ちます。乾いていないと貼るときの両面テープの接着が弱くなる。ここまでの作業が全体の2/3位です。

プラスチック障子紙は専用の5mm幅の細い両面テープで貼ります。剥がす時はドライヤで温めて剥がすらしい。格子状に両面テープを貼り、端から引っ張りながら貼っていきました。紙と違って糊が乾くと紙がピンと張るということもないようなので、伸ばしながら貼りましたがなかなか難しい。


取っ手の部分だけ二重に貼りました。少し暗く写っている格子です。以前からこの部分に穴が開くことがあったのでこうしてみましたが、プラスチック製なら1枚でも大丈夫だったかもしれない。

張り替える障子はまだあと6枚も残っているのですが中腰作業で疲れるので1日2枚が限界です。夏休みの課題にしましょう。

2021年7月15日木曜日

安価なステッピングモータで遊ぶ(その5、2軸化)

今週、緊急事態宣言が発令されたばかりですが昨日と一昨日は出勤でした。出勤すると当たり前ですが朝晩に遊ぶ時間が少なくなり、昼休みにも遊ぶことができません。以前はそれが普通だったのに在宅勤務に慣れてしまった今、通勤時間や昼休みが勿体ないと思うようになってしまった。

そんな中、2台のステッピングモータを使って2軸にする部品を3Dプリンタで作ってみました。


ステッピングモータの軸に差し込む箇所も3Dプリンタで作製。精度が心配でしたが、なんとかガタもなく収まりました。中に入っていたサポート材を取り出すのに一苦労。

重心が片側に寄っているので反対側にカウンタウェイトを付けた方がよいかも知れない。今のところ水平に回っていますが。

動いている様子です。まだプログラムを書いてなく、2台のモータには同じパルスを与えているので同じ動きです。90度行ったり来たりしています。

3Dプリンタで作った簡単なもので組めることが判ったので、次は3軸? その前にモータの加速減速ができるプログラムを書いたほうがよいかも。重くなってくると、いきなり最速にしたり停止させたりするとギアへの負担が大きくなりそうなので。

2021年7月11日日曜日

デジタルタコメータモジュール(その5、完成)

夜が明ける頃、目が覚めてしまい早朝から工作していました。

タコメータモジュールの裏側は基板むき出しなので埃やベルトの削れカス防止用に3Dプリンタでカバーを作成しました。これは昨日のうちに作っておいたもの。

こんな感じで裏側をカバーします。

同様にフォトリフレクタ基板も取り付け用に小さなケースを作りました。

AC100VからDC12Vに変換するモジュールも基板むき出しでは危険なのでケースに入れます。タカチのSW-40という小さなケースです。昔購入してストックしていたものです。

丁度ピッタリ収まりました。念のために0.2Aのフューズも入れてあります。

電源は、ボール盤のスイッチが付いていた場所が空洞になっていたのでそこに入れます。写真では電源ケースが大きく写っていますが、奥が深いので収まりました。AC100Vもここからとりました。ボール盤の電源をオンにするとタコメータにも給電されます。

タコメータ、フォトリフレクタはベルトケースの蓋に取り付けました。タコメータは差し込んで、裏蓋を被せたらしっかり固定できました。フォトリフレクタは両面テープで貼り付けた後、念のためにホットボンドで周りを補強してあります。

フォトリフレクタの反射板はプーリにアルミテープを貼りました。実験では白い紙でしたが、紙は汚れそうなのと、アルミテープの方が反射率が高そうなので。

試運転です。一番回転数の高いベルト設定です。ボール盤の仕様では3,000rpmなのでまあまあ合ってる。


中間の回転数。仕様では1,300rpmです。前に試した時よりは仕様に近くなった。アルミテープを反射板にしたのがよかったのか?

一番遅い回転、仕様では450rpmです。

以上で完了です。前にも書きましたがこのタコメータは元々エンジンの回転数を表示する目的のものです。そのためか表示の更新頻度があまり早くなく、数字も細かくは変化せず段階的です。それがデジタル?

ボール盤に負荷をかけても回転数表示は中々変わらないです。鉄の部材に大きな穴でも開けようとすれば変わるかもしれませんが。


2021年7月9日金曜日

デジタルタコメータモジュール(その4)

最近、土曜日の午後に仕事がある(在宅です)ので、今日の午後も代休です。久しぶりに少し遠くのスーパまで買い出しに行きました。土日は結構密になるし、レジが混むので敬遠していましたが、今日は空いていてよかったです。

帰宅後、デジタルタコメータのボール盤への取り付け方法を検討。ケースは使わずに直接取り付けることにしました。

RYOBIのシールをヒートガンで温めて剥がした後、残った接着剤をエターナルで拭き取りました。

ガイドのためにマスキングテープを貼ってリュータで削っていきますが、この作業が思いの外大変でした。鉄板が結構厚いのとリュータの砥石が非力です。なお内側のプーリやベルトにはビニールをかけて鉄粉などが付着しない様にガードしてあります。

結局2時間近くかかってようやく開きました。ピッタリ収まる様に微調整するのが大変。棒ヤスリも使いましたがなかなか削れない。

リュータの砥石はガンガン減るし、割れます。写真左上が新品です。小さなワッシャの様になったのは割れたもの。メガネをかけているので、保護メガネは使いませんでしたが、割れた破片が飛んでくるのであった方が安全です。


タコメータモジュールの枠だけ差し込んでみました。取れなくなると困るので仮です。奥までは入れていません。

切り口が錆びるとイヤなので、黒ラッカをスプレィしました。

鉄と砥石の粉塵まみれになったので、今日の作業はここまでです。防塵マスクをし忘れたのであまりよろしくなかったかも。

2021年7月8日木曜日

安価なステッピングモータで遊ぶ(その4、動画とスケッチ)

安価なステッピングモータで遊ぶ(その3)の動画とスケッチです。
    

適当に書いたスケッチです。正しくないかも知れません。無保証です。

Aruduino nanoとステッピングモータドライバ、タクトスイッチ、小型LCDの接続はスケッチの先頭に#defineしています。スイッチの反対側のピンはGNDです。

時計の秒針のように精確な1rpm(回転/60秒)を実現するために、Timer1割り込みでパルスを作って回転/5秒(12rpm)を基準にしています。1回転4秒でも回りましたが、5秒の倍数にしたほうがrpmを細かく分けられたのでこうしました。
//------------------------------------------------------------------
//                                                     21.07.07 naka
// ステッピングモータのテスト
//   P1-P4: ステッピングモータのドライバの各ピン
//   SW1  : タクトスイッチ(アクティブLow) 回転方向切り替え
//   SW2  : タクトスイッチ(アクティブLow) 回転角度切り替え(+90度)0度は連続回転
//   SW3  : タクトスイッチ(アクティブLow) 回転RPM切り替え(1~12)
//   SW4  : タクトスイッチ(アクティブLow) Start/Stop
//   SDAPIN,SLCPIN  : 小型液晶ディスプレイのI2C
//
//   Timer1割り込みで5秒/回転(2,048Step)するパルス409.6Hzを生成
//------------------------------------------------------------------
#define P1  2
#define P2  3
#define P3  4
#define P4  5
#define SW1 6
#define SW2 7
#define SW3 8
#define SW4 9
#define SDAPIN  A4
#define SCLPIN  A5
#include <FaBoLCDmini_AQM0802A.h>
FaBoLCDmini_AQM0802A lcd;

#define steps_per_rotation 2048
volatile int timer1_flag;
volatile int ph_cnt,rpm_cnt,deg_cnt;
int          rpm_i,rpm_mag,dir;
long         deg,deg_step;
int          run_flag;
int rpm_tbl[6][2] = {1,12,  // 1rpm, 5秒を12倍
                     2,6,   // 2rpm
                     3,4,   // 3rpm
                     4,3,   // 4rpm
                     6,2,   // 6rpm
                     12,1}; //12rpm, 1: 5秒/回転(これが基準)
void setup() {
  pinMode(P1, OUTPUT);
  pinMode(P2, OUTPUT);
  pinMode(P3, OUTPUT);
  pinMode(P4, OUTPUT);
  pinMode(SW1, INPUT_PULLUP);
  pinMode(SW2, INPUT_PULLUP);
  pinMode(SW3, INPUT_PULLUP);
  pinMode(SW4, INPUT_PULLUP);

  motor_off();
  ph_cnt = 0;

  // Timer1設定
  TCCR1A = 0;
  TCCR1B = 0;
  // 5秒/回転  2048/5 = 409.6Hz
  // 1/409.6 = 0.00244140625 sec
  // 0.00244140625*16MHz = 39,062.5 (0.5は割り込み交互に吸収)
  TCNT1 = 26474;         // offset 65536-39062 = 26474  と
                         //        65536-39063 = 26473  を交互
  TCCR1B |= (1 << CS10); // プリスケーラ 1

  // モニタLCD設定
  SetupLCD();
  dispLCD_start();
  
  rpm_cnt = 0;
  rpm_i   = 0;
  rpm_mag = rpm_tbl[rpm_i][1]; // 基準5秒/回転の倍数
  dir     = 0;  // 右回転
  deg     = 0;  // 90度
  deg_step = steps_per_rotation * deg / 360;  // ステップ数
  deg_cnt = 0;

  dispLCD();
  run_flag = 0;
  TIMSK1 |= (1 << TOIE1); // Timer1イネーブル
}

byte ph1[4][4] = { // 1相励磁
  1,0,0,0,
  0,1,0,0,
  0,0,1,0,
  0,0,0,1
};

ISR(TIMER1_OVF_vect) {
  if (timer1_flag==1)
    TCNT1 = 26474;
  else
    TCNT1 = 26473;
  timer1_flag ^= 1;

  rpm_cnt+=1;
  if(run_flag==1 && rpm_cnt==rpm_mag) {
    if (deg_cnt<deg_step || deg_step==0) {
      digitalWrite(P1,ph1[ph_cnt][0]);
      digitalWrite(P2,ph1[ph_cnt][1]);
      digitalWrite(P3,ph1[ph_cnt][2]);
      digitalWrite(P4,ph1[ph_cnt][3]);
      if (dir==0)
        ph_cnt = (ph_cnt+1)%4;
      else {
        ph_cnt -= 1;
        if(ph_cnt<0) ph_cnt = 3;
      }
      rpm_cnt = 0;
      deg_cnt++;
    }
    else if (deg_cnt == deg_step) { // 規定数回転したのでstop
      run_flag = 0;
      motor_off();
    }
  }
}

void loop() {
  checkSW(); // タクトスイッチ状態確認
}

void checkSW() {
  if (digitalRead(SW1)==LOW) { // direction
    dir ^= 1;  // 回転方向逆転
    dispLCD();
    while(digitalRead(SW1)==LOW);
  }
  else if (digitalRead(SW2)==LOW) { // rpm
    rpm_i   = (rpm_i+1)%6;
    rpm_mag = rpm_tbl[rpm_i][1];
    rpm_cnt = 0;
    dispLCD();
    while(digitalRead(SW2)==LOW);
  }
  else if (digitalRead(SW3)==LOW) { // degree
    deg += 45;
    if (deg>360) deg = 0;
    deg_step = steps_per_rotation * deg / 360;
    deg_cnt = 0;
    dispLCD();
    while(digitalRead(SW3)==LOW);
  }
  else if (digitalRead(SW4)==LOW) { // Start/Stop
    run_flag ^= 1;
    if (run_flag==0) motor_off();
    deg_cnt = 0;
    rpm_cnt = 0;
    while(digitalRead(SW4)==LOW);
  }
  delay(10); // チャタリング回避
}

void motor_off() {
  digitalWrite(P1,LOW);
  digitalWrite(P2,LOW);
  digitalWrite(P3,LOW);
  digitalWrite(P4,LOW);
}

void dispLCD_start() {
  lcd.clear();
  lcd.print("STEPPING");
  lcd.setCursor(0, 1); // Col,Raw
  lcd.print("   MOTOR");
  delay(1000);
  dispLCD();
}

void dispLCD() {
  char buff[10];
  char dir_txt[2];

  if (dir) strcpy(dir_txt,"L");
  else     strcpy(dir_txt,"R");

  lcd.clear();
  lcd.setCursor(0, 0); // Col,Raw
  sprintf(buff,"%s %3dDEG",dir_txt,deg);
  lcd.print(buff);
  lcd.setCursor(0, 1); // Col,Raw
  sprintf(buff,"   %2dRPM",rpm_tbl[rpm_i][0]);
  lcd.print(buff);
}

void SetupLCD() {
  lcd.begin();
  lcd.command(0x38);
  lcd.command(0x39);
  lcd.command(0x14);
  lcd.command(0x73);
  lcd.command(0x51);  // 5V
//  lcd.command(0x56);  // 3.3V
  delay(2);
  lcd.command(0x6c);
  delay(300);
  lcd.command(0x38);
  delay(1);
  lcd.command(0x01);
  delay(2);
  lcd.command(0x0c);
  delay(2);
}
//------------------------------------------------------------------
// EOF
//------------------------------------------------------------------

2021年7月6日火曜日

デジタルタコメータモジュール(その3、電源モジュール)

ボール盤に取り付けるタコメータ のためにAliexpressで注文していた電源モジュールが届きました。最近、中国からの到着が早くなってきた気がします。

入力AC70-270V、出力DC12V、300mAの小さな変換モジュールです。2個+送料で250円くらいだった気がするので1個125円です。写真の方眼は10mmなのでとても小さい。

自前でコンデンサを使ったトランスレス電源を作るより安くて小さくて容量もとれますね。ちょっと耐久性は心配だけど。

100Vを繋いでみました。赤いLEDが光るのは予想外でしたが、通電状況がわかってよいです。出力は若干低めの11.88Vでした。無負荷だからか?


タコメータとフォトリフレクタを繋いでみました。ちゃんと動いているようです。


12Vと表示されたのでテスタで測ってみると、ちゃんと12V出ていました。やはり無負荷だと低く出るようです。

ボール盤への取り付け方法をどうするか思案中。タカチのケースに収めるか、3Dプリンタでケースを作るか、直接ボール盤のベルトのケース(蓋)に組み込むか。

2021年7月4日日曜日

安価なステッピングモータで遊ぶ(その3)

雨と気圧が低い日が続いているためか少々頭痛がします。ひどくはないですが、何となく体調がよくない。今日は都議会議員選挙の投票に行ってきましたが、雨で投票率が低かったのではないかと思う。早く晴れが戻って欲しいが、来週の天気予報はずっと雨と曇りです。

昨日の 続きでステッピングモータの制御プログラムを修正してみました。4つのタクトスイッチとLCDを付けて、回転方向、回転角度、速度(RPM)を指定できます。4つ目のスイッチはスタート/ストップ。


Timer1割り込みを使い、5秒ピッタリで1回転(2048ステップ)するようにしています。12RPMです。これを基準に他の回転数、最遅1RPM(1分で1回転)を作りました。Arduinoのステッピングモータ用ライブラリを使った方が簡単かもしれませんが、色々試したくてスクラッチで作ってます。

木片でモータを固定する台座を作りました。


こんな感じで収まります。モータの放熱を考えるとあまりよろしくないですが、実験程度の短い時間なら大丈夫でしょう。

MDFから切り出した円板を載せて、ターンテーブルです。

軽いものなら十分に回ります。ただし回転中に回転方向を変えると、ギアのバックラッシュの影響もあって少し動きが悪いです。重いものを載せているとギアが破損するかも。起動と停止時はゆっくり回さないと危なそうです。

今は軸で重量を支えていますが、本格的に作るなら写真のようなベアリングを使う方がよさそうです。これは以前、塗装のための回転台を作ろうと思って買ったもの。大きなものは回る中華テーブルなどに使われています。

需要があるか不明ですが、近日中にスケッチと動画をアップします。

2021年7月3日土曜日

安価なステッピングモータで遊ぶ(その2)

先日試した安価なステッピングモータ の軸から力を取り出すための部品を作成しています。軸の直径はφ5mmですが、すべり防止のために2面が平らになっていてそこの厚さは3mmです。その形に合わせてアクリル板からCNCで削りだしてカラーを作りました。
 
カラーの厚さは5mm、外形φ10mmです。軸にピッタリだったので圧入でも大丈夫でしたが、一応φ2mmのタップを切り、ビスで固定できるようにしています。手元にイモネジが無かったので皿ビスです。
 

カラーだけでは力を取り出せないので、サーボモータに付くような羽根も切り出してアクリル接着剤で貼り付けました。羽根の厚さは2mmです。



ステッピングモータに取り付けて回転させているところです。よい感じです。この先に何を繋ぐのかまだ思いつきません。このままだとネギ振りになってしまいそう。



もうひとつ、円盤も切り出しました。円盤の厚さは2mm、直径φ30mmです。中心をカラーの直径φ10mmでザグって、センターがでるようにしています。 



こちらもアクリル接着剤で固定し、皿ビスもつけています。


ターンテーブルにできないかと、6mm厚のMDFをφ200mmで切り出して、中心を上記φ30mmの円盤が収まるようにザグっています。とにかくセンターがでないと、回転させてもかっこ悪いので、このようにしました。



本日はここまで。明日、モータを固定して動かしてみる予定です。