
速度フィルタをいじった日時やその時の記憶は明確にありますが、それがこんなトラブルを招くとは思いもよらず、解決するのに丸一日費やしてしまいました。 続きを読む…
速度フィルタをいじった日時やその時の記憶は明確にありますが、それがこんなトラブルを招くとは思いもよらず、解決するのに丸一日費やしてしまいました。 続きを読む…
自作CNC3号機の製作記録です。2017年構想、少しずつ部品を集め、完成は2019年です。いっぺんに書ければよいのですが少しずつでも公開していきます。
カバーも含めると150kgを超えるはずなので、アングル材を溶接してしっかりしたものにする予定でしたが、近所の鉄工所が辞めてしまったので木製で自作することにしました。
ボール盤スタンドも木製です。これも壁に固定してあり3.11の震度5強にも一応問題なく耐えていたので、角材を太くして同じようにします。設置スペースは限りなく狭いので、組み立てながらの設置になります。
床の補強にコンパネを重ね、オイルパンは板金屋に頼み、脚は米松材90mm角。
二号機を分解したときの廃材で、壁とのジョイントとオイルパンのベースに。
構造材は業者に頼み、耐震と防振を兼ねて壁とジョイントさせながら組み立てていきます。ケースの背面部分も後から挿入できないので初めに組んでおく。
なお、このジョイント部分は本体を組んでしまうと、工具が入らず外すことができないので「恒久固定」となり、家屋と一心同体になりました。
CNCのベース部はアジャスターブロックとベース板、門型支柱用のイケールで構成される。組み上げたあとレベルをとっておく
X軸とZ軸を組み上げて直交を正確にとってから、支柱に取り付ける。この時点で相応の重量なので、ジャッキを使って慎重に取り付けました。神経を使う作業です。
一応、直動機構まで組みあがりました。組みあがった状態で、スコヤとピックゲージでさらに平行と垂直を取っておく。微小な調整機構がないので、ボルトのバカ穴の範囲でシムを挟んだりしながらの作業です。
続く
A軸テーブルを使って樹脂パーツを旋削加工しました。回転速度など改善の余地はまだまだありますが、旋盤をCNC化せずともNC旋削できそうだ、と目途が立ちました。
A軸をスピンドルに置き換えればMillモードでも可能と思われますが、NCVCの旋盤モードは荒削りパスも出してくれるので重宝します。今回初めてMach3turnを使ってみました。
4爪連動は硬い材料をつかむのには向かないと分かっていながら、ついついポチッとしてしまいました。中華製で7K円台の格安品です。名称は「K12-80(G)」。φ80mm小型サイズで、4爪インディペンドチャックと共通の取り付け部なので簡易A軸アダプタで試してみました。 続きを読む…
自作CNC3号機の製作記録です。2017年構想、少しずつ部品を集め、完成は2019年です。いっぺんに書ければよいのですが少しずつでも公開していきます。
2号機と同じTスロット形状のテーブルにします。2号機のテーブル製作は知人の汎用機を借りてSS400で作ったものでした。こんどは2号機があるうちにテーブルだけでも自分で作ってしまおうと、いちばん最初に手掛けました。 続きを読む…
目新しいことではないですが、ボード「Nucleo-F446RE」をmbed環境で手軽に使う、です。久しぶりにこのボードを使う機会がありまして、覚書きとして、過去のコードを引っ張り出してみました。1からコードを書くよりmbedの初期化を利用して楽にコーディングできます。
STM32ーM4なら、ほぼ共通でつかえます。
相補PWMが使用できるタイマーモジュールはTIM1とTIM8です。数あるPWM出力からTIM1/8に関連するポートを抽出します。mbedで使うには、Nucleo-F446REのボードページから「PeripheralPins.c」を参照し、TIM1とTIM8が関わるポートをPwmOutで設定します。ボードのピンは固定されているので、下記の設定とともにピンレイアウトも決まります(これは仕方ないです)。
// *** Complemantry 3Phase PWM output ***
PwmOut PWMU2L(PA_8); // PWM2_1 1L
PwmOut PWMU2H(PA_7); // PWM2_1N 1H
PwmOut PWMV2L(PA_9); // PWM2_2 2L
PwmOut PWMV2H(PB_0); // PWM2_2N 2H
PwmOut PWMW2L(PA_10); // PWM2_3 3L
PwmOut PWMW2H(PB_1); // PWM2_3N 3H
PwmOut PWMU1L(PC_6); // PWM1_1 1L
PwmOut PWMU1H(PA_5); // PWM1_1N 1H
PwmOut PWMV1L(PC_7); // PWM1_2 2L
PwmOut PWMV1H(PB_14); // PWM1_2N 2H
PwmOut PWMW1L(PC_8); // PWM1_3 3L
PwmOut PWMW1H(PB_15); // PWM1_3N 3H
標準でTIM1はmbedOSでイニシャライズしてあるのでパラメータを上書きします。TIM8は個別にレジスタをセットします。PwmOut宣言で定義してあるので、該当ポートは「PWM出力」と定義されています。これに肉付けしていくのです。
まあ、TIM8は1から設定しているのでTIM1もわざわざmbed関数をつかうこともないですが・・
というわけで、初期化ルーチン(自分の装置に合わせてあります)。
void init_PWM(void) {
PWMU1L.period_us(100); // TIM1の仮の初期periodをAPIで設定しておく
PWMV1L.period_us(100); // TIM1の仮の初期periodをAPIで設定しておく
PWMW1L.period_us(100); // TIM1の仮の初期periodをAPIで設定しておく
TIM1->CCR1 = TIM1->CCR2 = TIM1->CCR3 = 0; // 初期デューティ0
TIM8->CCR1 = TIM8->CCR2 = TIM8->CCR3 = 0; // 初期デューティ0
TIM1->CR1 &= 0xfffe;
TIM8->CR1 &= 0xfffe;
TIM1->ARR = PWMDIV; // PWM division(period us)=PWMDIV(1000)
TIM1->CCER = 0x0555; // 相補PWM enable
TIM1->BDTR = 0x805a; // DeadTime:5.5556ns*5ah(90)=500ns(b7-5:0xx)
TIM1->PSC = 8; // Prescale=(PSC+1)*5.55556nS 20KHz
// 使用する各ポートはAF3を使う
GPIOA->AFR[0] |= 0x00300000; // PA5
GPIOA->AFR[1] |= 0x00000000;
GPIOB->AFR[0] |= 0x00000000;
GPIOB->AFR[1] |= 0x33000000; // PB14,15
GPIOC->AFR[0] |= 0x33000000; // PC6,7
GPIOC->AFR[1] |= 0x00000003; // PC8
// 使用する各ポートはAFRにセット
GPIOA->MODER |= 0x00000800; // PA5
GPIOB->MODER |= 0xA0000000; // PB14,15
GPIOC->MODER |= 0x0002A000; // PC6,7,8
RCC->APB2ENR |= 0x2; // TIM8 clock enable
TIM8->CR1 = 0x1; // TIM8 counter enable
TIM8->CR2 = 0;
TIM8->ARR = 1000; // PWM division(period us)=PWMDIV(1000)
TIM8->CCMR1 = 0x6868; // OC1,OC2:PWM mode
TIM8->CCMR2 = 0x0068; // OC3:PWM mode
TIM8->CCER = 0x0555; // 相補PWM enable
TIM8->BDTR = 0x805a; // DeadTime:5.5556ns*5ah(90)=500ns(b7-5:0xx)
TIM8->DIER = 0;
TIM8->EGR = 3;
TIM8->PSC = 8; // Prescale=(PSC+1)*5.55556nS 20KHz
// TIM1->CNT = 0;
// TIM8->CNT = 0;
TIM1->CR1 |= 0x1;
TIM8->CR1 |= 0x1;
}
自分のシステムに合わせて設定してあります。20KHz、分解能は1000、デッドタイムは500nsです。用途に応じて設定してください。バッファ書込みが有効なので値更新でPWMが乱れることはありません。
コメントしていないレジスタについてはリファレンスマニュアルをご参照ください。AFRについては、TIM1を使うポートは”3″ではなく”1″かもしれませんが、確認しておりません。二つとも同じ周期なので、今回の用途は良しとします。
以上
ロックタイト638は永久固定用の最高強度嵌め合い接着剤です。セットビスでは不安な軸の固定によく使いますが、取り外しを考えたことはありませんでした。今回二回目の取り外し作業で、外せることはわかっていたので記録をとってみました。 続きを読む…
もう20年以上続いている基板にPIC12C509A-04/Pを使っています。久しぶりに50ヶ書き込み作業です。 続きを読む…