haphysics blog - 幸福の物理ブログ

みんなに物理と工作と幸福をお届けするのだァ~!

真・東工大生のための恋愛学入門〜線形系に従う恋の行方〜

訂正

 行列式の計算が誤りであるというご指摘を受けました。これに伴い内容を大きく修正しました。ご迷惑をお掛けして申し訳ございません。

Twitterで割と反応があった

 今週金曜日に東工大で「東工大生のための恋愛学入門」という、なんだかよくわからない講義がありました。受けてないので詳細はわからないのですが、どうやら数式は出てこなかったようです。

 で、恋愛"学"と聞いて真っ先に頭に浮かんだのがStrogatzの恋愛問題(Love Affairs)でした。

ストロガッツ 非線形ダイナミクスとカオス

ストロガッツ 非線形ダイナミクスとカオス

Twitterで上記の本から一部抜粋したところ割とTwitterで反応がありました。

 気になる人はぜひStrogatzのNonlinear Dynamics And Chaos(非線形ダイナミクスとカオス)を手にとってみてください。

もしも恋愛が線形系だったら

続きを読む

今日はしたろうの誕生日でした

今年も祝ってもらった

 物性物理学専攻の友人らから誕生日プレゼントをもらいました!ありがとう〜〜〜!
f:id:shitaro2012:20151113004728j:plain

今年も祝ってみた

 去年はFM音源ICでハードウェア的にハッピバースデートゥーミーしました。だから今年はソフトウェア的にハッピバースデートゥーミーしたいなあと考えました。shitaro-happy-physics.hatenablog.jp

 どうしようと考えていたら、こんなドキュメントを見つけました。jp.mathworks.com

 なんと、MATLABには「波形をそのまま鳴らす」関数があったのです!これはもう楽器ですよね。というわけでMATLABで音を鳴らそうと考えました。

 先週の日曜日を潰して実装したのが「MIDIファイルをパースする」関数と「パースしたMIDIデータに従って波形を出力する」関数です。

 実際にMATLABで実行した動画を以下に載せます。 サムネ
f:id:shitaro2012:20151113004802p:plain

第8回rogyゼミに参加して〜「したろう配列」の解説〜

ついに第8回

 10月24日(土)に第8回rogyゼミが開催されました。今年はしたろうを含む12人が発表しました。発表内容はゲーム紹介、3日で作ったロボット、形而上学など多岐にわたるものでした。
 rogyゼミの運営担当が今回からひとつ下の学年に引き継がれました。初めての運営だったと思いますが、上手く仕切っていました。すばらしい会にしてくれて本当にありがとうございました。

したろうの発表内容

 私が今回発表したのは「したろう配列」についてです。したろう配列とは「したろうにとって最適なキー配列」のことです。CapsLockキーをどかしたところから始まり、もう2年も研究しています。shitaro-happy-physics.hatenablog.jp
shitaro-happy-physics.hatenablog.jp

 今回使用したスライドは例によってSlideShareに上げました。

 要約すると「キー配列をいじってみよう」ということです。技術的なことは去年の記事を参照していただければ。

 ちなみに、したろう配列の具体的実装はgithubで公開しています。対応OSはLinuxです。現在のしたろう配列はver.7です。Linux MintとArch Linuxで動作確認しました。したろう配列はローリングリリースなので動作保証しかねます。自己責任で参考にしてください。github.com
 

したろう配列をハードウェアで?

 今までのしたろう配列はソフトウェア上で実装していました。しかし、よくこんな意見を言われます。「オレオレ配列に慣れちゃったら別のPCを触るときに困るじゃん?社会に出れないじゃん?」と*1。要するに社会に出て、自分以外のPCを使う機会が増えた場合困るでしょってこと。だったらハードウェアでしたろう配列を実装すればいいじゃないか、というのが私の答えです。具体的に言うとしたろう配列のキーボードを自作するってことです。
 USB通信はマイコンで頑張るとして、キートップ3Dプリンタで作ろうと考えてます。はやく設計したいです。

おまけ:QWERTY配列はわざと打ちづらくしたって本当???

 Dvorak配列を説明する人の中に「QWERTY配列は機械式タイプライターの腕が絡まないようにわざと打ちづらくしている」(以下、"わざと説"と呼ぶ)と話す人がいます。果たして本当でしょうか。
 結論から言うと分かりません。わざと説を肯定する資料も否定する資料も(自分が調べた中では)見当たらなかったからです。ただ、個人的にはわざと説には懐疑的です。以下、個人的で主観的な感想なのでわざと説を否定するものでも肯定するものでもありません。

 親の実家に機械式タイプライターがありました。実際に打ってみると分かるのですが、キーが大変重いです。機械式タイプライターは文字の形に掘られた腕をインクリボンに叩きつけることで印字するのでかなり力が必要です。特に小指(例えば'A')はとても難しいです。これほど力を入れて押しこむのに、万人がタイプライターの腕を絡ませるほど素早く打鍵できるとは到底思えません*2。だからわざと説は違うんじゃないかなあと思いました。
 肯定、否定どちらでも、なにか裏付ける情報を知っていたら教えてください。キーボードの歴史にとても興味あります。
f:id:shitaro2012:20151023191517j:plain

*1:私はQWERTY配列と両立することに成功したので困ることはありませんが。

*2:「思えません」に注目してください。これは個人の感想です。少なくとも、私が触ったこのタイプライターが打鍵するのに重いだけで、他のタイプライターも同じくらい打鍵しづらいとは考えていません。

工大祭2015に参加しました!

見学に来てくださった皆様、ありがとうございました!

f:id:shitaro2012:20151014011709j:plain

 工大祭2日間、それはとても過酷でした。10時から17時まで、昼食をとらずにひたすら展示物の説明をしていました。徐々に喉から痛みが感じられるようになり、終盤では声がちゃんと出ていたのか定かではありません。でもしょうがないじゃないですか〜。だって楽しいんだもん。いろんな人と話せるのが。
 来てくださったお客さんは、それはそれはいろいろな人でした。受験を控えた高校生、やたら考察が鋭い小学生、物理学の専門家、物理学科のOBなどなど。特に嬉しかったのは「幸福の物理ブログを読んでいます」と言ってくれた人です!身内以外にこう言ってもらえるなんて、心の中で感涙していました。いえ〜いみてるぅ〜?
 お客さんの中にはとても考えさせる質問や意見をする方がいて、大変勉強に、そして励みになりました。後日まとめたのをブログに書こうかと思います。

幸福の物理に新たに2人が加わった!

続きを読む

STM32F4Discovery + stm32plusでUSARTしてみた

月が綺麗ですね

中秋の名月に続いてスーパームーン、月を見る機会が連続して訪れた面白い2日間でした。

f:id:shitaro2012:20150929130106j:plain
コンデジでも月の表面がよく写りました。

f:id:shitaro2012:20150929130138j:plain
本館も月明かりで照らされていました。

長らく放置していたSTM32F4Discoveryを使う

先週ロ技研合宿に行ってきました。合宿のおかげでSTM32欲が高まりました。
そういえばSTM32F4Discoveryを買ったのに放置していたなあと。shitaro-happy-physics.hatenablog.jp
当時は1750円で買えたんですね…。とりあえず入門としてUSARTを使ってみることにしました。

USBよりUSART?

続きを読む

電気ブランを飲みに徒歩で目黒駅から浅草駅まで行ってみた

B日程の副産物

 院試の筆記試験1週間前辺りからなぜか明治、大正文化について興味を持ってしまった。その中に「電氣ブランデー」「神谷のバァ」というキーワードを目にした。院試終わったら電氣ブランを飲むということをその時決心したのだった。

タイムリミットは2時間

 父親と次の日曜日に神谷バーへ行くことを誓い、一週間経った今日、浅草駅を目指すのだった。東京観光を兼ねて徒歩で行こうと決めたのが14時。集合時間は17時だったので間に合うか賭けにでた。目黒駅に14:59到着。残された時間は、2時間。

ルート

 ここでルートを確認しよう。目黒駅から浅草駅までを黒い線で結んだものが図1である。
f:id:shitaro2012:20150906223820p:plain
図1.目黒駅から浅草駅までを記した地図

 道順は実に単純である。下記の順番で歩けばよい。

  1. 目黒通り
  2. 国道1号
  3. 第一京浜(国道15号)
  4. 江戸通り(国道6号)

 問題は時間である。2時間以内に行かなければならないのだがグーグルマップによると2.5時間かかるとのこと。
1時間で銀座を通過することを目標に、できる限り早歩きで進むことにした。

続きを読む

東京マルイ 次世代電動ガン AKS74U を修理した

ハンドガード内部のネジのゆるみは仕様?

 前回紹介した東京マルイ次世代電動ガンAKS74Uの追記です。shitaro-happy-physics.hatenablog.jp

 自室でフロントサイトの調整をしていた時のこと。フルオートで数回撃ち終わった時に突然ハンドガード辺りからカランという音が聞こえた。その後、本体を振るとやはりハンドガードからカラカラと音が聞こえる。どうやら内部でネジがとれたようだ。

 東京マルイ次世代電動ガンAKS74Uのハンドガード内部のネジがとれるこの症状はこのレビューに言及されていた。
次世代AKの注意点 - かもめ軍曹さんの装備レビュー | サバゲーる
やはりネジが緩みやすいのだろうか。もし同じ電動ガンを持っているならばこのハンドガード内部のネジの緩みに気をつけるのがよさそうだ。

分解してみた

 ネジを再び取り付けるべく分解してみた。電動ガンを分解することは初めてのことだが、説明書に分解方法が記されているので容易にできた。
 ハンドガードを取り外すために説明書のp.27「ヒューズ交換のしかた」を参照した。

 必要な道具は

  • 2mm六角レンチ(付属品に含まれている六角レンチはこれを満たす)
  • プラスドライバー

フラッシュハイダーを外す

 フロントサイト部分についているロックピンを押し込みながらフラッシュハイダーを回して取り外します。フラッシュハイダーが取り外されるとフロントサイト底部のネジ2本を確認できます。このネジは2mm六角レンチで取り外すことができます。
f:id:shitaro2012:20150906135801j:plain

フロントサイトを外す

 フロントサイト底部にある2本のネジを2mm六角レンチで回して取り外します。これらのネジを取り外したらフロントサイトの固定が外れるのでそれを前方にスライドさせて外します。
f:id:shitaro2012:20150906135845j:plain

 フロントサイトを取り外すとハンドガードキャップ上部に1本のネジが確認できます。このネジは2mm六角レンチで取り外すことができます。
f:id:shitaro2012:20150906135856j:plain

ハンドガードキャップを外す

 ハンドガードキャップ上部にある2本のネジを2mm六角レンチで回して取り外します。このネジを取り外したらハンドガードキャップの固定が外れるのでそれを前方にスライドさせて外します。ハンドガードキャップを取り外すとハンドガードキャップを取り外すことができます。
f:id:shitaro2012:20150906135919j:plain

ハンドガードを外す

 ハンドガードをまず前方にスライドさせます。ハンドガードの突起がレシーバーから外れたらハンドガードを下側に外します。これでハンドガードを外すことができました。

とれたネジとご対面

 ここでネジが床に落ちた。写真中の指示棒で示されている場所のネジがとれてしまったようだ。
f:id:shitaro2012:20150906135948j:plain

 他のネジはネジロック剤で固定されているのだろうか、とても固く締められている。とれてしまったネジだが、ネジロック剤は持ち合わせていないのでドライバーで固く締めるだけの処置を施した。後日部室にあるネジロック剤で固定しようと思う。

東京マルイ 次世代電動ガン AKS74U を購入した

AK74を買った

 近々部内サバゲが行われるみたいです。フィールドは室内なので取り回しの良いAKが欲しいと考えていました。そこでAKシリーズの中でも一番ちっちゃなAKS74Uを購入しました。

購入したのは東京マルイ次世代電動ガンAKS74Uです。
AKS74U - 次世代電動ガン | 東京マルイ エアソフトガン情報サイト

続きを読む

はじめてのSPI!

SPI通信をやってみた

f:id:shitaro2012:20150716160918j:plain
PIC18F27J53グラフィックLCD AQM1248AとSPI通信して文字を表示している様子。

意外と簡単だった?

実は今までSPI通信を使ってこなかった。でも、

  • SDカードを使いたい
  • SPI通信対応LCDで信号線を節約しながらデバッグしたい

と思ったので院試勉強の息抜きに挑戦してみました。

MSSPを使おう

主にこのページを参考にしました。
電子工作室-MSSPモジュールのSPIモードの使い方

SPIとはSerial Peripheral Interfaceの略です。2つのシフトレジスタが環状に接続されていて、その間をシリアルで通信します。SPIでは原理的に送信と受信が同時に行われます。
f:id:shitaro2012:20150716174554p:plain

このSPI通信を簡単に実現するためにPICにはMSSPモジュールというものが備わっています。
f:id:shitaro2012:20150716175407p:plain

今回はMSSPモジュールをSPIモードで使います。データシートには親切にもSPI通信をするために必要なピンがしっかりと書かれています。
f:id:shitaro2012:20150716175525p:plain
f:id:shitaro2012:20150716180252p:plain

これとLCDのデータシートにある接続例
f:id:shitaro2012:20150716180238p:plain
を比較してつなげました。要点だけを挙げると

  • PICがマスター、LCDがスレーブ
  • PICのSDOピンとLCDのSDIピンをペアにする
  • 互いのSCKピンをつなげる
  • SPIモジュール専用のピンのほかにCSピン、RSピンを適当なI/Oピンに割り当てる

です。

SSPSTATレジスタとSSPCONレジスタをいじればおk

ソフトではSSPSTATレジスタ、SSPCONレジスタを適切に初期化すればSPI通信は簡単に使えます。
初期化した後はSSPBUFレジスタにデータを代入すればSPI通信してくれます。

LCDを表示させるためのコマンドはLCDのデータシートにすべて記載されています。
f:id:shitaro2012:20150716181443p:plain

LCDの文字については
はじめてのPIC-SPI接続グラフィックLCD表示器(AQM1248A)の配列をそのまま使用しました。

ArchにPICの開発環境を構築した

先月、メインで使っているサブPCをArchにした。shitaro-happy-physics.hatenablog.jp
そういえばPICの開発環境を構築してなかったなあと気づいたのでメモ書き。

MPLAB X IDE

まずはMPLABを導入します。
公式サイトから圧縮ファイルを落として解凍します*1
次に解凍したインストーラーに実行権限を付与してインストーラーを起動します。
後はインストーラーにしたがって導入終わり。

XCx Compiler

次にコンパイラを導入します。
公式サイトから圧縮ファイルを落として解凍します。
次に解凍したインストーラーに実行権限を付与してインストーラーを起動します。
後はインストーラーにしたがって導入終わり。

Microchip Libraries for Applications(MLA)

USBを使いたいのでこのライブラリを導入します。
公式サイトから圧縮ファイルを落として解凍します。
次に解凍したインストーラーに実行権限を付与してインストーラーを起動します。
後はインストーラーにしたがって導入終わり。

MLAが導入できない?

素直にインストールしたら失敗した。具体的には

sudo ./mla-v20**_**_**_linux_installer.run

で実行すると

Setup is now ready to begin installing Microchip Libraries for Applications v20**_**_** on your computer.

Do you want to continue? [Y/n]

までは進むのだが、ここでYesを選択すると

Error: There has been an error.
Error changing group of /path/to/installing/directory variable default path*** to username

となって異常終了する。
エラーを見る限り、現在のusernameグループに変更しようとしている。私の環境ではusernameグループは存在しないので、エラーがでるのもうなずける。
そこでインストーラーを起動する前にsuしてユーザーをrootに変更した。
こうすることでインストーラーはグループ名をrootに変更しようとするが、このrootは存在するグループ名でもあるのでエラーは起こりえない。

参考:Trouble installing Microchip Application Libraries | Microchip

32bitのアプリケーションを動かす用意

はじめインストーラーを実行できなかった。どうやら32bit環境のバイナリがない。というのも、今使っているOSは64bit環境だからだ。
そこで、Archには便利なものがある。Multilib リポジトリだ。
これにより64bit環境のArch Linuxで32bitのアプリケーションが使えるようになる。インストーラーを実行するのに必要なものを

yaourt -S multilib/lib32-hoge

で揃えればインストーラーを実行するための準備が整う。

*1:Archだとmicrochip-mplabx-binなるパッケージがあるんだけど、正常に起動しなかった。具体的には、インストール後に起動しようとコマンドを実行すると全く反応せずに終了してしまう。