ロボットの腕を電磁石で動かす

#はじめに
小型ロボット開発キット[ベゼリー](http://bezelie.com)は、体全体を使って感情表現することが特徴なので、腕だけを動かすことはできません。そこで今回は、自作の電磁石によって腕を動かす方法をご紹介します。

![2017-11-12 18.21.51320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/26104130-c373-30eb-c37c-ca4cd712fc6f.jpeg)

#対象者
- べゼリーをお持ちのかた、あるいは購入予定のかた。

#特徴
- ボルトにエナメル線を巻いて、電磁石を自作します。
- MOS-FETを使い、ラズパイのGPIOで１A程度の電流をスイッチングします。
- べゼリーのボディに電磁石を内蔵し、腕に永久磁石を取り付けます。

#磁力の計測方法
- まともな磁力計を買うとえらく高くつきますが、今回は大まかな磁力の強さがわかればよいので、簡易的スマートフォンの無料アプリを使うことにします。
- 磁力が計測できるスマホアプリはいろいろあるようですが、今回使用したのはiOS用[Magnetometer Free](https://itunes.apple.com/us/app/magnetometer-free-teslameter-and-emf-detector-tool/id941887515?mt=8)です。

![320x568bb160.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/1958ca76-4977-ea52-b49b-85b4c86d2528.jpeg)

#永久磁石
- べゼリーの腕に永久磁石をつけ、体内の電磁石と反発して動くようにしたいのですが、腕はそもそも軽いので、できるだけ[小さなネオジム磁石をアマゾンで](https://www.amazon.co.jp/dp/B073TWQPGC/ref=twister_B073TW6XT7?_encoding=UTF8&psc=1)購入しました。これは直径4mm、厚み1mmの円柱型なので、べゼリーの腕の内側の窪みにぴったり収めることができます。

![Amazon _ OMO Magnetics 【世界最強マグネット】 強力マグネット 強力磁石 N52 ネオジム磁石 ネオジウム磁石 円柱型 丸型 4x1mm 直径4mm 厚み1mm ニッケルメッキ 専用ケース付(50個) _ マグネット _ 文房具・オフィス用品 - Google Chrome 2017-12-09 23.00.56160.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/143ae961-2898-5062-9e21-bb436d10e521.jpeg)

#電磁石
- 最初はソレノイドを使うことを考えましたが、ネットで簡単に購入できるものだと、小型のものでも本体の長さが20mmあるためべゼリーの体には収まりません。

![2017-12-09 23.53.28320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/f5ead115-1285-ad48-4705-67894aa9bf8a.jpeg)

- 次にインダクタが使えないかと考えました。インダクタであれば直径4mmのものが市販されています。しかし定格電流は200mA程度で、腕を動かすほどの磁力は得られそうにありません。
- 結局、べゼリーのボディに内蔵するちょうどよいサイズの電磁石を自作することにしました。
- 強い電磁石を作るには磁性体の軸が必要です。今回は入手しやすさから「タミヤの楽しい工作シリーズ」に入っていた直径3mm、長さ20mmの丸ビスとナット、ワッシャーを選びました。
![2017-12-09 23.18.47320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/ab771703-1961-541a-9dad-dc6e49a3dd0a.jpeg)
- ビスにワッシャーを挿した後、絶縁するため熱収縮チューブを挿し、さらにワッシャーとナットで蓋をしたら、ドライヤーでチューブを収縮させます。

![2017-12-09 23.23.27320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/0b5e1d8e-cc56-6f02-be40-9bf762f5d63d.jpeg)
- 多くの電流を流すほど電磁石は強くなりますが、そのためには抵抗の小さな電線を多数巻く必要があります。今回は太さ0.4mmのエナメル線を使うことにします。

![2017-12-09 23.26.45320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/0d2dbe48-e541-12b7-45c4-b9b69e519a70.jpeg)
- エナメル線を軸にぐるぐると巻きつけます。筆者は片道３０巻☓５周＝合計１５０巻にしましたが、器用なひとはもっと巻けると思います。巻き終わったら、ほどけないように液性エポキシ接着剤などを塗っておきます。

![2017-12-09 23.42.45320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/940b0a71-37d2-b63e-da02-26d11248c601.jpeg)
- 試しに１Aの電流を流してiPhoneアプリで磁力を調べてみたところ、磁束密度は420マイクロテスラと表示されました。通常時が70、ネオジム磁石は160でしたので、十分な強度がありそうです。　

![2017-12-09 23.56.01320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/8a296f13-d4ba-8f81-16dd-c1bf305b4acb.jpeg)

# べゼリーへの電磁石の搭載
- 完成した電磁石をべゼリーのボディーにぐいっと押し込みます。念のため瞬間接着剤で固定しておくとよいでしょう。
![2017-12-10 00.00.50320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/f6349f8e-99c2-82c2-d9c0-05acdbf43efb.jpeg)


- そのままだと腕パーツがボディに入らないので、腕パーツのウェイト部分をニッパーなどで切り取って小さくします。さらに両面テープで内側にネオジム磁石を貼り付けます。
 ![2017-12-10 00.07.07320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/979f9340-5629-387a-9c65-61a97da3e2c6.jpeg)

- べゼリーのボディに両腕をとりつけ、組み立てます。
![2017-12-10 00.09.09320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/a3232159-b9f9-d85e-4363-feb42c92d661.jpeg)

- べゼリーを台座にとりつけます。
![2017-12-10 00.18.05320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/4c7fc085-427d-650e-449f-ba3c2e4e3ce7.jpeg)

# プログラミング
- ラズパイのGPIO#27を出力に設定し、１秒ごとにon/offするプログラムを作成します。

#サンプルプログラム
```py:sample_output.py

# -*- coding: utf-8 -*-                : 文字コードの指定

# ライブラリの読み込み
from time import sleep                 # sleep(ウェイト処理)ライブラリの読み込み
import RPi.GPIO as GPIO                # GPIO(汎用入出力端子)ライブラリの読み込み

# 初期設定
GPIO.setmode(GPIO.BCM)                 # GPIOをGPIO番号で指定できるように設定
GPIO.setup(27, GPIO.OUT)               # GPIOの27ピンを出力モードに設定

# 関数
def main():
  try:
    print "GPIO 27ピンの出力を交互にオンオフします"
    while True:                        # 繰り返し処理
      print "オン"
      GPIO.output(27, True)
      sleep (1)
      print "オフ"
      GPIO.output(27, False)
      sleep (1)
  except KeyboardInterrupt:            # コントロール＋Cが押された場合の処理
    print "終了しました"
    GPIO.cleanup()                     # ポートをクリア

# 直接実行された場合の処理
if __name__ == "__main__":
    main()


```
#電子工作
- 強力な電磁石を作るには多くの電流を流さなければなりませんが、ラズパイのGPIOが流せる電流は基本的に最大16mA、他に何もしないとしても50mAが限界です。そこでMOS-FET（電界効果トランジスタ）によるスイッチングを行うことにします。
- 今回は[東芝のＮｃｈパワーＭＯＳＦＥＴ「２ＳＫ２２３２」を秋月から](http://akizukidenshi.com/catalog/g/gI-02414/)購入しました。

![I-02414320.JPG](https://qiita-image-store.s3.amazonaws.com/0/60185/49d4c1f6-1f9b-925f-3682-0f7c641d1b11.jpeg)

- 三本足の左からゲート、ドレイン、ソースです。MOS-FETはゲート・ソース間に電圧をかけるとドレイン・ソース間に電流が流れますので、ラズパイのGPIO#27をゲートに、GNDをソースに、別電源と電磁石をドレインにつなげばよいということになります。電流が流れすぎるようならコイルと電源の間に抵抗を入れてください。電源は本当はラズパイ本体とは別にとったほうがよいと思います。

![2017-12-10 01.06.02320.jpg](https://qiita-image-store.s3.amazonaws.com/0/60185/68d61982-922a-3aaf-da54-f42c672d3bbb.jpeg)

- 上記のパイソンプログラムを走らせると、１秒毎に電磁石に電流が流れ込み、べゼリーの腕がうごきます。会話と同時に腕を動かせば、表現力が高まりそうですね。[【動画】](https://youtu.be/QUUzxikKKh8)　以上です。お疲れさまでした。

#謝辞
- 電磁石の作成にあたっては、神田民太郎著「電磁石のつくり方」（工学社）を参考にさせていただきました。この場を借りてお礼を申し上げます。