投稿

2月, 2021の投稿を表示しています

MAX5142をArduinoで使う

イメージ
  MAX5142(姉妹品MAX5141,MAX5143,MAX5144) のArduinoからのSPI経由での制御のテスト 【MAX5142とは】 https://datasheets.maximintegrated.com/jp/ds/MAX5141-MAX5144_jp.pdf 14bitのDAC。MAX5141はユニポーラー専用、MAX5142は.ユニポーラーでの利用または外付けのオペアンプを使ってバイポーラー(正負の電圧)するための端子が用意される。41,42は入力電圧が5Vの製品で、43,44は3.3Vの製品 SPI接続にてマイコンとは通信をする。 設定コードと電圧の関係は、データシートにみることができ、 ここではユニポーラの動作を確認する。 10進数で8192(2進数で1000 0000 0000 00)が基準電圧の半分の出力で、16383(2進数で1111 1111 1111 11)が最大となる。この点を理解して、コードを送り込めばよいことになる。 データシートのピン配を見ながら接続をする。 CS           D10 (CS:Chip-Select Inputのこと。LOWの時有効) SCLK     D13 (クロック) MISO      D12 (MISO)今回は使わない DIN     D11  (MOSI)  Master out Slave in でArduinoはマスタなので、D11をMAX5142のDINに接続。D12は今回データを受け取らないので未接続とした。 CLRは、非同期にLOWの時、出力をゼロにする。デジタルピンに配線してプログラムからゼロにできるようにしたいのであれば接続するが、今回は使っていない。10kΩの抵抗で5Vに接続。 DIP化には、MSOP(10ピン 0.5mmピッチ) https://akizukidenshi.com/catalog/g/gP-06863/ を使った。 5142の電源供給には、電源バイパス及びグランド管理 としてピン10(GND)と9(VDD)の間にパスコン0.1uFを挿入。 基準電圧(REF)の端子には、このMAX5142のテストのために別途ISL21080CIH315Z-TK (基準電圧1.5V)を用意。 http://download.siliconexpert.com/pdfs

CNC ノイズ対策 シールド線の効果実験

イメージ
 CNCマシーンのノイズ対策 CNCを組み立てる人々は、ノイズ対策は一度はする。同じくノイズに悩まされています。対策の結果、止まらずに動くようになった。 モータにコンデンサーをつける、リミットスイッチの配線にローパスフィルタを入れる、信号をフォトカップラーで独理系にするといった対策が先人達によってなされている。 モーターにもコンデンサーついてるし、ダイオードもつけてみたが、効果がなく(ない訳ではなく、それでも)止まってしまうので、対策に乗り出すことに。対策は要因分析があって事なので仮説立証するところから。 【要因考察】 モータ逆起電力で発生したパルスが要因は間違いなく、回転させずにbCNCから動かしても途中で止まることはない。モータを回転させている時にやはり起こる現象。 モーターで発生したノイズパルスが、隣接するケーブルに電磁誘導されて乗り移るからリミットスイッチが入ってもないのに入ったと検出されるというのがエラー要因(オシロで観測した訳ではないので仮説) 仮説が正しければ、 ①Makerbot design社のスイッチ上のローパスフィルタはノイズ対策としてはあまり意味がない。 https://github.com/gnea/grbl/wiki/Wiring-Limit-Switches に記載と抵抗の値こそ違うが同様の結線にはなる。しかしスイッチ近くにフィルターがあっても、モータに接続されるケーブルから発したパルスが、ケーブルに乗り移るという仮説であれば、ボードへの誘導パルスの防止にはなっていない。(スイッチング時の過渡応答対策という意味はあるかな) 対策→ モータは発生源の近くで対策し、フィルタは、やっぱり先人の人たちのようにボードの近くでボードへの侵入を防ぐべき。 ②Makerbot design社のケーブルは、赤、黒、緑の独立したケーブルで、配線上、モータと並列にどうしても隣接されるところが出てしまう。特にZ軸は避けられない。 対策→ 隣接するケーブルに電磁誘導されて乗り移るのであれば、電磁シールドされたケーブルであれば乗り移らないはず。先人の人達は、このあたりを当然よく理解されていて、コストはかかるがシールド線を使われている。 ①は、キャパシタンスを取り付ける小型の基板とCNCシールドと接続するものを作り、②は3線シールド線に配線を交換する事 【実証実験】

Arduino:アナログ入力安定化

イメージ
Arduinoのアナログ入力でセンサからの電圧を読ませる際に、できるだけ真値に近づけるため読み取った整数から電圧に戻す際に、Vcc=5.00Vとせずに、テスターを当てて実測したVccをスケッチ上変数として入れるようにはしていた。 しかし、PCのUSBを使って電源をとっていると、PCを操作してアプリを立ち上げたりすると読み取り値が変化する事で制御値が揺れる事は気が付いていた。 しかも、せっかくセンサや制御回路を作っても他のPCに接続したらまた電圧が違うので、現場で電圧測定して、スケッチを書き込んでと・・・しなければならない。 これを解消するに、素人としては、Vrefを内部基準にして1.1Vにしてあげて、抵抗をつかって分圧をかけて、5Vを1.1V以内にしてVccを読んであげれば・・・と考えていた(よくある手法らしい) そこは先人の方々!ちゃんと対処法は見出してくださっている http://radiopench.blog96.fc2.com/blog-entry-490.html?sp (↑いつもお世話になっています・・) 何も外部回路をつけなくても、Vccを知る事ができる。テスターと比べた結果1%、40mV程度低くでる。しかし、真値が何か?なのだが、これ重要なのが、他のセンサの値も同じ基準で読むから、これをテスタに合わせる必要もない。必要なタイミングでVccを更新すればVccの変動に対しても安定にあるというお花h氏。 テストに使ったスケッチ void setup() {   // put your setup code here, to run once:   Serial.begin(115200);  } void loop() {   // put your main code here, to run repeatedly:  float Vcc=ReadVcc();  Serial.print("Vcc= ");  Serial.println(Vcc,2);  delay(500); } float ReadVcc(){   long sum=0;   //set up ADC   ADMUX = B01001110;   //bit  REFS1 REFS0 ADLAR - MUX3  MUX2  MUX1  MUX   delay(2

Kicad to gcode by FlatCAM

イメージ
Kicad→gcode by FlatCAM  CNCがまだ製作中で、数々の問題はあるものの、削れるようになってきたのでPCBの加工に向かって準備。Kicad→gcodeの準備。 【FlatCAMダウンロード&インストール】 FlatCAMは、pythonのインストールが必要だとか書いているページがあるが、 https://bitbucket.org/jpcgt/flatcam/downloads/ のインストーラーで一発起動。 使い方は、ここで備忘録に記録するまでもなく、先人の方のすばらしい手順の通りで。後日たどり着けるようにURLをここに。 https://denshikousakusenka.jimdofree.com/cnc/flatcam%E4%BD%BF%E3%81%84%E6%96%B9-1/

CNCマシーンの自作

イメージ
【はじめに】 https://www.thingiverse.com/thing:3508781 上のをベースにしていちから、中華CNCを作製。 既に作ってしまっているが、1から自作する手順の記録. 3Dプリンターはむしろ、CNCを作りたくて購入。 DVDのペンプロッター(費用が安いし)から作りはじめて、いろいろ遊んで、満を持してCNCの自作へ。  写真は、買ってきた線のまま組み立てた段階なので各種配線がゴチャと。 くみ上げていく途中の写真とかはなし。 自分で作った!って満足感と、どうやってリミットスイッチつけようか?と悩み、設計して3Dプリンターで打ち出して・・と組み立てていくのが楽しいです。 使う目的の人は、買った方が安い! 【3Dプリンター部品】 3Dプリンタ部品は、thingiverseに掲載されているままつくると必ず組みあがらない。上記公開されている全体のCAD図(スケッチアップのモデル)においても設計の誤りが確認できる(Y軸のリードスクリュー高さが誤り) 誤っている箇所は、自分でデータから作って作製する。 ・ Y-Ball_bearing_mount と Yステッピングモーターホルダ は少なくとも変更が必要。(リンク先は設計したオリジナルのSTL) Yステッピングモーターホルダ は、thingiverse掲載のままでも使えるが、2020のアルミフレームの下に足をつけて浮かせる必要がある。 ↑Yリードスクリューの高さ基準は、ステッピングモータが20mmのアルミの上面に乗せた際に軸の高さで設計しようとしている。つまり20mmのアルミフレーム上面からステッピングモータの高さの半分が中心軸として再設計 ・それ以外にも、 X軸のキャリア (オリジナルのSTL)に後でリミットスイッチを取り付けるためのネジ穴をΦ2mmぐらいで適当に開けておきました。 また、リニアシャフト保持のSK8が8個いるが、これは3Dプリンターで作製 thingiverseでSK8を検索すると出てくるので、それをそのまま利用。 (SK8 8個必要だが、アルミのものは3000円ぐらいする。) 【部材の調達】購入した部品のコメント 日本国内においては、以下のサイトから入手 アルミフレームやロット→ミスミから購入 型番をそのまま検索すれば出てくる https://jp.misumi-ec.com/