東京旅行ー大学ロボコン

この土日に東京に旅行に行って来ました。

6/9(日)に大学ロボコンがあって、先輩たちが出ていたので見に行く、というのが当初の目的だったのですが、
ついでに東京観光もして来ました。

無意識に、いろいろとNYと比較しながら見ていたような気がします。

東京は小学四年生の時にお台場に連れて行ってもらっただけで、
ずっと行ってなかったので、新しい発見の連続で、すごく楽しかったです!

金曜日に授業を受け、サークルの集まりに出席してマジックの練習をし、一度家に帰ってから京都駅へ。
そして人生初の夜行バスでした。

一番安い青春エコドリーム号で、行きは5400円、帰りは4700円でした。往復合わせても新幹線の片道より安いです。すごい!

23:30に京都を出て、だいたい7:30ぐらいに東京駅につきました。割と眠れてよかったです(かわった所で寝るのは苦手な方)
途中二箇所ほどSAで止まってくれます。滞在可能時間は20分ほどでした。が、これは嬉しいのかどうなのか・・・

帰りは買い忘れたおみやげを買えるのでいいと思うのですが、行きはあまりメリットがないので。

23:45ぐらいに電気が消されました。ここで眠れた僕は幸運!
しかしはじめのSAについたのが確か12:40ぐらいで、多分ここで殆どの人が起きることになると思います。

そしてまた眠ると、5:30ぐらいに足柄SAってとこにつきます。
地理選択でない僕にはもはや何県かすら・・・
って思ってTwitterでつぶやいたら、静岡にかなり近い神奈川って教えてくれました。
物知りですねーっていうか、早起きですねー!

で、この足柄SAで事件が起こったんですよ。
なんと!他にも「足柄SAなう」ってつぶやいている人が!
ロボコン関係者で、高校時代の先輩の友人でした。同じく観戦する予定だったようです。バスは違ったのですが、結局東京駅で少し待っててもらって、会いました。そして一緒に朝ごはん・・・とは言え開いてる店がめっちゃ少なかった・・・

朝早くの東京駅は人もほとんどいませんでした。

まず初めに秋葉原に行こう!って思って秋葉原に向かいました。これが大きな失敗だったわけです。

この時僕はまだ知らなかった。まさか、秋葉原が始まるのは10:30以降だったなんて!

GundamCafeとAKB Cafe
AKBの方は後からかなり人増えました。どうやらその日が総選挙だったようで・・・武道館に入れなかった人がここでみんなで見てたんでしょうか。

店はマクド以外あいていず、AKBのイベントやっている建物にだけ人が並んでいました。

で、テキトーにグルッとしたんですが、開いてる店なんてなかったので、暇に耐えられず、東京駅に戻ることにしました。260円の出費です。
ここでSuicaを買いました。東京行ったらICカードは必須でした

グルッとした時に1つだけ寄ったのがSteins;Gateで出てくるラボ

一般宅っぽいので、とっていいのか悩みましたが、結局撮っちゃいました(・ω

この時おでん缶とかラーメン缶とか見つけたんですが、また買えるかーと思ってスルーしていると、もう再び見かけることはなかったです・・・少し外れにあるみたいですね


でもDr.Pepperは買いました

アメリカと違って安くていいです。でもこれは秋葉原でなくとも東京結構どこでも売ってるみたいです。

で、東京駅ですね。

ライトアップで一時期有名だったとこです。


コンドルさん素晴らしいですね。かっこいいです。(日本史選択アピール)

東京駅を鑑賞しているうちに10:30になり、秋葉原最初の店、ヨドバシカメラがオープンします。

 

秋葉原はかなり人が増えていました。



電子部品屋の本店たち。秋月はかなり胸熱でした。


animateととらのあな

らしんばん
なんか四条のやつは簡単に入れるのに、ここは入るのをためらう感じでした・・・ビル内の暗い道が長くてこわかった・・・

GAMERS

これがラジオ会館・・・?


秋葉原の後は東京らへんの大学の友だちに迎えに来てもらって、浅草へ行きました。

駅降りたとこでスカイツリーが・・・!でも小さく見える

歩いてたら突然右側に雷門が出現!

門を進むとどちらかというと京都って感じ

そしてこの煙を頭に当てて・・・

凶が多いという浅草寺のおみくじ、なんと大吉でした!!!!

それで気分がすごく上がった所で・・・スカイツリー!

まだまだちっちゃいです。

でもだんだん近づいていくと・・・



で、でかい・・・

3:30頃にソラマチについて、
もらったのが

6:30〜当日券を買える整理券。
もう一人友だちと合流する予定だったので、ゆっくりソラマチを見ながら待つことにしました。


これはCalbeeの店です。
・・・でもなんか想像してたのと違った><
写真は無いですが、レモン牛乳飲んだりおみやげ買ったりしました。
スカイツリー型の歯ブラシとかあって面白かったです。
食品サンプルの店とかすごい高い。
で6:30に券かって、そのあと上に上がったんですよ!!!

もう景色が綺麗すぎてびっくり!登ってよかった!
ツリー見るだけで帰るなんてもったいない!

もうエレベーターに感動しました。
これは見てのお楽しみにして下さい!一気にテンション上がりました!

そして350mに上がってからも・・・

でもこの景色、後ちょっとで夜景になるんじゃ・・・?って話になって、もうちょっと待つことにしました!

だんだん暗くなって・・・

このへんで450mまで行こうっていう話になりました。
追加料金1000円で350m→450mまで上がれるんですよ。



奥に見えるのは東京タワー(?)

めっちゃ綺麗でしたわー・・・
エレベーターから降りるときはホント夢の国からの帰り道、ディズニーランドからの帰り道みたいな気分でした。
寂しかった・・・

そのあとは店員さんに作り方を教えてもらいながらもんじゃを食べて、

スカイツリーに別れを告げて、

友達の東大生の家で一泊しました。
↑めっちゃ綺麗だった

そして次の日の朝
日曜日はロボコン以外どこにも行っていません。
渋谷の街とか見てみたかったですが、次の機会ということにしました。

ロボコンはあんまりいうと7/15の放送の楽しみが減ると思うので、(とはいえNHKニュースで上がってるんですが)
短めにします。

久しぶりにロボットトークしたり、すごく楽しかったですし、
すごくワクワクしました!

やっぱロボット好きだなーって。作りたいなーって。

終わったあとは
都庁に行って、




(右奥がスカイツリー)

また夜行バスで返ってきました。

東京は人の多さ・路線の複雑さにとても驚きました。NYの路線はすごく単純なのに。
人は秋葉原とか渋谷駅前の交差点とか、ポイントポイントですごく多いです。
電車も井の頭線乗ると夜の11時とかでも満員電車でした。
いろいろ東京の雰囲気も楽しめましたし、自分のロボット魂に少し火が戻り始めた旅行で、すごく良かったです!

情報基礎[工学部](電気電子工学科)

情報基礎、という授業があります。

これは工学部のほとんどの学科で、クラス指定科目として”履修を強く勧める科目”になっていて、普通は受けることになっています。

しかし、話を聞いていると学科によって内容が様々で、
工業化学の人はVirtual Box上でLinux動かしているというし、
物理工学科の人はPCつかってメール送ったりしてるといいます。

そして電気電子工学科は何をしているかといえば、
まさかのまさか、ほか学科で必ず利用しているPCすら使わず、ひたすらPCの内部の動きや情報伝達についての講義。

僕はある程度習う前から知識がある…はずなのですが、それでもちんぷんかんぷんな部分もかなり多いです。(そっちのほうが多い)

教員から教える気は全く伝わってこないので、自分でやれってことだと思うのですが、全くわからない人も多いんじゃないでしょうか。

というわけで今回は僕のメモも兼ねて、調べながら、僕の今までの専門分野に近い(?)2進数の話をしようと思います。
授業で話していないことも含みますが、知ると理解が深まっていいと思うことを書きます。

レベルが高いような低いような、中途半端な文章を書いてしまったので、存在意義が微妙な感じになってしまいました・・・
意識高い人向けに書いているのに、丁寧に書こうとしていたら、丁寧さが意識高くない人に説明するレベルになってしまいました・・・

<説明のための表記>
基本的にプログラムやTeXにおいてのルールに従いながら説明します。

プログラムにおいて、何進数かを区別するときに、数字の前に2文字接頭辞(?)をつけます。
ここでも、説明のため、そのルールに従います。
2進数を表記するときは0b~の
16進数を表記するときは0x~です。
何も書かれていないときは10進数です。
また、16進数表記において大文字/小文字は区別しません。

8ビットのデータにおいて
0b11110000
上なら1111の部分を上位ビット、0000の部分を下位ビットと言います。
一番右の0を0ビット目、順に左に1つずつ数字を足していって、一番左の1を7ビット目と言います。

5^2は5の2乗を表します。(Pythonでは5**2)
3*5は3かける5を表します。
3/5は3わる5を表します。

<2進数のメリット>

2進数は10進数と比べると桁数も多く、パッと見ではどんなぐらいの大きさなのか全くわからず、デメリットばかりのようにも見えます。
でも、メリットも大きいです。

たとえば自転車のオートライトについて考えてみると、
明るさセンサーがある値を下回った時にライトを付ける、という動作をします。

ここで、センサーから値を入力するときには大きく分けて2つの方法があります。
一つがアナログ(的)入力、つまり明るさセンサーの値を明るさに応じて8ビットなら0~255のあいだの値を取得するという方法です。
でもこれだと無駄が多い。というのも、必要なのは明るさがある値よりも高いか低いか、という事だけなので、高いなら0、低いなら1、というように1ビットで取得することができるからです。
これだとセンサーが8こついていた場合も、8ビット送信するだけで、必要な情報をすべて伝えることができます。この場合、センサー1,3,5が反応していた時のデータは2進数表記で0b00101010となりますが、これだと1,3,5が反応している、とすぐに分かります。これを10進数にすると全く何を言っているデータなのかわからなくなります。

<2進数と16進数>
2進数のメリットが大きいとはいえ、やはり桁数が多くなります。
そこで便利なのが16進数です。

16=2^4であることからもわかるのですが、
2進数は4桁ごとに16進数一文字に変換することができます。
(16) (2)
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111
上のテーブルと見比べながら文意を理解して貰いたいですが、
例えば
0xAC=0b10101100
0x3F=0b00111111
になります。
このテーブルを覚えてしまうと2-16の変換が何桁になっても一瞬で終わらせられるようになります。

<ビットシフト>
右や左に2進数の数字をずらすことをビットシフトと言います。
数字を扱う上で、2進数を左にひとつずらすことは、数を二倍することを意味します。2ビットずらせば4倍になります。
(余談ですが、2倍するよりも左にひとつずらすほうが処理が高速なため、かなり一般的に使われる手法です。)
ずらしたときに新しく必要な桁はすべて0になります。


0b11001001<<2 →0b00100100

<数字の型>
ふつうは、数字をコンピュータ上に蓄えるとき、その数字がどんな数であるか(=型といいます)、を始めに登録します。
(signed) int,short,longなどの型の数字は+-を含む数字を保存することができ、
unsigned int,short,longなどの型の数字は+のみを保存することができます。
float,doubleという型の数字は小数点以下も含んだ数を表現することができます。

<unsigned型>
unsigned 〜は最も単純な数値表現です。
通常の2進数表記で、
xyz=(2^2)*x+(2^1)*y+(2^0)*z
という意味になります。
8ビットならば0〜255の256(2^8)通りの数字を表現することができます。

<signed型>
負の数字まで表現できる形式です。符号付き、とも言います。

前知識として、
2進数の足し算をする時、8bitsという条件のもとで計算をすると、
11001011
+11000000
110001011
ですが、一番上の桁は無視され(8bitsを超える)、10001011になります。

これを考慮に入れた上で、
11111111に1を足すと、0になることがわかります。

これを-1(1を足すと0になる数)として捉えよう、というのがsigned型です。

同様に11111110が-2、のようになるのですが、
ここで問題になるのが、どこまでを正の数と考え、どこまでを負の数と考えるか、です。
10000000を128と捉えるのか、-128と捉えるのか、です。

普通は真ん中で区切りますよね。初めて考えた人も普通のセンスを持った方のようで、真ん中で区切ってくれたようです。
この時、-なら最上位ビットが1に、+なら0になることがわかります(考えてみて!)
だから、最上位ビットを符号とよんだりします。

この法則に従えば、10000000は-128と捉えるほうがわかりやすいです。
よって、-128〜127までの256通りの数を表現できるようになります。

でも、-nを考えるときにいちいち100000000からn引くのは大変ですよね。
これを考える方法があって授業プリントに書いてあります。
調べればすぐに出てくるのでここでは書きません。

<float型=浮動小数点型>
flaot型は普通は32ビット用います。
その32bitは3つの部分に分けることができ、
0~22bit目までの23bitsを仮数部
23~30bit目までの8bitsを指数部
31bit目を符号
と言います。

0 01111111 10000000000000000000000
符号 指数部     仮数部

符号の部分は1ならば-、0ならば+を表します。
指数部は符号付きの2進数です。

仮数や指数の考え方としては
例えば25.75という数があった時に、これを2進小数として表記すれば、
11001.11となります。(16+8+1+1/2+1/4)
これはつまり、1.100111を左に4bitsずらしたもの、すなわち1.100111に2^4=16倍したものであるので、
1.100111*(2^4)とも表すことができます。
※なぜ0.1100111*(2^5)としないかは後述

つまりこの時
仮数は1.100111
指数は4
です。

それでやってしまいたくなるのが
0 00000100 11001110000000000000000 (+ 4 1100111)
ですが、
IEEE方式では、仮数部には仮数-1、指数部には指数+127した数を入れる、ということになっています。この時仮数が1より大きくないとひけないため、仮数が1より大きくなるように調整しました。また、仮数部には小数点以下しか書きません。(0なはずですが)
よって、25.75をfloat表記すると、(本当は間隔をあけずにつなげて書きます)
0 10000011 10011100000000000000000
になります。

IEEE方式での規定はおそらく、
指数部が5の方が-100よりも大きい、ということをわかりやすくするためでしょう。

<おわりに>
論理演算も書きたかったのですが、長さ的にちょっと・・・
あとこういうのは結構自分でプログラムを書いてみて、確かめてみないと理解しづらいと思います。これを期にやってみても面白いと思います!

参考資料

http://htp365.blog61.fc2.com/blog-entry-12.html

http://d.hatena.ne.jp/waidotto/20110716/1310823016

ものづくりー宇宙兄弟

宇宙兄弟というアニメが放送中です。

そこで最近主人公である南波六太が、ものづくりについて結構いいことを言っていて、
納得・懐かしさなどいろいろな思いが迫ってきています。

最近は”なにか作りたい”とは思うものの、これといって作りたいものがなく、後回しになっています。土日教習所に通っているというのも大きいです。
だからこそものづくりに関して思い返した時、とても懐かしく、またいま何もしていない自分に疑問を投げかけたくなります。

「ものづくりには、失敗にかける金と労力が必要なんだ」
とてもそう思います。これが一番同意して涙が出そうになりました。
ものづくりは試行錯誤の繰り返しで、特にロボットを作る時なんて、外光・電磁波・電池の消耗など、何かしらの影響で、思い通りに動くわけがなかったです。
やってみて、失敗する。問題が起これば原因を考え、修正する。
繰り返して、出来る限りよい物にしていく。際限のないループです。
原因が見つからないこともあります。お風呂で考えるのはいつものことでしたが、それでもわからないときは布団に入ってからも考えて、思いついたら起きてそれを修正したプログラムを書いてみる、なんてこともありました。それでも治らないならなんとか別の方法を考えてみたり。

労力だけでなく金もかかるっていうのがこの言葉のまた面白いところです。
確かにボールを保持する機構

とか
ボールをキックする機構

の昇圧回路の部分
とか結構いろいろなバージョン作りましたし、モーターを回すための回路もかなり作って、かなり捨てたと思います。

ロボットを作るときに、ロボット代は実質おそらく1,2万円だと思うのに、一年間にロボット系に使ったお金を計算してみると10万円ぐらいいってたりしました。

「本気の失敗には価値がある」
これは僕も中1によく言っていました。
試合に本気で挑まないなら出るな、本気ならば、できなくてもいいから最大限努力せよ
と。
これは本気になって最大限努力すれば僕も手伝うよっていう意味だったんですが・・・単に怖い先輩だと思われたかもしれません。

これも試行錯誤の繰り返しの一つであるという意味で、上の言葉とも類似する部分があります。

「いい素材を使ってるものがいいものとは限らない」
正直あんまり良くないものだと頭打ちがあるので、ある程度はいいものを使うっていうのは必要条件ではあると思いますが、どんなものでも試行錯誤の繰り返し=失敗の積み重ねによっていいものが生まれる

以上のように、六太の言葉は、習うものではなく、ものづくりをしていると、経験的にそう思うようになっていくのであると思います。

やっぱりなにか作りたい・・・

Rasberry Pi買いました

大学生活

大学生活も始まってからかなり経ち、すっかり京大生としてのルーチンワークに身を投じている今日この頃。

GWまではすごい新歓の嵐で、どの授業に行っても机の上には大量のビラ、構内を歩いているといろいろな人に「一回生ですか?」と話しかけられる。
いくつサークルあるんだ!ってなりました。

サークル入会はまだですが、入るところは決めました。
マジックサークルKUMA

http://www.geocities.jp/kuma_magic/

です。

自分は中高とロボットを作っていたので、そういうサークルに入ろうかとも思っていましたが、
KMC,機械研の雰囲気がすきではなかったのと、
サークルで今までと同じようなことするより新しいことしたほうが面白いかなと思ったのとで、
できると面白そうなマジックにしました!笑

つまり大学に来てからはロボットは趣味でしかしないことになりました。
でも逆に自由なので、父親(エンジニア)と何か作れたりしたら面白いなーって思っています。
もちろん何か一緒に作りたい京大生も募集中です!京大生じゃなくてもいいです!メール下さい!←アドレスはバナー下の「プロフィール」っていうとこ押せば出てきます

授業1コマ90分で、月~金まで5時間づつ計25コマありますが、電気電子工学科は制限があって、20コマしか入れられません。工学部以外の学部も何かしら制限があります。
その影響で金曜日は14:30で終わりです。
その他の曜日も間にけっこう休み挟まってます。
中高の感覚から言えば、毎週2連休があるのが素晴らしいです。

Windows on Mac

MacBookAirを買いました。

でも、Windowsも使えるといいと思うので、Windowsも入れることにしました。

あくまでメインはMacですが、
bootcampか仮想か、どっちがいいのか、
むしろ、自分が何のためにwindowsを入れるのかすらよくわからなかったので、
どっちもやってみることにしました。
仮想にはお金はかかりますが・・・

僕はSSDが256GBあって、メモリも8GBあるので仮想でもbootcampでも大丈夫でした。

仮想システムはvmware fusion 5を購入しました。

ヨドバシカメラで4680円で、468円分ポイント還元でした。ソフトにもつくんですね!
Pararellsのほうがグラフィックは強いそうですが、バグが多いみたいだったのでこちらにしました。
USBインストーラとかついてます。ドライブなくてもできるというか、速いし静かだしっていうメリットもありますね!

環境は
MacBookAir(2012モデル)
Core i7(2.0GHz)
メモリ 8GB
SSD 256GB
です。

bootcampだと
Win7付属のWindowエクスペリエンス インデックスは
プロセッサ7.1
メモリ7.4
グラフィックス6.4
ゲーム用グラフィックス6.4
プライマリハードディスク7.9

このベンチマークを走らせてみると
スコアは2492
判定は「普通」でした。そんなもんですね。

でもこれやってると、
PCからすごくゴォォォッッてなりました。ファンとかついてたんだなーってびっくりしましたw

vmware fusionはまず初期設定で実行しました。

プロセッサ5.5
メモリ5.5
グラフィックス5.9
ゲーム用グラフィックス5.1
プライマリハードディスク7.2
でした。
動作もブラウザで素早くスクロールしたらカクカクカクって感じでした。
でも、終了したあとみてみると、設定が
コア1つ、メモリ2048MB使う設定であることに気づきました。(コアって言ってもスレッドのことかな?)

メモリもせっかくいっぱいあるので、
2コア、メモリ3.5GB使う設定に変えてもう一度実行しました。
すると、
プロセッサ6.6
メモリ5.9
グラフィックス5.9
ゲーム用グラフィックス5.1
プライマリハードディスク7.5
までなりました!
コア4つ使う設定もあったんですが・・・それって大丈夫なのか?ってなったのでやめました。

仮想から起動してタスクマネージャを開いてみると、メモリ使用量865MBとあります。CPUはブログ書くぐらいじゃ5%も超えません。
仮想で使うならこれだけあれば十分?

仮想にしては予想以上に早いですね!さすが有料な優良ソフト!

でも、さっきのFF14のベンチマークはNow loadingが何時まで経っても終わらなかったので諦めました・・・
ブラックアウトではないんですが動かないようです・・・
まあそんなゲームこんなノートでやろうとすることが間違ってるのですが・笑 当然しません

当然ながらbootcampの方が高速ではあるのですが、仮想も十分な速さではあります。

なにより操作がMacライクなのが使いやすいです。
下のかな・英数ボタンも使えますし、capsをcommandとして認識させている僕の設定も反映されたままです。
スクロール方向も下に下げると上に上がるタイプです。
重い作業をしないなら使うのは仮想の方がいいですね。
右クリックとかの設定もすべて反映されたままです。

そしてもうbootcamp使いませんね…
Macに慣れてくると使いにくいので。

話変わりますが、今日、入学式でした。
テレビ放送もNHKなどでされていました。僕は映らなかったですが。
結構いい席にはいたのに笑