帰省のついでに、アニメ「ゆるゆり なちゅやちゅみ!」(OVA)、「ゆるゆり なちゅやちゅみ!+」(特別編)、「ゆるゆり さん☆ハイ!」(3期)の舞台探訪(聖地巡礼)に行ってきた。
続きを読む
投稿者「mod_poppo」のアーカイブ
舞台探訪に行ってきたよぉ 〜井波編〜(「ゆるゆり なちゅやちゅみ!」聖地巡礼)
最近「ゆるゆり」にハマっているので、帰省のついでに舞台探訪(聖地巡礼)的なやつに行ってきた。
まずは「ゆるゆり なちゅやちゅみ!」(OVA)に登場する、井波(現・南砺市)の閑乗寺公園から。(実家から近い&小さい頃から何回か行っていて思い出深いので) 続きを読む
解析接続っぽいことができる Web ページ(わくわく解析接続)を公開した
対数関数や平方根のような複素関数は、閉曲線に沿って解析接続すると元の関数と値がずれる場合がある。対数関数や平方根であればまだ単純だから良いが、根号の中に多項式等が入るような関数だと、具体的な曲線に対して関数の枝を計算するのは少し面倒である。
というわけで、以前に作った複素積分の Web アプリ(ブラウザアプリ)のような感じで、平面に描いた曲線に沿って解析接続してくれるアプリ(Web ページ)を作った。「複素関数で遊ぼう」「たのしい複素積分」に続く、複素関数シリーズ第3弾とでも言おうか。今のところ愛称は設定していないが、気が向いたらページのタイトルを「わくわく解析接続」に変えているかもしれない。→変えた。この記事のタイトルも変更。 続きを読む
逆双曲線関数と逆三角関数の branch cut
逆双曲線関数と逆三角関数をナメてかかっていたら落とし穴にはまったので、ブログ記事としてまとめておく次第である。 続きを読む
浮動小数点数による複素数の演算に関する注意点
コンピューターで複素数を表す時は、通常は実部と虚部の組をそれぞれ浮動小数点数として持つ。
複素数の演算は、数学的には 続きを読む
Lua で遊ぶ浮動小数点数
(倍精度)浮動小数点数でいろいろ遊ぶ際に、 Lua が便利なのではないかと思った。以下、特に断らない限り「浮動小数点数」と言ったら倍精度のものを指す。
なぜ Lua を使うのか?
Lua はC言語で実装されていて、数値の扱いについてはC言語と近い挙動を示すと考えられる。C言語と違って累乗の演算子 (x^y
) があるのが地味に便利である。
Lua 5.2 以降では、浮動小数点数の16進表記をサポートするようになった。ソースコード中にリテラルで 0x1.fp2
と書けるし、文字列から数値に変換するときに tonumber("0x1.fp2")
と書けるし、数値から文字列に変換するときは %a
または %A
を使って string.format("%a",7.75)
と書ける。
あとは、標準ライブラリに足りない機能があったときに簡単にC言語で拡張ライブラリを書ける。
Raspberry Pi で赤外線リモコン
Raspberry Pi の GPIO に赤外線 LED をつけてリモコンとして使おう。
使ったハードウエア
- Raspberry Pi Model B
- 手元にあるのは、初代の、プラスじゃないやつ。microじゃない標準サイズのSDカードが刺さる。
- Arch Linux が入っている。Raspbian だと若干手順が変わると思われる。
- 赤外線LED
- 赤外線リモコン受信モジュール
- 3.3V で使えるもの。
- Raspberry Pi を送信側として使うつもりであっても、既存のリモコンの信号を分析するには受信モジュールが必要となる。
- トランジスター、抵抗、配線、ブレッドボードとか
参考にしたページ
- Raspberry Pi で赤外線リモコン – 猫ぱーんち!
- 回路を参考にした。というかほぼ同じ回路になった。
- IR remote with LIRC on Raspberry Pi 2 running RuneAudio (ArchLinux)
ネット上のブログ記事の情報は古い場合があるし、そもそも環境が違って(Raspbian vs Arch Linux)参考にならないかもしれない。ネットの情報は参考程度にして、ソフトウエアのマニュアル等を参照するのが大切である。
作ったもの(ハードウエア)
使う GPIO の番号は選択の余地があるが、適当に GPIO17=出力 (LED), GPIO27=受信 とした。
ソフトウエア的な手順
Linux で赤外線リモコンの信号を送受信するための LIRC というソフトウエアがあるらしいのでそれを使う。
1. LIRC をインストールする
Arch Linux のパッケージになっているのでラクチン。
# pacman -S lirc
2. LIRC をロードする
/boot/config.txt
を編集して、 LIRC をロードする。
/boot/overlays/README
を参照。例として lirc が書いてあった。
# nano /boot/config.txt
dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=27
を書き加える。
lirc をロードするのに modprobe
を叩いたり /etc/modules
を編集したりは、しない。
(この辺で再起動をかける?)
systemctl start で lircd を起動する。systemctl enable するとラズパイの起動時に自動で起動してくれるはず。
# systemctl start lircd
3. 受信テスト
mode2 コマンドで、受信したものを吐かせる。
# mode2 -d /dev/lirc0
適当にリモコンを向けて、
space (数字)
pulse (数字)
の羅列が出てきたら多分OK。
4. リモコンを登録
irrecord コマンドを使い、リモコンの信号をファイルに記録する。
# irrecord -n -d /dev/lirc0 lircd.conf
メッセージの指示に従う。
途中で、 Enter name of remote と聞かれたので、 homeceiling と入力した。出力ファイル名は homeceiling.lircd.conf となった。
Enter name of remote (only ascii, no spaces) :homeceiling Using homeceiling.lircd.conf as output filename
個別のボタンを登録する段になって Something went wrong: Cannot decode data
といわれ、最後に Try using the -f option.
と出てきたので、 -f
オプションをつけて再実行した。
# irrecord -n -f -d /dev/lirc0 lircd.conf
homeceiling.lircd.conf
ができた。
# cp homeceiling.lircd.conf /etc/lirc/lircd.conf.d/
5. 信号を送る
irsend SEND_ONCE (リモコン名) (ボタン名)
で信号を送れる。
# irsend SEND_ONCE homeceiling lighter
Canon 製一眼レフの赤外線リモコン
Canon 製の一部の一眼レフカメラ/ミラーレスカメラには赤外線センサーがついていて、純正もしくは互換品の赤外線リモコンを買うとカメラに触れずにシャッターが押せる。(エントリーモデルの安い機種だと赤外線センサーがついていなかったりするので注意)
純正品のリモコンとしては Canon RC-6 が販売されている。Amazonとかを覗くと、 RC-6 互換のリモコンが山ほど売られている。
動作モードとしては、以下の二つがあり、リモコン側で切り替えられる。
- 即時シャッター
- 2秒後シャッター
有線のリモートスイッチと違って、赤外線リモコンを使うには、カメラ側の動作モードをリモコンモードにしなければいけない。
この赤外線リモコンが送る信号は割と単純で、以下のページで解析されている。
www.doc-diy.net :: Canon RC-1 remote control reverse engineered
AVRとかのマイコンと赤外線LEDを組み合わせれば、自作の赤外線リモコンを作ることもできる。上記のWebサイトにも作例がある。
www.doc-diy.net :: DIY Canon RC-1 IR remote control clone
というわけで赤外線リモコンを自作しようかと思ったが、既製品で良さそうなのを見つけたのでそれを買ってしまった。赤外線が結構強力で、2.5mmステレオケーブルを繋げば有線リモコンとしても使える。欠点があるとすれば、電池がやや特殊なことか。
浮動小数点数の関数とオーバーフロー
大抵のプログラミング言語には指数関数 exp や三角関数 sin, cos, tan などの初等関数が用意されている。これらの関数はよく使うので、標準に用意されているというのは合理的だろう。しかし、初等関数の組み合わせで書けるような関数がわざわざ専用の関数として用意されている場合がある。 続きを読む
LaTeX の数式をターミナルで手軽に MathML に変換する
テキストエディタで HTML 文書を直書きしていて、 MathML で数式を書きたいけど MathML 直書きは嫌だ!という時。Pandoc を使えば、ターミナルで手軽に LaTeX 形式の数式を MathML に変換できる。
例:
$ pandoc -f latex -t html5 --mathml \(\frac{1}{e^z-1}\) ^D <p><math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mfrac><mn>1</mn><mrow><msup><mi>e</mi><mi>z</mi></msup><mo>−</mo><mn>1</mn></mrow></mfrac><annotation encoding="application/x-tex">\frac{1}{e^z-1}</annotation></semantics></math></p>
太字の部分が自分で入力する部分である。(^D は Control-D の意)