WordpressのURLを変更しました

お久しぶりです。ぐりです。

今更、思ったのですが、http://b.gurigoro.net/という、URL、ちょっと分かりにくいな、と思ってしまったので、http://blog.gurigoro.net/に変更しました。変更前のbっていうのは。blogの頭文字ということなんですが、まあ、分かりにくかったんじゃないですか?

というわけで、変更するにあたって、いくつかのポイントで引っかかったので、それについて、メモ書きということで残しておきます。

まず、DNSサーバのレコードを更新して、blog.gurigoro.netに元のURLと同じレコードを設定しました。具体的には、v2.gurigoro.netというURLに、CNAMEで転送させてます。そうすると、http://b.gurigoro.net/http://blog.gurigoro.netの両方のアドレスでアクセスできるようになります。ただ、そうすると、Google等の検索エンジンクローラーから見ると、http://blog.gurigoro.netのほうは、あたかも、http://b.gurigoro.netのクローンであるように見えてしまい、SEO上非常に不利です。さらに、新アドレスがなかなか利用されないようになってしまいます。なので、http;//b.gurigoro.netにアクセスした場合、301リダイレクトで、http://blog.gurigoro.netに転送するように、.htaccessで設定しました。

これについては、ちょまど氏(@chomado)のブログの、[.htaccess][canonical] ドメイン取得後のリダイレクトなどを参考にしました。

ですが、うまくいきませんでした。調べてみたら、apacheサーバで.htaccessが読みこまれてなかったようです。というわけで、httpd.confに.htaccessを有効化する設定を書き加えました。

<Directory "Wordpressのパス">
AllowOverride All
</Directory>

AllowOverride Allで.htaccessによる設定のオーバーライドを許可します。この後、

# httpd -t
Syntax OK
# service httpd reload
Reloading httpd:

これで、http://b.gurigoro.netへのアクセスはhttp://blog.gurigoro.netにリダイレクトされるようになりました。

が、

Wordpressのログインができなくなりました。

そこで、phpmyadminWordpressのデータベースのoptionsテーブルのsiteurlのレコードのurlを書き換えました。一応これで、無事に移転できました。

ポイントは以下の3つ

  • ドメインのレコードを変更すること
  • .htaccessで301リダイレクトをすること
  • Wordpressのデータベース内のURLを書き換えること

以上、WordpressのURLの変更についてでした。

aitendoで特価1000円だったTFTモジュールを試食1

こんにちは、ぐりです。前回、iPhone5sを脱獄しましたけど、入獄しました。修理してもらいました。入獄してればわからないんですかね。というわけで、入獄生活を送ってますが、意外と不自由じゃなかったり。

さて、8/1(金)に雑学追究室のやつらが浜松からわざわざ東京に遊びに来たので、テスト期間中で結構やばいぐりも午後から合流しました。アルバイトの給料も入ったので、せっかくだからARMマイコンに手を出してみようと思ったので、秋月電子通商でLPC1769評価ボードを買ってきました。

LPC1769

こいつ、なかなかすごくて、秋月で3000円なのに、いろんなインターフェースがついてて面白いんです。例えば、Ethernet。秋月のパルストランス内蔵のRJ-45ジャックを配線するだけで、Ethernetに接続できちゃいます。外付け部品は一切不要。さっそく、サンプルプログラムを動かしてみましたが、DHCPクライアントとかも動かせるようで、IoTなものづくりで重宝しそうです。これからは、AVRと並行して、ARMのほうもいじっていきます。

そして、雑追の馬(通称、雑学追究室K)がAitendoに行ってみたいとか言い出したので、勘を頼りにAitendoに向かいました。俺以外Aitendoに行ったことがなかったみたいで、しかも、勘で進むから心配だったみたいです。Aitendoの直営店は、現在、新店舗を作っている最中であり、旧店舗になる直営店では、在庫処分のセールが行われてました。非常に魅力的なものが50%オフでかなりお得だったので、ついついいろいろ買ってしまいましたw

その中の1つが、今回取り上げるTFT液晶モジュールです。こいつは定価1980円ぐらいのところ、セールで1000円で買えました。Kとかも買ってたと思うよ。240x320pixelのQVGAで、画面サイズは2.4inch、タッチパネルとSDカードスロットもついていたので、これは買うしかない!と思って買ってしまいました。型番は、M024C9320TPで、液晶のコントローラはILI9320がのってる、と書いてありました。

ARMマイコンにもなれ、手元にあった7segLEDでGPIOの操作の方法をつかんだら、さっそくつないでみることにしました。が、やっぱり、データシートは英語なんですね。英語のデータシートは読めなくはないですが、ちょっと読んでると飽きてきちゃったりするんで、精神的にはあまりよくなかったりします。いろいろなサイトからサンプルプログラムをかき集め、最初にDeviceCodeを読み取ってみることにしました。

ILI9320のDeviceCodeは0x9320です。もちろん、その値が読み取れることを期待して、プログラムを書きましたが、何と、取得できた値は、0x1505でした。あれ、って思ったので、ビット列を並び替えてみたりしましたが、絶対に合わないんです。そして、0x1505で検索してみたら、ありました。ルネサス社のR61505Uというコントローラです。なんだよ、Aitendoのホームページに嘘書いてあるじゃん、とか思いましたが、調べてみると、ILI9320と一部互換性がある、ということでした。一部といわれても、どの部分かわからないので、しっかり、R61505Uって書いておいてほしかったですね。

というわけで、その型番でサンプルプログラムを探し、それを写すように初期化ルーチンを書いてみましたけど、うまくいってるのか、わからないです。ロジアナがあれば、どういうデータが流れてるか一目でわかるんだけどな。まあ、初期化しただけじゃ目立った表示の変化はないので、もしかしたら、初期化がうまくいってるのかもしれないですけど、黒く塗りつぶす処理がうまくいってないので、どっちにしろ駄目なんです。誰か、LPC1769のサンプル持ってたらください。一度も触ったことないPICのソースを勘で読んでみたりしても、よくわからんレジスタに書き込んでたりするんで、お手上げです。データシート見ろよってことなんでしょうけど。

相変わらず、進捗のほうはダメダメです。液晶のほう、進捗があったら、2として更新したいですけど、更新できるのかな。クロックが早すぎて追いついてないんじゃない?っていうことも思ったので、Arduinoでも試してみるかもしれません。では、よい進捗を願って。

最後まで読んでいただきありがとうございました。何か情報があったらコメントください。

iOS7.1.1のiPhone5sを脱獄してみた

お久しぶりです。ぐりです。先日、中国のハッカーより、iOS7.1.xの完全脱獄ツールが公開されたため、iPhone5sを脱獄してみました。

※脱獄は、文鎮化などの危険を伴うとともに、故障等の際のサポートが受けられなくなる可能性があります。自己責任で実行してください。この記事を参考したことによる損害等の一切の責任は負いません。

必要なもの

  • iOS7.1またはiOS7.1.1がインストールされたiOSバイス
  • WindowsXP以降が搭載されたPCまたは、Mac OS Xが搭載されたMac
  • LightiningケーブルまたはDockケーブル
  • Pangu

 脱獄ツール、Panguをダウンロード

http://pangu.io/にアクセスします。

Pangu公式サイト

Windowsの場合は右の「Windows」をクリックすると、Pangu_v1.1.exeがダウンロードできます。 筆者はMacを持ってないのでMacの説明はできません。あしからず。

 

脱獄する

Pangu_v1.1.exe

ダウンロードしたPanguを起動し、iPhoneiPadをPCに接続します。

この画面が表示されます。今回はVersion1.0を使用してるので、中央にあるチェックを外します。これは、PP助手(PP25)をインストールするか、という設定です。今回は、純粋に脱獄だけしたいので、チェックは外しておきます。

最新版をダウンロードしている場合はチェックボックスがないので、そのまま進んでください。

そうしたら、赤く丸で囲んであるボタンをクリックしてください。脱獄作業が始まります。

日付を6/2に戻す

 

脱獄が始まると、すぐに、日付を2014年6月2日に変更するように要求されるので、変更します。

「設定」→「一般」→「日付と時刻」→「自動設定」をオフに→2014/6/2に設定

日付の設定

 

そのあと、プログレスバーが半分ほどまで行くと、iPhoneのホーム画面にPanguのアイコンが表示されるのでタップして起動します

Panguアイコン

 

Pangu起動中

 

後は、しばらく放置すると脱獄が完了します。

 

もう一度繰り返しますが、脱獄は自己責任です。この方法を利用したことによる損害に対する責任は一切負いません。

ニコ動に動画3本投稿

お久しぶりです。ブログのことを完全に忘れてTwitterをしていた、ぐりです。

さて、先週の土曜日、八王子のネカフェに行ってきました。久しぶりにPCを長時間できたので、動画の投稿をしてみました。

Youtubeに投稿してあった動画を2本ニコニコ動画に転載し、新しく、Minecraftのゆっくり実況を投稿しました。

 

 

 

よかったらご覧ください

 

マルツのUSB-UART変換モジュール

AVRのデバッグ用にUARTで使うPD0とPD1を残してありましたが、よく考えるとUARTをモニターできるものがArduino以外になかったので、近所のマルツでこのモジュールを\893-で買ってきました。(近所にマルツしかパーツ屋がないのは苦しいorz)

マルツの超小型USBシリアル変換モジュールの箱

本体 マルツの超小型USBシリアル変換モジュール

箱を開けると本当に小さい基板と連結用のソケットが入っていて、これをはんだづけするとブレッドボードなどに指して利用できるみたいです。上の写真ははんだづけしてあるものです。

チップはProlific社のPC2303SAでUSB1.1/2.0フルスピードに対応しているようで、USBmicroのBソケットが付いています。

このモジュールの仕様で、信号ラインは3.3Vであるとこに注意しないといけません。5V系だったのでとりあえず手元の1kΩの抵抗2つで分圧してから入力させました。これで十分みたいです。電源は5Vでいいみたいですが。

この基板、ほんとうに小さくてUSBケーブルを指すとすぐ動きやがるのでケースとついでに5V変換の基板もつくろうと思っています。

【AVR】_delay_ms()がうまく動かない?

AVRで工作していると、1秒待って欲しいって思うときにディレイ関数を使いたくなります。そのノリで使っていたら、100msと指定していたのに10秒以上待たされるという現象が起きました。なぜでしょう。

まずはじめに疑ったのは、クロック周波数です。_delay_ms()関数では指定された時間とクロック周波数から計算されたサイクル数、待つという実装がされています。つまり、クロック周波数が違えば指定した時間通りに動いてくれません。

というわけでクロック周波数を確認しました。筆者が今回使っていたAVRはATmega328Pです。内蔵RC発信器からの8MHzで動作させています。Hzで書くと8,000,000Hzになります。周波数の指定は、F_CPUで定義することでできます。この場合は、

[code lang="cpp" highlight="1"]

define F_CPU 8000000UL

int main(void){ _delay_ms(100);

return 0; }

[/code]

このように8,000,000Hzである、と宣言します。最後のULはunsigned Long型の定数であると指定するためのものです。8,000,000という値はintの範囲(-32768~32767)を超えているので、これがないと溢れてしまいます。 今回は正しく定義されていたので別の問題である、ということで考えうる他の原因を考えました。

次に疑ったのは、_delay_ms()関数が引数として取りうる値が制限されていることです。調べてみると過去のバージョンのことで当てはまりませんので割愛します。

最終的に考えたことは、delay_ms()関数は使ってはいけないのではないかということです。つまり、delay_ms()関数を使っても正確に測ることは不可能な場合があるということです。 それは割り込みを使った時です。

考えてみればわかるのですが、時間から求めた回数だけ「何もしない」を繰り返しているわけです。その間に割り込みが発生してしまえばおかしくなるのはすぐに分かります。

というわけで、原因が割り込みであるというところまでは確認をしていませんが、LEDのダイナミック・ドライブでタイマー割り込みを積極的に利用しているのでこれが原因であるということで間違いないと思います。どのよう解決するかはまたどこかで書こうと思います。

ATmega328PからSC1602互換LCDを使ってみる。1

久しぶりです。ぐりです。 今回は、マルツでSC1602互換のTC1602E-06TというLCDを買ってきたので、AVRから使えるようにしてみたいと思います。

LCDの仕様

このLCDは、ずっと言ってきたとおり、秋月等で売られているSC1602と互換性があるので、SC1602のライブラリをそのまま流用することができます。

マルツで買った液晶

マルツで買った液晶

電源はDC5Vのみ、5x7ドット構成の文字が16桁、2行表示できます。 また、黄緑色のバックライトを搭載しています。

[caption id="attachment_41" align="alignnone" width="300"]バックライトだけ点灯。 バックライトだけ点灯。[/caption]

制御方法

I2CとかSPIとか少ない線でつなぐことができるシリアルインターフェイスではなく、8bit幅の普通のパラレルインターフェースみたいです。しかし、コマンドを送信することで、4bitモードに切り替えることができ、2回に分けて8bit分送信するという手間がかかる代わりに、I/Oが節約できるというメリットが有ります。

今回は、4bitモードでArduinoでも使われているATmega328Pから使ってみたいと思います。

[caption id="attachment_42" align="alignnone" width="300"]配線してみた。 配線してみた。[/caption]

写真右上のブレッドボードに刺さっている3本の抵抗は、コントラスト用に手持ちの1kΩを直列に3kΩにしてます。これでも悪く無い。

AVR-LCD間の配線は、PORTC(ArduinoのAnalogIN)と、PORTBの1番の7本を使いました(と言うか、サンプル通り)。

RS(レジスタセレクト)、R/W(読み込み・書き込み)、E(イネーブル信号)、DB4~7(データ4bit)文を接続し、使わないDB0~3はオープンにしました。

バックライトLED用の電源は、ICのVDD,VSSからとるように、はんだジャンパをしました。

[caption id="attachment_43" align="alignnone" width="300"]JP2とJP3をショートさせてあります。 JP2とJP3をショートさせてあります。[/caption]

次回、表示させてみたいと思います。(上の写真は表示されてますが・・・)

おまけ

[caption id="attachment_44" align="alignnone" width="300"]12Vを直にかけたため死んでしまったAVR。"died"と書いておいた。 12Vを直にかけたため死んでしまったAVR。"died"と書いておいた。[/caption]