Windows7 x64を使って酷い目に遭ってみている
「どうせ周りの人間もすぐWin7にアップグレードしだすだろうしつまんねーなー」
→じゃWin7 64bitで行こう
64bitで受けられる恩恵のうち最も大きい、というかこれ以外に乗り換える理由が特にないメモリ4Gの壁の突破というものも物理メモリ2GBじゃ関係のない話
あとHDDの読み書きが速くなるらしいけど元々2.5inchな上5400rpmだからこっちも関係ねぇ
お待ちかねのデメリットの方はどうかというと、
・WebCamのドライバがないので諦めて今ではただの発熱源になっている
・シリアル変換ケーブルのドライバがないので秋月のライターを使うときはXPModeかXP実機で
・とりあえずいろんなドライバがない
・たまにある動かなさそうなアプリはやっぱり動かない
でもPICkit2はHIDクラスで認識して、FT232RLはx64版ドライバがあったから現時点での実用上では問題ないかも
ドライバで問題がある半面、ドライバ以外では大した問題がないというのも事実。
nTuneとか、CPUの温度を取得する系もちゃんと使えるからWoW64は結構かしこい。
ちなみに
システム系アプリ以外は全部32bitアプリな件について
例外はTweenで、こいつは.NETアプリだからネイティブで動く(たぶん)
高専へようこそ…
ずいぶん前の話ですが体験入学がありました こんなこと書くのは体験入学が安易に記事のネタになるからですね
最近tumblrとtwitterくらいしか更新してないんで生存確認はそちらでどうぞ
見せ物出すよ? → じゃぁ巡回ルートに入れてやるよ →
見せ物どうしよう(前日) → 適当に見栄えがあればいいや(当日午前) →
「これが今作っている回路です」(数十分前にやっつけたデモ)
実際のところ体験入学って結構適当ですもんね?…
#その適当さのレベルによって本気モードのレベルを推し量る・・・?
ネタ:
「ロボコン知ってる人?」(手がいくらか挙がる)
「あぁ、ありがとうございます まぁ結構知名度はあるみたいですからね」
「まぁ推薦入試の志望動機に使う方は覚えておいた方が良いでしょう」
end
#実際のとこそんな感じらしいけど(伝聞)
えらく反応の良い奴は2,3人はいた(内定出せるなら出したいね)
あと説明をガン無視して作業部屋の奥を見つめている訳分からんのもいた
あと、デュアルモニタとWindows7とChromeとHSPという突っ込み所満載なデモに突っ込んだのは0人だった。
(HSPで書かれた開発ツールは後でスタッフがRubyで書き直しました)
まぁ一言言うなら
「アニメ・同人研究職志望の方はご遠慮ください」かなー
そんなノリで来て自分も周りも困るというのがたまにある(高専内でオタがdisられるってどういうことなの) 一般的な高専生(ヘンタイと読む)はアニオタ属性+更に変態的な特殊能力がある場合が多い
#さて、ロボコンのブログ作ったらここの更新頻度はさらに下がりそうだな
[うp]wiiハンドルもどきでロボットを動かしてみた[ソフト編]
もうすぐ1500再生・・・
たぶん動画を見てもらえると分かるんですが回路面はそんなに凝った作りじゃないです
前回に続き今回はソフト編。だらだら書いてたら1ヶ月半経ってしまった。。。
基本的な流れ
リモコン側のpicは内蔵クロック(4MHz)で動作しているうえpic自体があまり速くないので(実効1MHz)重い計算処理はすべてArduino側に投げる形で、PIC側は単にAD変換結果をRS232Cで飛ばすだけになってます。
無線部分はXBeeなので有線でシリアル通信するのとなんらプログラムに差はありません。
そしてArduinoは受信したデータからハンドルの回転角を割り出し、そこから左右のモーターをどれだけ駆動するか算出しモータードライバに出力するという流れになっています。
送信側
[ソース]
ミソ
set_adc_channel(0); //pin0にセット
delay_us(50); //AD変換待ち
value=read_adc()-X_CAL; //キャリブレート
printf("X%04lu",value); //0で埋めた4桁の数値で送信
getc(); //Arduino側が何か応答を返すまで待つ
送信側は説明のしようがないくらいに単純です
AD変換の後の待ち時間をクロックが低いのでちょっと長めに取ってみたくらい。
受信側
[ソース]
ミソ:
for(ct=0;ct<4;ct++)
{
while(!Serial.available()); //何か文字が飛んでくるまで待つ
val[ct]=Serial.read(); //配列に代入
}
/*文字列valを書式指定(%d)に従って変数prmに代入*/
sscanf(val,"%d",&prm);
受信側は説明しきれないくらい長い。。。
Arduinoはprintfとかscanfが動かない(エラーは出ないがUARTと関連づけられてない感じ)。
でもsscanfなら動くからこれでいいやって事で。
文字列->数値変換は自分で書いた方がプログラムサイズが減ったり速くなったりするだろうがこういう「動けばいい」系にそう言う凝った細工はしなくても良いと思う。プログラミングのお勉強じゃないんだし、本質的に重要なのはそこじゃない。下手に自分で書くよりかはどっかのえろい人が書いたライブラリの方がずっと速いかもしれないし。
動画でもあったように初めのうちはPC(HSP)でデバッグしていたんですがHSPのCOMポート操作命令、特に受信系が扱いづらくて、Cみたいにとりあえず何十文字かがさっと取ってきてscanfでふるいに掛けるというようなことができないので、送信後は律儀に1軸ずつ受信完了を待つような形にしています。こうすると受信側では上のように最初の1文字でswitch?caseして残りの4文字を数値として読めばいいので結構楽です。またscanfが使えなくてもこの方法ならいけるという理由もあります。
数値を出した後は後々扱いやすいようにラジアンにしておきます。
/*ハンドルの回転角(rad)を求める */ /*atan()でなくatan2()にすると0?360度の範囲で求められる */ at=atan2((1.0*int_y)-AD_NOR,(1.0*int_x)-AD_NOR); /*ハンドルを傾けるほど左右のモーターの回転数に差が出るように*/ /* ≒傾けるほどよく曲がるように */ mS=100.0*cos(at+PI_2);
三角関数の辺は数学のお勉強的にはややこしいけど実用できるとすごく便利。こういう時に。
センサーの取り付け方的にそのままの数値を使うと90度ずれた状態で出てくるのでπ/2を足して補正したりとか。 でも授業でアークタンジェントのこんな使い方はしなかったような気がせんでもない。ググって知った。
左右の傾き具合で曲がり具合を変える部分は、横に倒すほどcosが増えるのでその数値を左右のモーターにそれぞれ符号を変えて足してやると横に倒すほど左右のモーターで回転数に開きが出てくる、といった感じです。
まとめと反省と雑記
- 今見るとなんだか不可解な部分がかなりある。やっぱり書いてから2ヶ月半も経つと忘れるなぁ・・・とブログ記事の方もハード編から1ヶ月半も経っていることに深く反省。なんじゃこりゃ。
- 忙しいかというとそうでもないのに更新するかと言えばそうでもない。だらしねぇ・・・何という怠惰生活。高専じゃない3年生だったらこれはやばいし許されない。いや、高専の3年もいろいろとやばい年だけど。
- でもテストは専門科目が増えて平均点が久しぶりに70代行ったりとか景気は良いがふたを開けると最高点と最低点の差が91点とか言うグランドキャニオンなので安心はできないという。
- Googleで捜し物をしていると自分のブログが引っかかる事があるけど、何もないのは分かってる(書いた覚えがない)ってのがイライラする。引っかかるならなんか情報出せやってね。だから手に入れた情報は全部ネットに置いといて還元しないといけないなぁーと思う。こういうのとかロボコン関連の技術情報とか。wikiでも建てるかな?。。。
- そう言う意味でエントリー化する基準をもっと下げても良いのかなー。大昔厨二病の症状で始めた時(2006年?)のエントリーはほんとにどうでもいい日記だけだったからそれからどれだけ閾値を上げるか様子見してたらtwitterとかtumblrとかで細々した話題は済むようになっちゃって本当にブログに書くのはでかい話題しか無くなった。
- でも、でかい話題の中に埋もれてる事(今回でいえばXBee周りとか)とかがばっさり切り落とされてるからそれではまずい。情報源として役に立たない。
- そんなわけで、どうすればKnowledgeBase的なものが作れるか思案中。やっぱWikiかなぁ・・
[うp]wiiハンドルもどきでロボットを動かしてみた[回路編]
食らえ!ニコニコの限界画質!!!
・・・画質が良いのは良いけど、重いなんてもんじゃねぇよこれ。。ちなみに測ったら1042Kbpsだった。
ブログに解説を書くと動画の方に書いちゃったので以下解説
・動機
研究室に鎮座している人型ロボットを動かそうと思って、手に使うちっちゃいサーボとか無線モジュールとか加速度センサとかいろいろ買ってたので、まず無線からやってみるかと思って着手したものの、2つある片方がぶっ壊れて一時中断。次に加速度センサーでもやるかと思って、ブレッドボードの真ん中にセンサーを置いたら良い感じにハンドルっぽくなって気がついたらいつの間にかレースゲーが出来てたという流れ。
でもやっぱ画面の上のお友達ではロボコンチーム的に許されないと思ったのでちゃんと画面の外でロボットが動くようにしたのがこれ
・何故うpした
部活勧誘会でお披露目したら新入生たちから世間の冷たい視線を浴びせられたのでついカッとなってやった。反省はしていない。正確に言うと新入生以外からも冷たい目線で見られたような気がしたが気にしない。
新歓モード。この下にあれが入っている。
ちなみに羽は電飾されてて埋め込まれてるLEDが光ります(白鳥っていうと学校ばれそうな気がするがどうなんだろ)
・具体的な仕組み
・加速度センサ周り
使用しているのは秋月で買える3軸加速度センサ。やっぱり5v入力対応してるってのは良いですね。プロトタイピングのときは5vってのは都合が良い電圧なので。(電源装置が使用中でも空いてるUSBポートから5vが取り出せるから)
このそれぞれの軸の出力をPIC12F675でADコンバート、データをUARTでXBeeに送っています。
真ん中が加速度センサ。右にPIC。左にレギュレータ。上はXBee。
ブレッドボードとはいえ見せ物だから部品をシンメトリーに配置した上でなるべく綺麗に配線してみた。
・駆動系周り
自作XBeeシールド+Arduino 2009+TA8429(x2個,右側)
こっちはかなり無茶苦茶な回路。なんというスパゲッティ。白・黒のペアになったケーブルがPWM用で、確かTA8429の出力をON/OFFする12番ピンにつながっています。
本当はArduinoのTXピンをXBeeのDINにつなぐときレベル変換(5v->3.3v)にしなくちゃいけないんですが、抵抗で分圧して適当にごまかしています。前はその辺に気付いていなかったんで5vを適当につないでしまったり、更にモータードライバのノイズも原因になって見事にXBeeが死亡しました。
だから本当はモータードライバと共存させたくないしきちんとしたレベル変換の出来るシールドが欲しいんですけどね。。
いっぺんここで記事切ります。ソフトウェア編はまた後日。
コード整形表示てすと
Syntax Highlighter for WordPressを突っ込んだので効いてるかどうかテスト
#include<stdio.h>
int main()
{
printf("hello world\n");
return(0);
}
もしやとおもってcodeタグで囲ってみる
#include
int main()
{
printf("hello world\n");
return(0);
}
しかし、やっぱり特定の環境に依存したものって書きたくないな・・・
メモリが値上がりするようなので買ってきた
黒いキーボードと黒い筐体の区別が付かないアドエスのカメラは腹を切って死ぬべき
あとなんかフェンス状の影がノイズで乗っちゃうみたい。2年縛りが解ける年末がすごく待ち遠しいぜ
今回のお目当ては学校のゴミ捨て場に落ちてるPS/2なキーボードを最近のUSBしかないような最新PC(笑)で使う為のPS/2->USB変換器。だってキーボードでも買うと結構するし、2千円とかその辺の安物よりかよっぽどいいキーボードが落ちてたりするし。(いいキーボードは重いという法則に基づいた重量比的な意味で)
で、そういえばゴールデンウィーク明けからメモリが値上がりするんだったとか思い出して、ついでにUSBメモリもう一本買っとくかとか思って。まぁKNOPPIXとか突っ込んだりする実験用で。
一応財布の中身がやばいので1GBでいいや・・・と思ったら、1GBとかちゃちいメモリなんて駆逐されてやんの。まじ今の世の中ふざけすぎ。その昔512MBのUSBメモリが輝いてた時代があってのぉ(ry
デジカメで動画撮ると容量がやばい。MotionJPEGでSDがやばい。8Gあたりが1枚欲しい。値上げ前に買っときたい。
XPとVistaのDVDを交互に突っ込んでWin7を修復(してみた)
やっぱり神OSとかなんとか巷の評判はおいといて所詮BetaはBetaです。
事の始まり
「動画編集ソフトがまともに動かん」
いや、動くんですよ。9割方。でもね、タイトルのフォントサイズが24ptか8ptにしかならないとかオーディオのトリミングをしたら落ちるとか、WindowsLiveムービーメーカー(beta)はホント編集機能がBetaって感じで低機能すぎて使い物にならなかったり、そもそもこっちもしょっちゅう落ちたり、、、
「結局ビデオ編集するのはXPじゃないとだめだ」という結論になって(爆速デスクトップはXPだけどあえて)自分のメインマシン(ノート、Win7Beta)にXPを入れようとしたんです
まぁXP<->Vistaのブートローダー問題の壁も一応修復方法は分かってるし、何とかなるだろうと思ってました。
で、XPのお馬鹿なセットアッパーにやられました。
XPのファイル群だけはしっかり指定したパーティション(D:\)に書き込んでるのに、ブートローダー(ntldr)だけはVista以降のブートローダー用パーティション(C:\)に書き込んでやんの!
で、セットアップが続かない、7もブートローダーが上書きされてるから見えもしない、ってね。
ブートローダーを修復しようにもWin7BetaのDVDを学校に置き忘れてるっぽいし・・・
KNOPPIXでドライブの中身をごにょごにょやっても効果無いし、明日学校にディスク取りに行くか・・・と思ったけどやっぱりめんどくさいのでVistaのDVDで何かできないかなーと思って、突っ込んでみた。
ね、なんでVistaのDVDでWindows 7を認識するんでしょ。認識したとしても君Vistaのインストールメディアなんだからバージョンが違いますとか言うべきでしょ・・・とか思いつつ、ダメ元(ネタ半分)で自動修復させてみる。
修復のログを読むと「ブートセクタがおかしかったから修復したよ」と書かれてたので、これは行けるかもと思って再起動。
起動しちゃったよ。Vistaと7、驚異のシンクロ率。
つーかVistaのDVD使えすぎ。セットアッパー的な意味で。OSとしてはちょっとあれだけど。
また転勤か。いい加減にしろ
ここ3年間、未だに嬉しい春を過ごせたことがありません。
何が悲しくて3年で3つのチームを転々とせねばならんのですかね。
━━━
所属しているロボコンチームが潰れたので新たに部活になったロボット研究部に所属が移りました
ロボコンチームがロボコンから撤退した後は自主活動や地域教育などに活動内容をシフトするらしいです。
どちらに行くか迷ったらどちらもやめるという選択肢もあったんですが辞めたら辞めたで困る人もずいぶん出てくるんじゃないかと思ったので一応手は引かないでおきました。
本当のことを言えば現在研究室にある私物と役割的な意味でそう簡単に所属先を変えれるもんじゃないです。
・私物的に
サーバーを引き上げれば各個人のデータが台無しになるし、ルーターを引き上げればネットに繋がらなくなる。
私物PCも全部引き上げると研究室に残るのは微妙なスペックのノートが2台と3代に渡って歴代リーダーが使ってきたレジストリが汚れまくったceleronのデスクトップが1台。まぁ人数分はありますが。
あと半田用品周辺とか電子部品とかずいぶんと色々な物が置きっぱなんですよ。こんだけ大量の物、そう簡単に一掃しろと言われても出来ないです。
・役職的に
一応PICは基本的な部分は扱えるし回路基盤も電気科の学生ではないから粗悪な設計にしろ一応作れるので他に代われそうな人も居ないし回路・ソフト主任的な感じになってたんですがこんな役の人間が1人しか居ない状況で抜けられると後はどうなるか行く末が簡単に想像できます。
でも移った理由。
・新天地に移るメンバーを支援するため
元のチームに残って自主活動や地域教育に力を貸すという選択肢もありっちゃありなんですが(私物問題が起こらないし、ロボコンに縛られない生活が送れる)それでは新しい場所に身を移して辛い思いになるかもしれないメンバーに申し訳が立たない。確かに自主活動に残った方が楽なんですよ、好きなこと出来るし。でも変わらない環境で「移った人は辛そうだな・・・」と後悔するより移ってから「あの環境は良かったなぁ」と後悔する方がマシだと思ったんです。
あと、移る人数が少ないと吸収合併になってしまうんで元のチームは元のチームでまとまりが維持できるようにって意図もあります。要するに新天地に元のメンバーで同じ様な環境を再構築するって話です(あまりまとまりが強すぎると統合の意味が無くなっちゃうんですが)。
・技術面での相乗効果への期待
技術的にも、うちはもともとPICを使っていたので回路が小型化しやすい強みがあって、移転先のチームがもともと使っていたのがH8で演算能力が高い利点がありました。でもH8はどうしても基盤サイズがデカくなりやすく、PICは演算性能がよろしくないという問題があったので両方を適材適所で活用すればより良い回路が出来るのではないかという構想もあります。
・目指すものと現実のズレ、環境の不適合
たしかに前のチームは居心地は良いものでしたが、自分のやりたい事と完全にマッチしているとは言えなかったと思います。ロボコンや地域教育などの過程に自分のやりたいことが有る訳で、あくまでそれらは直接的な目標では無いと思っています。良い回路やソフトウェアやアイデアを作ればそれに応じた結果が副次的に得られるだろう、という考え方です。
あと、これまでの活動も実際は遊びが混じった状態でやってました。
電子工作キットのアイデアもネットをだらだらと見てて思いつきで決めたしテスト用に使った私物のフルカラーLEDもネタとして買ったものです。
ディスプレイとWEBカメラを使った自主活動ネタもありましたが1年の時にまた別なチームに出張していたときに片手間でソフトウェア部分を作ったりとかもしました。
部活勧誘会に使おうと思っていたwiiリモコン的なモノででロボット操作する奴も言っちゃ遊びですし加速度センサって将来的に競技で姿勢制御とかに使えるかも思ったんで使ってみただけですし。
そう言う感じで要するに仕事を楽しんじゃえ的な感じでやってたんですがね。
まぁ先生の話をそのまま解釈すれば、いろいろとやってきたそういう仕事はすべて不必要な遊びだったらしいので、そういうことをしに来るのはやめてほしい、ということでしたので。じゃあ辞めてやるから今後盛大に困れって事で。
一応こっち側にも今何やってるかを報告しないといけなかったとか、そういう落ち度が無かったわけではないかもしれないですが。学生が何やってるか把握してないってのもちょっとまずい気はするんですけど。
あとあなた、技術系担当になろうとした学生を今回のこれ以外に2人くらい知らない間に追い出しちゃってるのに気付いてないでしょ。どう落とし前付ける気です?
━━━
今回のこれで一番辛いのは潰れた原因がだれにでもあり、その誰でもないって所ですか
6カ所くらいに原因があり、そのどれも致命的ではない。しかし全部が重なって最悪の結果を招いた。
誰を責めればいいかも分からないって辛いですね。
とりあえず何回も転勤させられるってそんなに辞めて欲しいんでしょうかね・・・
うちのロボコンチームが無くなることになりました。
2007年、自分が1年生の時に校内で3チーム出来てしまいその年と翌年ロボコンに出られなかったチーム。
1年生の時は新たに増えたチームで一応ロボコンの手伝いをやった。2年ではやらなかった。
そして今年、増えたチームが出ないことになり恐らくはこのまま行けば出られる見込みになっていた。
(1)
しかし、うちのチームでもない新たに増えたチームでもない同好会が部に昇格したため、部とチームが存在するのが学校側からして都合が悪くなった。
もちろん同好会とチームならどちらも学校からすればどちらも非公認な団体であり何ら問題はない。しかし、部という学校側が認知する公式な団体が出来た以上、非公認なチームの存在はあまり快いものではない。
うちのチームでは空白の2年の間、自主活動・地域教育を主な活動としていた。これはこれでそこそこ成功していて、実際高専の自主活動奨励事業の支援を受けて独自の電子工作キットを開発し、そこから論文を作成したり学会で発表するところまで行った。自分はそういった表舞台に立っては居ないがキットのコンセプトやアイデアなどずいぶんと深く関わっている。
(2)
一方空白の2年の間にロボコンの方に何か進展があったかというと、あまりめざましい結果があるわけではない。
2007年度はちょうど「ロボット騎馬戦」で初めてプロポ(ラジコン無線)の使用が許可された年であった。しかしその年に校内選考で落選したためうちのチームは無線に関する技術を有していない。また、翌年の2008年度は「2足歩行」であり、これも同様に落選したため2足歩行の技術も有していない。
本来ならこれらの重要な技術は持っておくべきだ。まして将来的に出場する可能性があるのであれば。
しかしそれを怠った。これは自分にも責任があるし、やろうとしても中途半端に終わってしまった。
努力さえすれば獲得不可能な技術ではないし、物資がなかったわけでもない。ただやる気がなかっただけだ。
(3)
そこに学校として公式なロボコン部が出来ることになった。チームの存在が取り沙汰される前にロボコンをやりたいメンバーは部の方に移り、ロボコンチームは潰して自主活動に専念しよう、という判断が下された。
むしろ、自主活動で学会発表まで行くのを2年生でやってのけるという他の場所では出来ない活動をやっているのに、それを自覚できないのであれば自主活動もやめて全くの0、ただの卒研室に戻したい、と。
さて、どうするべきか。
本当はこの下に自分がどうするか考えを書いていきたいんですがね、答えが確定して身辺が落ち着いてから書くことにしますかね。
もうすぐ3年生
どうやら単位を落とさずに3年生に上がれるようです。60点の科目が4つくらいあったので結構危ないですね。
今は春休み中で特にこれと言った行事もなく、研究室でも平和な日々が続いてます。
これといった行事はなくとも何かネタを見つけて取り組んで欲しいというのが本音ですが>チームメンバー
何もやらないのは暇なのでこの前買った加速度センサとArduinoを使ってハンドルを作ってみてます (そのうち動画撮ってニコニコ辺りに上げたい・・・)まぁwiiリモコンの劣化コピーなんですけど
ハンドルだけではあれなんで一応カーレースもどきを付けたけど(であまりにもしょぼいのでverup中)そういえばゲーム作るのってコンピューター部(略してコン部)の分野じゃね?とか思ったり。
そしてこの前機械科のチームの人が遊びに来てこっちも遊びに行っていろいろ話をしたけど
・こっちは比較的小さいマイコンを使っていて、そのうち本格的なマイコンを使ってみたいと思っている
・向こうは本格的なマイコンを使っていて、小さいマイコンを使ってみたいと思っている
という状態らしい。
うちも最近ロボコン以外での活動で、どっちかと言えばプログラミング系な事もやったりしている。
ロボコンやってる(やってた)所から見るとプロコンの自由課題とかも面白そうだなぁと言う風に見える。
(特にPCから外の世界、回路やら機構なら専門分野だし)
ロボコンでは機械・制御・電気の三つ巴状態(多高専では1チームだったりする)+コン部もある
しかもそれぞれやってることが被ってたりする。
じゃあ統合したら良くね?とか思った。
まぁ統合までは無くても、技術協力なんかはしていくべきだと思う。
(少なくとも今は三つ巴でいがみ合ってる体力が無い)
自前で出来そうにない苦手な部分を他のチームに外注するとかも有りかもしれない
まぁとりあえず、人付き合いは大切ですよ、、というお話かなぁ
(目指せニコニコ技術部入り)