チラシの裏の設計書

プログラム開発、データ分析からロボット作りまでものづくり全般を思うがままに書き連ねたブログ。

ロボット用リモコン作り part.3

part.2はこちら

 

使う部品と基本回路はできたので、リモコン本体を作っていきます。

今日の部品

ロータリースイッチ・押しボタンスイッチに加え、リモコン本体を作るために部品を集めてきました。

リモコン本体はこれにします。

image

・・・。

100円ショップで売ってたお弁当箱(正確にはバター入れ?)です。だって、大きさといい格納スペースといいちょうど良いんだもの。

さらに電源にはこれ。

image

秋葉原に立ち寄った時に見つけた「USB充電器(リチウム充電池・ソーラーパネル付き)」を使ってみます。

200円でした。これはすごい。

 

組み立て

電子回路を基板上に作っていきます。

image

とりあえずで適当に基板上の配置を考えました。が、作っていくうちにいろいろと不備があったのでちょっと変わってます。あんまり参考にならない図です。

part.1の時にスイッチの回路を書きましたが、実際の使用時にはチャタリング対策を入れておきましょう。

物理的にON/OFFするスイッチはON/OFFの切り替えの際に接触の具合によってON/OFFが高速に切り替わるような動きをすることがあります(チャタリング)。ということでコンデンサを加えて緩和させます。

上の図では右側に入ってるようなやつです。

 

次にスイッチです。ボタンは付け替えできるようにコネクタをつけました。基板にさし込みます。

image

えいやー、と組み立て。こんな感じになりました。

image

そして、お弁当箱に穴開けて、スイッチとか取り付けて、回路を中に詰め込みます。

image

こんな感じでそれっぽいリモコンが出来ました。よしよし。

 

とりあえず、スイッチ押したら出力部分の端子に電圧がかかってることまでは確認しました。

これで命令を送る側(リモコン)は一旦これで完成ということにして、受けて側を作って行きましょー。

 

今回の反省点

・電子回路的な基礎知識を結構忘れている。

・この程度の規模でも結構考慮漏れがある。

・きちんと設計図を書こう。


ロボット用リモコン作り part.2

前回の続きです。

 

ロータリースイッチについて

今回使ったのはこういうロータリースイッチです。6段階ほどカチカチと切り替わります。

imageimage

このスイッチの裏側を見ると中央付近に端子が2本と周囲に12本の端子があります。

中央付近にある端子と12本のうちどれをつなぐか、を切り替えるという動きをします。

ただし今回は2回路6接点というタイプで、右図のように内部で2つのスイッチを持っていて、左右一緒に動くようになっています。なので全6段階となります。

 

6段階を伝える

ではこの6段階をマイコンに伝える方法を考えます。まぁ、こうすると一番はやいんですが。

image

6端子のON/OFFをそのままマイコンへ伝えます。わかりやすいのですが、6段階の情報にポートを6つ占拠するのはちょっともったいない気がします。

6つの状態を伝えるなら3ビットでいけるはず!ということでちょっと改良します。2回路だからできるやり方。

image

こうしてみました。これでABCの端子の出力がスイッチをひねるごとに

ABC

000

001

010

011

100

101

と変化するはず。

回路図的にはこんなふうにしました。一部切り出しなのでVとかGNDとか変なメモとかありますがお気にせず。

image

 

とりあえず自分用メモです。

もっといい方法あれば教えて下さい。

次回は基盤に実装して組み立てだー。


ロボット用リモコン作り part.1

昨年度はお試しでお魚ロボット作りなんかをしていたわけですが、今年度はお魚ロボットから進化して、実際に海に持って行って遊べるロボットを作っていきます。

 

コントローラー作り開始

さて、まずはロボット用のコントローラーを作ります。

コントローラーと言ってもそんなすごいものではなく、単にボタンを配置しておいて、押すとON/OFFの状態がロボット(を制御するマイコン)に送ることができるというだけのものです。

なんで本体より先にコントローラー?と思われるかもしれませんが、電気的にON/OFFがしっかり送れるものがあると電子回路確認やらちょろっとした動作確認やらに便利だからってだけです。

ということで買ってきたのは普通の押しボタンスイッチとカチカチとひねるロータリースイッチです。ロータリーの方は本体写ってないですけど。

image

こんなイメージでコントローラーを作っていきます。

image

ロータリースイッチは段階的に変えたいもの(速度とか明るさとか)の調整のためにつけます。

今回は2回路6接点のものを買ってきました。最大6段階調整できるようにします。

押しボタンスイッチは何に使うでもなくとりあえず4つぐらいつけておきます。あと+2個ぐらいは増設できるようにしておこう。

 

ON/OFF切り替え

まずは基本の部分。

マイコンへの接続を考えているので、ボタンによって5V/0Vを切り替えるようにしなくてはいけません。

やっちゃいけないのがこれ。

image

(記号がいびつなのや古いのは許してください。抵抗器とかギザギザで書いちゃいますし。自分用なので。年がバレル。)

ダメな点1:直繋ぎはマイコンへの過電流になる危険があるのでやめましょう。

ダメな点2:「どこにもつながっていない=0V」ではない。ON/OFFが不定になります。

 

今回はシンプルにこうしました。

image

いわゆるプルダウン抵抗をつけただけ。スイッチが押された時に5Vが読み取られ、押されてない時はグランドと等価=0Vになります。

今回の押しボタンスイッチ4つはもうこの回路だけでできそうですね。

 

次回はロータリースイッチの回路を考えます。

 part.2>


またまた資料のアップロードしました

前回に続き、また某所で実施したデータマイニング入門編その2の資料を公開してみた。

まだまだ基礎編です。

ここに登場してるデータとかプログラムソースコードとかも公開しなくちゃなぁ。


AVRマイコン導入 part.2

前回、AVRマイコンとライターのセットアップの記事を書いてはや約半年。

その間にパソコンがパーンして全部吹っ飛んだのでやり直します。

実質part.1スタート

 

準備

マイコンでいろいろ遊ぶにもいろんなソフトやライターがありますが、今回はこれらを使います。

OS:windows7win8だといろいろ対応してないので7がおすすめ

マイコン:AVR ATTiny2313

ライター:AVRWRT3

  http://blog.digit-parts.com/archives/51728501.html

開発環境:Atmel Studio6.2

 http://www.atmel.com/tools/atmelstudio.aspx

 

ライターの導入

まずAVRWRT3を設定します

付属のCDの

AVR関連キット/AVRWRT/AVRWRT1.x/driver/Setup.Bat

を実行。

警告が出るも、無視してインストール。

これでおk。

 

PCとの接続を試します

part.1の時に作っておいた画像が非常に役立った。よかった。

接続の仕方は画像の通り。

imageimage

PC側ではAVRWRT付属のCD内

VR関連キット\AVRWRT\AVRWRT1.6.0.2\bin\xxbit

のAVRWRT.exeを起動します

image

そして検出ボタンを押して、Tiny2313が認識されればおkです。

上の写真でライターのジャンパーをつないでいる場合は電源が供給されてるので正常に認識されるとおもいます。

ジャンパー繋いでない場合はAVRに別途3~5Vの電源を供給しましょう。

 

AtmelStudioの導入

上記のリンク先からAtmelStudio6をダウンロード。

名前やメールアドレスの登録が必要になります。

 

インストールを進めて行くと.NETやらUSBドライバやらいろいろ必要になってきますがどんどんインストールしていきます。

 

特に何事もなくインストールできたら起動して、New Project

image

image

Tiny2313を選ぶと、ソースコード書くところに来ます。

ではシンプルソースコードを。

image

DDRB=・・・ //ポートの入力・出力を決めてます。

PORTB=・・・ //ポートの設定

_delay_ms() //待ち関数

PORTB ^=1 //1ビット目で排他的論理和をとって反転させる

メニューのBuildからBuild Solutionでビルドします。

 

で、AVR Studioと仲の良いライターなら直接AVRライターと連携して書き込みとかできるようですが、

AVRWRTとの連携がよくわからなかったので、AVRへの書き込みはAVRWRTのツールで行います。

 

image

AVRWRTを起動してFLASHの部分の参照ボタンで先ほどAtmelStudioでビルドしてできたファイルを指定します。

Atmel Studioはデフォルト設定なら

ドキュメント/Atmel Studio/6.x/[プロジェクト名]/Debug/

の中に色々出来てます。

その中の .hexファイルを書き込めばおkです。

 

image

書き込みは一瞬で終わって、さぁ動作確認だー!

光ったー!

 

最低限の開発環境導入、以上!

 

↑のLED光らせてる回路については次回。


Rで3Dグラフを作る(rglパッケージ)

※IT系はこちらへ移転

qiita.com

 

このブログでもたまに登場していますが

データ分析でお得な物件を探したい とか)

R言語を使ったプロットを進化させてみます。

 

rglという3Dプロットができるパッケージを追加すると色々できるみたいなのでお試し。

(Windows上で試してみます)

導入

まず、パッケージをダウンロードします。

http://cran.r-project.org/web/packages/rgl/index.html

image

Windowsで動くRGuiを使っている方は楽に使えます。

パッケージー>パッケージローカルにあるzipファイルから…

を選択し、ダウンロードしたzipを読み込み。

image

図のようなメッセージが出ればおk。

library(rgl)

で読み込んで、使える状態にします。

 

3Dプロットしてみる

早速使ってみます。

サンプルで適当に乱数で作ったデータを置いておきます。コピペでお使いください。

84.4118361 67.02094633 53.30306495 1
95.19853622 19.46755224 44.81424551 1
76.99221056 21.19832946 6.679098233 2
47.11851053 44.08072688 21.83290854 3
28.17605163 70.81807808 3.038094815 3
37.79006518 17.6206705 17.85126479 3
52.70716655 3.157611848 54.80928113 2
82.17892307 52.40771784 8.826890308 1
76.72345846 45.05295159 8.254543393 2
9.100676234 28.05738328 10.33647699 3
84.80308196 57.28399693 28.78125627 1
57.77000643 14.59246153 23.5896464 2
39.83637948 10.83326358 58.19865 3
29.0778965 27.42478172 36.72898976 3
39.13353415 61.22114732 36.7095343 3
82.98384957 52.79636373 2.636465571 1
6.463960197 31.90275242 42.21141831 3
57.70714968 48.01281819 11.08404224 2
6.262877946 5.154597262 18.14285997 3
26.13265512 60.96556647 37.1863922 3
2.843575692 50.21537584 21.85217763 3
76.32971877 40.43526046 37.41980928 2
51.23026568 16.61420881 20.80880777 2
9.711487254 73.88291056 38.66993505 3
82.02349732 31.48345024 19.24464369 1

1~3列目がデータ、4列目がカテゴリか何かのつもりです。

クリップボードから読み込む機能があるので便利です。

data<-read.table("clipboard")

そしてプロット

plot3d(data[,1:3],col=data[,4])

 

image

 

これだけで3Dの散布図ができるすぐれもの。

そして何がすごいってプロットされてるウィンドウをマウスでドラッグすると、ぐるぐると回転させることができます。

 

グラフの保存

そしてここからが本領発揮。

3Dとなると人に見せる時が困りもの。いろんな方向からみた図を保存しておくのも大変なので、グリグリ動く状態をそのまま保存しておきたいもの。

最近ではそういうことが可能になってるんです。

HTML5関連で注目されてるWebGLという機能があります。ブラウザ上で3Dグラフィックをサポートする機能です。

このrglというパッケージではこのWebGLを使ってブラウザ上で3Dグラフが再現できるように保存することができます。

writeWebGL(width=700, height=700)

しかも、この1行で。

すごい。

ということで適当にweb上に置いてみました。グリグリできて楽しいです。

http://tsukemono.ohitashi.com/R/webGL/sample.html

chromeoperafirefoxの最新のなら対応してるはず。IE11でも対応してたとは思います。


slideshareすごい。

遅ればせながらスライドシェアへ参戦。

 

アップロードテストも兼ねて、某所で実施したデータマイニング入門講座の資料を公開してみた。

 

 

偉そうに"講座"と言ってはいますが、自分も勉強しながらです。

 

今年はどこぞのIT勉強会のLTででも発表できるように成果出したいもんだ。