Arduinoで磁気浮上装置の自作です。Arduinoとホールセンサーで磁石の水平位置を検出してみました。
手に持っているのはネオジム磁石です。Arduino+ホールセンサーで磁場を計測して、位置を可視化してます。検出範囲はそれほど広くは無いですが割と細かな位置を検出できる感じです。
いきなり浮上装置の全てを自作するのは難しそうだったのと、部品を個別で入手する手間や構造理解・検証のためにまずは磁気浮上のキット物を入手して検証はじめてます。
で磁気浮上装置の構造を物やWEBで調べていると、だいたいの物はネオジム磁石(浮かせる物)の位置を安定させるため、コイル(電磁石)で水平位置のバランスを保っている物がほとんど。というか調べた物は全てそういった仕組みを持っていました。まずはネオジム磁石の位置をArduino使って把握してみました。
▼キットの部品・基板をそのまま使って実験▼
▲ホールセンサーが3つ入っていたのですが、今回は2つのみ使用。基板もそのまま利用します。このキット説明書の類が一切添付されてないんですね。。問題無く完成させるのは相当難しい気がします。
▼ホールセンサーを半田付け▼
▲磁石の位置を把握する方法は割と単純。x軸方向、y軸方向にそれぞれ直行するようにセンサーを配置して各々で磁場を測定。各軸方向の距離を算出します。
▼Arduinoと接続▼
▲ワイヤーでArduinoと接続。基板利用で検証できるので楽です。。
▼回路図▼
▲回路図という程の物ではないですが、基板パターンとArduinoの結線はこのような感じです。
▼ソース(スケッチ)▼
// 2023/04/09 imo lab. http://garchiving.com // arduini UNO uint16_t magX, magY; void setup() { Serial.begin(115200); ADCSRA &= 0b11111000; ADCSRA |= ( 1 << ADEN);// ADC Enable ADCSRA |= 0b00000100; } void loop() { magX = analogRead(A0); magY = analogRead(A1); Serial.print(magX); Serial.print(","); Serial.println(magY); }
▲ホールセンサーは磁場の強さを電圧値で返すので、analogReadで値を取得しています。取得した値をbit値のままシリアル出力しているだけのソースです。
で取得したデータをリアルタイムで可視化しているのが記事冒頭のGIF動画になります。狭い範囲ですがわりと細かく位置を把握できる感じ。ただ、電磁石に通電しながらだとセンサーがどういった反応するのか少し気になりますが今後の検証です。
コメント