saitetu diary

ロボット,IoT,アプリ開発などの備忘録的なブログです。機械加工,電子工作とかも。。

Unity,Blender,C#,Javaなどの備忘録的なブログです。電子工作やArduinoなんかも。

電気工事士二種

IoT系のことをやるときにどうしてもコンセントを弄りたくなることが多かったので、先日電気工事士二種の資格をとりました。

この資格はどうしても専門学校などに通う方や現場で働いている方の取得が多く、自分みたいな完全に独学で取りたいと思っている方に参考になる記事が少ないと感じたので、役に立てばと思い書きます。

筆記試験

筆記試験ですが、ぶっちゃけると数日勉強すれば行けます。(自分はほぼ一夜漬けです)
とりあえず、下の本を一通り読めば基本的な知識は網羅できますし、出題される問題は過去問を数回解けば、見たことのある物ばかりな筈です。

また、計算問題は解かなくて良いという記事がよく見られますが、正直中学物理レベルですので、電気の計算に苦手意識のある方以外は得点源にした方がいいと思います。(特に理系の方は絶対解いた方が良いです)

技能試験

独学で勉強していて一番大変なのがこの技能試験対策です。
自分は下の用な必要な部品がセットになっている物を購入してDVDを見ながら一通り作ってみました。
ホームセンターで自分で揃えたら安いといった話がネット上で散見されますが、実際に計算してみるとそこまで変わりませんし、DVDなどもついてこないので、セットを買うことをオススメします。(というかホームセンターに売ってない物もあります。)

単線図→複線図は必ずかけるようにしておいた方がいいと思います。
また、結構時間がシビアになると思いますので、早く正確に組み立てられるように練習しておくといいと思います。
本試験時、自分はあと3分前という段階で圧着ミスに気づき、あと数秒という所でギリギリ終わらせました。。
あと、ワイヤストッリッパー(VVFストリッパ)は必ず持っておいた方がいいと思います。

これから受ける方は頑張ってください!


資格系の記事が続いていますので、次回は技術系の記事を書きたいと思います。

応用情報技術者試験受けてきました。

最近卒論やバイト、個人的なアプリ開発などで忙しくてブログの更新が止まっていました(何度目)
アクセス数は徐々に伸びてきてはいるのですが,もっと伸ばしていきたいので更新頑張っていきたいと思います。

今回は昨年の秋に受けた応用情報技術者試験の結果が返ってきまして合格しておりましたので、そのことを。

応用情報技術者試験とは

"技術から管理、経営まで、幅広い知識と応用力が身に付き、システム開発、IT基盤構築などの局面で、高いパフォーマンスを発揮することができます。"

https://www.jitec.ipa.go.jp/1_11seido/ap.html

とのことで、ここでは特にそれ以上のことは書きません。
ここでは自分が行った学習法の紹介を致します。行ったことは以下の通りです。少しでも参考になれば。。

1.応用情報技術者試験ドットコム

ほとんどこちらのサイトでの勉強が主でした。スマホに対応しているので通学中でもちょくちょくやっていました。
特にマネジメントやストラテジ系の知識があやふやでしたので重点的にこの分野を行いました。
期間としては1~2ヶ月ほどだったと思います。大体500問程はこなしたと思います。
www.ap-siken.com

2.栢木先生の基本情報技術者教室: イメージ&クレバー方式でよくわかる


前回基本情報を取った時に使用した本です。知識の確認はこれで行いました。

3.2018 応用情報技術者 午後問題の重点対策 (午後問題対策シリーズ)


午後対策はこれを使いました。ただ、金欠だったため図書館で5年程前のを借りて勉強したのと、午後対策は時間がかなり掛かりそうだったんでほとんどページを開けませんでした。。

4.iPad pro

iPad pro とApple pencileの組み合わせでノートを作りました。知らなかった言葉や解き方などをまとめました。
アプリはmetamoji Note liteで↓の感じに10ページ程まとめました。紙のノートと違って場所を取らずにどこでも編集&閲覧ができるのが良かったです。(字汚くてすいません。。)

f:id:saitetutan:20180127133549p:plain

やったことは以上の内容で、恐らく全て合計で20~30時間分ぐらいはかかったと思いますが、割りと過去問に類似した問題が多く出るので、難易度はそんなに高くはなかった気がします。
ITに詳しい方なら数時間ぐらいの勉強でも合格できるのかもしれません。

ロボットアーム製作日誌(ソフト編:後編 IoT,Unity)

ロボットアーム製作日誌最終回です。

 

前回まででとりあえず動くところまで行きましたので、今回はスマートフォンアプリからロボットアームを動かす所を書きます。

 

4.Websocket

まず、アプリからの制御と言っても、インターネットを介して制御するため、そこの部分の実装がまず必要になります。

 

今回はリアルタイム性が必要なことを考え、Websocketを使用しました。

学祭で展示するため、大学のポートを開けられないことから、VPSを経由する実装にしました。

 

まず、スマートフォンからVPSにwsで接続し、VPSがechoするだけ(送られてきたのを返すだけ)のサーバーとして働き、ロボットアームのラズパイもVPSに接続しておくことで、そちらにも送られるという形を取っています。

 

ラズパイ上はPythonのwebsocketclientを使用し、VPSではnode.jsでechoサーバーを実装しました。

 

 5.アプリ制御

上記でのwebsocket通信によって、角度をjson形式で送るとロボットの関節が動くようになりましたので、今度はアプリからwsを投げられるようにします。

 

アプリは直感的にどこの部分が動くのかがわかるようにするため3Dを使いたく、Unityを使用しました。

 

ロボットアームの3Dモデルは、Fusion360にて設計した際のCADデータを.objにコンバート、エクスポートして、Unityにインポートしました。

 コンバートの手順は以下のリンク先を参考にしました。

http://home3ddo.blog.jp/fusion360-import-export

 

ただ、CADデータといえどもOBJにしてしまえば締結部分のデータなどは失われてしまいます。今回は回転部分が多くありましたが、ここの部分のデータが無くなってしまったので、Unity上で設定する必要があります。

 

 Unity上でサーボモーターを再現するの方法として、transform.Rotateなどをいじる方法もありますが、今回の場合オブジェクトが大量に親子属性を持っており、それぞれがlocal座標を持っており、パラメータをいじるだけでこれを実現するのは困難です。

そこで、今回はHingejointコンポーネントを使用しました。これは本来ドアや、ドアノブなどのjoint部分に使用するようですが、motorクラスが用意されており、サーボモータとしても使用することができます。(後日Qiitaに記事を書くつもりです)


f:id:saitetutan:20171117100505j:image

 

これを6つの関節全てに適用して完了です。

あとはスライドバーを用意してUIは完成です。

あとはUnityからWebsocketを使用する為、websocket-sharpを利用しました。

websocket-sharpは以下のリンクを参考にしました。

https://qiita.com/oishihiroaki/items/bb2977c72052f5dd5bd9

 

できたアプリはこんな感じです。


f:id:saitetutan:20171117092850j:image

 

デザインにこだわる時間がなかったのでアレですが、下のスライドバーで角度を指定することで、

 


f:id:saitetutan:20171117092940j:image

 

このように動かすことができます。

 


f:id:saitetutan:20171117093005j:image

 

すべての関節が動かすことができるので、この様に動かせ、さらに、実際のアームもwebsocketを経由して動かすことができます。

 

6.まとめ

とりあえず、アプリから動くところまでは完成しましたが、課題が多くできました。

 

一番問題なのが、アルミの強度で、1mm厚だとなかなか自重やモーターのトルクに負けて曲がってしまったり振動してしまうことがありました。

これは全体を作り直す必要がありますので、またロボットアームを作りたくなったら挑戦したいと考えています。

ロボットアーム制作日誌(ソフト編 前編 制御)

ロボットアーム製作日誌3回目です。

前回はこちら

 

http:// http://saitetutan.hatenablog.jp/entry/2017/11/07/060400

 

3.制御

とりあえず、ラズパイから制御しますが、サーボモータドライバはこちらの既製品を使いました。

スイッチサイエンスから発売されてる、Raspberry Pi HATのPCA9685

 https://www.switch-science.com/catalog/2181/


f:id:saitetutan:20171109213707j:image

 

2400円程と、そこそこかかってしまいましたが、自作でやる時間がなく、エッチングするにしろ委託するにしろ、そんなには変わらない(むしろ安い?)気がします。

また、HATなのでスッキリして良かったです。

 

また、内部の制御はPythonで書きましたが、Adafruit社から提供されているPCA9685用のライブラリがとても便利に使えました。

 

サーボ用の電源ですが、たまたま拾った ACアダプターが5.1V3Aのいい感じの値だったのでそのまま流用します。大きめの3端子レギュレーターが載ってたので、電圧もそのままで入れました。

 

本来ならば、逆運動学を解いて指定した場所に掴みに行くという制御が理想ですが、如何せん本体の寸法精度など、全く信用できないので、とりあえず角度制御でいきます。(後日、逆運動学はやるかもしれません)

 

とりあえず、キー入力に従って動くようにしました。

 
f:id:saitetutan:20171109213311j:image

 

次回はIoT的な要素を入れるため、インターネットからの制御ができるようにした所を次回書きます。

 

 

 

ロボットアーム製作日誌(ハード編:後半 加工、組立)

ロボットアーム製作日誌第2回目です。

第1回設計編はこちら
saitetutan.hatenablog.jp

2.加工

本体にはホームセンターで購入した1mm厚のアルミ板を使用しました。



f:id:saitetutan:20171106171328j:plain



前回Fusionで設計した図面を、実寸大に印刷したものを、以下のようにアルミ板に貼り付けていきます。


f:id:saitetutan:20171106170513j:plain


この時、100均で購入したスプレーのりを使用しましたが、正直ダマになりやすいので、あまりオススメできません。

で、貼り付けたアルミ板に穴あけを行っていきます。
このときに気をつけたいのが、必ず先に穴を開けること。
ついつい先に切断したくなりますが、先に切ってしまうと、穴を開ける際にアルミ板が曲がってしまい、失敗してしまいます。

f:id:saitetutan:20171106171224j:plain


で、穴をあけた後は切断です。
手元にある切断工具が下図の電動糸鋸しかなかったので、これの刃を金属用に替えて、ゴリゴリ切っていきます。

f:id:saitetutan:20171106171657p:plain


コンターマシンなんかがあれば、もっと厚くて強い素材でも簡単に切断できて良かったのですが、この工具だと大体このぐらいの厚さが限界でした。
なお、カッターナイフで切れる、という記事を発見し、これも試してみましたが、大きいものから小さい範囲をカッターで切り目をつけて折っていこうとすると、材料自体が大きく曲がってしまい、あまり適していませんでした。

切り取り後、折り曲げ機を使って以下の通り成型していきます。

f:id:saitetutan:20171107054329p:plain

この後、これらできた部位同士を組み立てていき、

f:id:saitetutan:20171107060035p:plain

このように、ロボットアーム本体の完成です。
このままだと、掴み保持部分が金属で、物体保持に適していませんので、

f:id:saitetutan:20171107060158p:plain

のように、おゆまるをお湯で柔らかくしてから、丸めて取り付けて、完成です。

次回はこのロボットアームの制御部分について書きます。



  

ロボットアーム製作日誌(ハード編:前編 設計)

大学の学祭に向けて、自作ロボットアームを製作しました。

今回より全4回に分けて、備忘録を兼ねて書いていこうと思います。

 

0.準備編

ロボットアームといえば、一番重要と言っても過言でないものが、サーボモーターです。

今回、Aliexpressでmg995というメタルギアサーボが1つ300円程度で販売されている事を発見し、このサーボを使うことにしました。(むしろ、サーボを見つけた事でロボットアームを作ることに決めました。)

本体の素材としては1mm厚のアルミ板を使用し、制御はRaspberry PI3で行うことにしました。

せっかくですので、IoT的なものにしようと、ネット経由で動かせるように、というのも付け加えました。

 

1.設計編

設計にはFusion360という3DCADソフトを使用しました。

www.autodesk.co.jp

このソフトは、学生や非営利目的なら無料で使うことができます。

サーボモーターを取り付けるマウントの設計にはFusionのシートメタル機能を使用しました。

このシートメタル機能は板金加工(金属板を折り曲げて行う加工)の設計を行う際に非常に便利な機能です。

サーボのモデルの周りを覆うように以下の通り設計後、

 

f:id:saitetutan:20171106152158p:plain

 2D図面に展開することで、

f:id:saitetutan:20171106152403p:plain

このように折り曲げ前の展開図を生成してくれます。

これの何が便利かというと、これを実寸大で印刷し、糊でアルミ板に貼り付けるだけで、ケガキすることなく、切断と穴あけ、折り曲げが行えてしまいます!

 

 

ロボットアームの掴む部分に関しては、下図の通り、サーボモータにワイヤーを巻きつけて、引っ張ると指が閉じる形にしました。

この機構で、人間の指と同じようにつかむ物体に合わせて、形状が変化することを狙いました。

f:id:saitetutan:20171106160859p:plain

 

これら、ロボットアームを構成する部位の設計が終わった後は、CAD内での組み立てを行います。

マウントやサーボ同士などをFusionのアセンブリ機能のjointで結合していくことで、下図のように組み立てられ、かつ稼働する様子を確かめることが出来ます。

f:id:saitetutan:20171106163447g:plain

 

あとは、各部位の平面上に展開した設計図をそれぞれ用意することで、設計は終わりです。

 

 第二回ハード後半編はこちら

saitetutan.hatenablog.jp

 

 

 

 

NAISTの入試について

ここの所、ブログの更新が完全に止まっていました。

一応理由がありまして、奈良先端科学技術大学院大学(NAIST)の受験をしておりまして、なかなか更新ができない状態でした。(とは言え、受験から1ヶ月ほど経っておりますが。。)

 

NAIST受験においては様々なブログでの受験体験談に大変お世話になりましたので、自分も今後受験予定の方の少しでも助力になればと思い、少し書いておこうと思います。

 

まず、 自分が受けたときの試験問題ですが、ほとんどうろ覚えで申し訳ないのですが、以下の通りになってました。

 

代数

1.ただの帰納法でAのn乗を求める問題

2.すいません。覚えてないです(1が楽すぎたので、あまり見てません)

 

解析

1.変数分離で微分方程式を解く問題

2.(x-a)(x-b)(x-c)で実数解が存在することを証明せよ

 

代数も解析も1がオーソドックスかつ簡単な問題だったのでそちらを選択しました。

 

寮の優先権はなかったですが、TOEIC500行ってない自分でも合格できたので、やはりそこまで英語の配分は高くないのではないかと思います。

 

話は変わりますが、そろそろブログの更新を再開しようと思います。