DCモーターを制御する
はじめに
DCモーターの回転速度を制御することは出来るのかなと思い、ググってみた。すると出来るっぽいという事がわかったので早速やってみようと思った。どうやってやったっけなってなった時に思い出せる様に書いておく。
使ったもの
TA7267BPについて
モータードライバ。
左のピンから
動作電源電圧範囲 : VCC (opr) = 6~18V、VS (opr) = 0~18V
データシート(http://akizukidenshi.com/download/ta7267bp.pdf)
回路
参考サイト(PIC AVR 工作室別館 ”arduinoの館 - 接続くん DCモーターの接続”)
で書かれていた回路を再現しようとしてこんな感じになりました。
回路分かる人が見たら呆れそう…
コード
動作
参考サイトのコードをコピって分岐書き換えただけ。
スイッチ押してる間は動く。離すと止まる。
速度を書き換えると速さが変わる。そんな感じ。
感想
一応動かす事ができたが理解が浅い。こんな回路作り続けてたら絶対にパーツを壊すと思う。だが何を調べたらいいのか分からないみたいな状態でもある。師匠がほしい…
作りたいものがあるのだがその1歩としてやった。次はブラウザからシリアル通信で回転速度の変更を試す予定。
参考
HHKB Pro2を修理したらキーボードになって幸せな話
はじめに
約1年前に友人にHHKB professional2(以下HHKB Pro2)を頂いた。
HHKB Pro2とは、キーボードにちょっとでも興味があったら知らない人はいないであろう、超有名な超打ちやすいと噂の静電容量無接点式キーボード。
頂いた経緯として、USBコネクタが壊れて使えない状態になってしまい、修理頼むくらいだったら新しいの買うって事になって、捨てるならもらえないか?って感じで頼んだら頂けた。うれしい!
あっさり治せるかと思ったけど意外とそうでもなくて1年放置してたけどふと思い立って昨日直してみたら直ったので手順でも書いておこうと思う。
準備
修理前の状況
HHKBのミニUSB端子が取れてそれを直そうとしたせいで基板の"4"のパターンが剥がれている状況だった。
掃除もしていなかったのでまあ汚い。キーキャップが乗ってる方取り外して水でジャバジャバしたら引いた…
こんな感じでジャンクって言葉が似合う感じの状態だった。
修理した手順
手順といっても単純で、
という感じ。
ついでにキーボードの掃除もしたが、"キーボード 掃除"とかでググって出てきた物を参考にした。
実践
今回取れていたのはUSBコネクタなわけだが、USB端子には5本の線がある。今回完全にどうしようもないところまで壊れていた部分はいわゆる"4"の部分で、"ID"という役割を果たしてる部分だった。
Pin | Function |
---|---|
1 | V_BUS |
2 | D- |
3 | D+ |
4 | ID |
5 | GND |
この端子はどうやらぱそこんを介さないでUSB機器同士でやりとりする場合に使われるものらしくて*1、あれ?今回関係なくないか?て思って完全に無視してそこには半田付けを行わないで他の部分を半田で固定した所、なんか動いた。
端子一つ一つがすごい小さいのでハンダ付け不慣れな手にはなかなかきつかった。
なんて幸せな音なんだ…
まとめ
- ハンダ付けちょっとうまくなった…?
- 写真をちょいちょい撮っておかないとブログで見せられなくて寂しい
- キーボード掃除すると新品みたいになって最高って感じ
- USBのピン4はあまり意味が無い
感想
ゴミとして捨てられていたHHKB Lite2を拾ったのが1年半前で、その何ヶ月か後にジャンクなHHKB Pro2もらって、今使ってるTruly Ergonomic買って、この1年半はキーボードの期間だったなと思う。
余談だが、キーボードの上段のQWERTなんちゃらって行、並び替えると"POWER" と "QUIT" が作れて筋肉配列っぽいのが作れる。"Y"は余る。
QWERTなんちゃら配列が見るのも嫌な人はキーキャップ並び替えて遊ぼう!!!!
おまけ
Truly Ergonomicに慣れすぎて板チョコな配列がめっちゃつらい! エンターとBSとTABが遠くてとてもつらい!!
使えるようになったのはいいけどどうしたもんか…
2015年プログラム書き初め
はじめに
一昨年は書き初めにCで素数を出力するプログラムを作った。60行くらいでできて、役にも立たないあんまり面白くないものだった。
去年は書き初め何にしようか考えてたら2月になってたから書いてない。
それで今年は役に立つものを作ろうと思った。
作業中に動画を流すということをよくやるのだが、某動画サイトを見てる時に一つの動画が終わった後次の動画に変えるために一度作業を中断して、また作業に戻って集中し直す。
これが微妙にめんどくさかった。
なのでこれを、また自動化した。
プログラムの流れ
1. 某動画サイトのURLを入れる
- input site url:
- ここで正しいURLを入れられればちゃんと動く
2. 見たいタイトルを正しく入力する
- input PERFECT title:
- 大文字とか小文字とかの処理をしてないのでこれもまた正しく入力しないと動かない
3. どこからどこまで見るかを決める
- input 1 or 2の部分
- -> 1を入力すると"1から25"
- -> 2を入力すると自分で範囲を決められる
4. 1つの動画が終わったら次の動画に遷移する
5. 最期の動画が終わるとプログラムが終了する
コード
まとめ
感想
人*1の役に立つものを作れる様になったので成長を感じる…
本当は日記帳でも作ろうかなあって思ってたんだけど思ったよりjavascript難しくて1日じゃ絶対終わらないぞっていうことで急遽今回のものになった。
ところで動画見ながら作業ってたぶん絶対はかどらないですよね。
最期に今年の抱負です。
参考
RubyでSeleniumを使ってスクレイピング - Qiita
ruby - Selenium-Webdriver: Get attributes after finding an element - Stack Overflow
*1:自分
DDRの難易度を移動距離で評価し直してみた
クリスマスでも音ゲーやってる皆さんこんにちは。
この記事は音ゲーマー達の発信所(4枠目)の24日目の記事です。
#音ゲーマー達の発信所 (4枠目) Advent Calendar 2014 - Adventar
前の人: op31_lyricism
次の人: R7iF
今回はDanceDanceRevolutionについての記事を書きました。
はじめに
「Spanish snowy dance激が15なわけがない! 詐欺だ!」とか「FLOWER鬼は17レベルもない! 逆詐欺だ!!!」的な、表記されているレベルに見合っていないのではないか?って曲があると思う。
もしも「俺は15レベルならもしかしたらクリア出来るかも知れないけど、16は無理…」って人が16レベル相当の15レベル曲をプレイしてしまったら結果はたぶん悲しい事になると思う。
そこで、「曖昧なレベルって言う基準じゃなくてもっと明確な基準を作ればいいんだ」って事で今回は移動量を基準にしてむずいランキングを作りました~。
計算方法
単純に移動距離だけだとノーツ数多いやつが勝つに決まってるので、BPMなども加味して考えたのが以下の式。
疲れる度 += (今のBPM * 2ノーツの距離 * 四分の何倍か) / 2ノーツの隙間
疲れる度を求めたあと、偏差値を求める。
用語について
・2ノーツの距離: 前に(右|左)足で踏んだノーツと今(右|左)足で踏んだノーツとの距離
- 上→下など、反対の位置は56cm
- 上→右など、隣の位置は40cm
- 上→上など、縦連は足をあげる高さとして30cm
- ジャンプはパターン分け直すのめんどかったので全部80cm
・2ノーツの隙間: 上と同様にその隙間
だったら"2"みたいな
・四分の何倍か
八分なら四分の2倍速いから"2"みたいな
DDRの譜面は基本的に交互に踏むようにできてるのだが、たまに交互に踏もうとすると回転しないといけない時がある。
しかし、そういう場合とかを考えるとちょっとめんどいので、今回は腰のねじりに制限のない人を想定して作った。
#腰のねじりに制限無さそうな人
流れ
1. ddr_travel.rbで移動距離を求める。
2. 1で求めた値をtravel.csvに追加していく
3. すべての曲が終わったらcalc_std.rbで偏差値を求める
4. 3で求めた値をresult.csvに書き込む
5. result.csvを偏差値順に並び替える
コード
rubyで書いた。ちょっと長いのでリンクを。
- ddr_travel.rb (https://github.com/panchiga/DDR_travel/blob/master/ddr_travel.rb)
- calc_std.rb (https://github.com/panchiga/DDR_travel/blob/master/calc_std.rb)
わあいスパゲッティ~~~
対象曲
たまたま持ってた1stからX3までと嘆きの樹。
激譜面と鬼譜面のみ。
合計745譜面!
むずいランキング
全文はここのall_result.csvで公開。
all_result.csv (https://github.com/panchiga/DDR_travel/blob/master/all_result.csv)
今は20レベル表記だが、旧曲だと10レベル表記なのでたまに10とか9が不思議なところにいるのがすごい嫌。Xからだけだと寂しいし仕方ないね…
あと、今は入ってない曲とかコースとかかな?が入っちゃってるけど分かる人が楽しむ感じで。
全部出すと本文より長くなりそうだったので上位30曲を順に並べた。
結果を見てみて
足19曲、両曲とも堂々の偏差値100超え!!!!!!
すごい!!
足18曲がやっぱりすごいけどそこに混じってくる16とか17はなんなんだろう
NEPHILIM DELTAがトップ30に入ってるのがちょっと面白い。運動量だけで言えば確かに疲れるから納得はできる。
Δ MAXどっちも17のくせして顕著な差がでたね…
FLOWER鬼(元17)、これ見る限りでは888激(14)より弱いね
課題点
・ソフランとストップをどうしたら難しさとして数値に正しく出せるかを考えたい
・フリーズ踏みながらもう片足で捌くみたいなのの場合を今回考慮してないのでそのへんも課題点
・DPの対応も出来ないことはなさそうだし次の課題だ
まとめ
感想
わりと正しい感じの値が出てよかったなあと。ただ、レベル毎にソートしてグラフを出したかったんだけどそれが出せなかったのが残念。
趣味で書くプログラムは本当に楽しいなあ…楽しかったなあ…
コードレビューお願いします!お願いします!コードレビューじゃなくても、もっといい計算式とかあるよって人、コメント待ってます。
最期に
Aizuアドベントカレンダーに参加させて頂いて記事を書いたら燃え上がって、人気ブロガー気分味わえて楽しかったです。見てない人は見てね!!
FF10の雷除けを自動化した話 - panchiga's blog
FF10の雷除けを自動化した話
これはAizu Advent Calender 2014の9日目の記事です!
前の人: @MiZuKi_Sonoko
mizukindevelop: Hackathonに参加しよう {Aizu Advent Calendar 2014 [8]日目}
次の人: @a_r_g_v
はじめに
FF10はみんな知ってるよね?
FF10には七曜の武器っていう伝説の武器みたいなものがあって、入手方法がゲーム中のミニゲームをなんかすごいやるみたいな感じ。
例)
その中で巨乳おっぱいさんルールーの「雷平原のサブイベント・雷除けを200回連続で成功する」というものがある。
おっぱいさん
雷除けとは
画面が光ったら◯ボタンを押す。それを200回繰り返す。そんな作業。
雷平原 雷避けチャレンジ20140517 - YouTube
こんな作業を人間がやる必要無くないか…じゃあ自動化してみよう!!!ってなったので
自動化をしてみた。
準備
今回使った物
手順
- Webカメラから画面をキャプチャする
- キャプチャした画面情報から光ったかどうかの判定
- 光っていたら◯ボタンを押させる
- 光ってなかったら↑ボタンを押させる
コード
- Arduino 1.0.5
配線
きったね
グランドか電源かわからないけど黄色の線が繋がってるのがリレーの入れ替わらない部分。
青色で繋がってるのが◯ボタン
灰色でつながってるのが上ボタン
灰色のとこから伸びてる黄色は上以外のボタンを押したい時に使う用
灰色のとこから伸びてる赤色は意味が無さそうので気にしないで…
それにしてもひどいな…
動かす
動いてるね
200回達成!!やったぜ!!!!
辛かったこと
Webカメラが勝手にホワイトバランスとか調整しちゃうのでミスが出る。それに気づくまで何が悪いのか全然分からなくて閾値とかスリープの時間とか変えたりしてわからんわからんってしてた。Logicoolのwebカメラ使ってたので公式で配ってる調整ソフト(?)使って解決できてばんざい!
トランジスタがなかったけどたまたまリレーがあって良かった。
まとめ
感想
手でやりたくないことを機械にやらせよう的な事が計算みたいにコンピュータの中だけで済ませていたものから、PS2のゲームをやらせる的な現実の世界にまで飛び出して、行動の幅と言うかまさに世界が広がったなって感じがしてる。
電子工作って面白いなあって思いました。
次の人 → @a_r_g_v
openCV使いたい…openCV使いたくない?
はじめに
早速使う
今回使うオプション
解決した
g++ test.cpp -I /usr/local/Cellar/opencv/2.4.9/include/opencv2 -I/usr/local/include -L/usr/local/lib -lopencv_highgui -lopencv_core
まとめ
感想
図工 200円でDDRコントローラー(小)を作る
用意したもの
・PS用のDDRマット(100円)
・アルミホイル(60円)
・皮膜付きの導線60cm(40円)
・サーバーとか買った時についてくる発泡スチロールみたいの
・ラジオペンチ
・CDケース
・ガムテープ
手順
- DDRマットを切って基板だけ取り出す
- それがちゃんと動くことを確認する
- アルミホイルが電気通すことを利用してスイッチを4個作る(上下左右)
- アルミホイルと導線と基板とガムテープで頑張る
- 完成
完成です。簡単な図工ですね。
結果
上の汚いのが完成品。
中のがスイッチ押したら動いた時の写真。ぶれまくった。
下のが実際動かしてみた奴。
スコアは散々だけど動きました。
自分の手のサイズに合ってなくてミスばっかだけどね。
感想とか
アルミホイルすげー!ガムテープすげー!
プロトタイプなので見栄えはあれだが無事に動いてよかった。スイッチ部分をどうにかもっといい方法探せば・・・
アルミホイルじゃなくてアルミの板とか使って、もっときれいにスイッチ作ってやればミニDDRが作れるんじゃないかって思えるものにはなるって確信できた。
スイッチ・・スイッチなあ・・・・
あとコントローラーが大した構造じゃないので自作もできるなって思った。
すぐ終わるだろwって舐めてかかったら3時間くらいかかってたので意外と辛かった。
EXTREMEは自慢です。近所で1000円くらいで買えました。MAX.クリアできません!