Raspberry pi でVPN拠点間接続

海外在住の人は同様かと思いますが、海外のインターネット接続では日本のradikoその他の一部サービスにアクセスできません。

また、フィリピンの私が使っているプロバイダ(PLDT)は、今年の3月にIPアドレスの割当がグローバルIPからプライベートIPに変わってしまいました。 これは、私が日本に帰省している間に、主たる作業場であるフィリピンのPCに外部から接続することの障害になります。

そこで、フィリピンの自宅内のすべてのPCやデバイスを日本の実家の回線にVPNで拠点間接続することにしました。

現在の構成は下図のようになっています。

この図の中の、無線LANルータを取り外し、Raspberry pi 3で作成したVPN ブリッジに置き換えます。 そうすると、VPNブリッジの配下に接続されているすべてのPCやスマートフォンは、日本の実家のルータに直接接続しているのと全く同じ状態になります。その結果、日本限定のサービスの利用や実家のひかり電話を海外で利用すること、日本と海外でのファイル共有、さらにプライベートIPアドレスが割り当てられている海外のネットワークに対して日本からWake On LAN させたり、VNCで接続して操作する、といったことが可能になります。

※フィリピンのPLDTのADSLはPPPoEの認証なしに、LANポートに接続したデバイスに直接IPアドレスが割り当てられますので、ルータを取り外して置き換えることが可能です。 そうでない環境では、現在のルータのLAN側ポートに刺さっているLANケーブルを全部抜き、今回作成するVPNブリッジのWAN側ポートをルータのLAN側ポートに、VPNブリッジのLAN側ポートをスイッチングハブに接続し、ルータから抜いたケーブルはスイッチングハブに接続すればOKです。

実際のものはこんな感じです。

Raspberry pi 3にUSB LANアダプタを接続します。 ルータで例えると、Raspberry pi にもともとついているLANアダプタがWAN側、追加したUSBのLANアダプタがLAN側になります。 このアダプタにはケーブルが一本しか刺せませんので、実際にはこの先に8ポートのスイッチングハブを接続し、すべてのPCやデバイスに接続できるようにしています。 また、Raspberry pi 3に最初から内蔵されているWIFIアダプタは、無線LANルータにWIFI接続するのと同じく、無線LANの機器を接続することが可能です。

以上が概略ですが、実際の作業手順は以下のようになります。

必要なもの

  • 自分のSoftEther VPNサーバー。(こちらをご購入いただくとすごく簡単です。)日本の実家などに設置してください。VPNサーバーの設置場所が親拠点というか、本店という位置づけになります。
  • Rasoberry pi 3 、ACアダプタ、マイクロSDカード8GB、電源ケーブルなど。
  • USB接続のLANアダプタ。Raspbianにドライバが入っていてすぐ動作するものが簡単です。 AX8872Bのものなら大丈夫そうでしたので、私はこちらを買いました。

作業手順

マイクロSDカードに Raspbian Jessie を書き込み、LANケーブルでルータに接続して起動します。

ルータのステータス画面で確認するか、netenum などのツールを使って Raspberry pi のIPアドレスを調べます。

TeratermなどでSSH接続します。

以下、ターミナルからの操作です。

SoftEther VPN Bridge をダウンロードします。

解凍します。

解凍されたファイルがあるフォルダ vpnbridge に移動します。

makeします。

すると、ライセンス許諾の説明が表示されますので、1、1、1で進めます。 終わったらフォルダを移動します。

移動したフォルダに入り、ファイルの権限を設定します。

自動起動スクリプトを作成します。

エディタが開きますので、下記を貼り付けてから CTRL+x, y, Enterキーで保存して閉じます。

作成したファイルに実行権限を与えます。

自動起動するように設定します。

ここで一度再起動してください。

 

続いて SoftEther VPNサーバー管理マネージャを使って設定を行います。

SoftEther VPNサーバー管理マネージャをWindowsのPCにダウンロードしてインストールします。

新しい接続設定をクリック
Raspberry piのIPアドレスを”ホスト名”欄に入力

 

接続ボタンをクリック
適当なパスワードを設定、たとえば password とか
拠点間接続に最初からチェックが入っているのでそのまま次へ
接続先のVPN Serverへの接続設定を行う
自分用のSoftEther VPNサーバーのアドレス、ポート番号を入力し、仮想ハブ名を選択。 ユーザー名とパスワードを入れてOKをクリック

 

正しく入力されていれば”オンライン”の表示になります
ローカルブリッジの設定欄をドロップダウンし、追加したUSBのネットワークアダプタ(eth1)を選択する

以上の手順で有線LANについては完成です。

Raspberry pi 3には内蔵の無線LAN機能がありますので、ついでに無線LANでも接続できるようにします。

再びSSHでRaspberry pi に接続します。

apt-get updateしてから hostapdをインストールします。

続いて hostapd の設定ファイルを作成します。

エディタが開いたら下記内容をコピーして貼り付け、CTRL+x, y, Enterキーで保存して閉じます。

最後の二行の ssid は好きなSSID名に、wpa_passphrase は無線LANで接続する際のパスワードですので適当なパスワード(8文字以上)に設定してください。

続いて hostapdが起動するときに上記の設定ファイルを読み込むように設定します。

エディタが開きますので、

という行を探し、

に書き換えます。

ここまで出来たら再度SoftEther VPNサーバー管理マネージャを使ってブリッジの設定を追加します。先ほどは eth1 をブリッジ接続しましたが、今度は wlan0を追加します。

ドロップダウンリストの一番下 wlan0 を選択します。

完成です。 ここで電源を急に切ると設定が消える場合がありますので、一度ちゃんとシャットダウンしてください。

出来上がりました。

ルータのWAN側がPPPoEでなくDHCPになっている場合はルータを取り外し、Raspberry piのWAN側(内蔵のLANポート)をモデムに、LAN側(追加したLANアダプタ)をハブに接続し、PCなどのデバイスはハブに接続してください。

ルータのWAN側がPPPoEになっている場合は、ルータのLAN側ケーブルを全部抜き、本機のWAN側だけをルータのLAN側に接続、本機LAN側からハブを経由してすべてのPCなどに接続します。

電源を入れて1分ほどでVPN接続が確立し、PCにはVPNサーバーが設置してある場所のルータからIPアドレスが割り振られます。PCを再起動するか、ネットワークアダプタを一度無効にしてから有効に戻してください。

実際に作成してすでに数日間使っていますが快調です。 停電やADSLのコネクションが切れるようなことがあっても、回復すれば自動的に再接続されますので安心です。


Orange pi ラジオです

先日入手した Orange Pi zero にRaspberry pi のホームラジオを移植してみました。

本体には先日追記しましたように、小さなスピーカーとデジタルアンプが内蔵しています。

左側の緑の棒はモバイルバッテリーで、電源を挿し込むと起動し、WIFIでルータに接続してIPアドレスを読み上げます。

映像にはありませんが、そのIPアドレスをLAN内PCで開き、放送局を選局すると日本のラジオが聞こえてきます。 起動後、自動的に三重県のVPNサーバーにPPTPで接続を確立するように設定してありますので、三重県エリアのradikoとNHKが受信可能です。

スピーカーが駄目すぎて音質は悪いですが、小さなポケットラジオ程度のサイズで持ち運びも出来て、なによりフィリピンで日本のラジオが聞こえるというのは感激です。

Raspberry PiではRaspbian Wheezyで作成していましたが、Orange Pi Zero はArmbian の debian 8 がベースであるため、結構違うところがあって苦労しましたが、なんとか音が出るところまで行けてよかったです。

これでしばらく使ってみることにします。


Orange Pi Zero(7月26日追記)

先日の技適に関する投稿で紹介しました、Orange Pi Zero を買いました。 Banggood.com にて、送料は高いですがフィリピン(の私の住んでいる地域)に唯一届く、EMSでオーダーし、昨日21日に到着しました。買ったのは、白いケース入りのRAM512MB版で、CPUはAllWinner H2 4コアです。

中国からの荷物はいつもこんな感じの梱包です
基板は箱から飛び出していました。元々は右側の包みの中の箱に入っていたらしい。
基板、ケース、ネジ、ゴム足で一式です。

早速OS(Armbianから debian jessieをダウンロード)してマイクロSDカードに書き込み、起動してみました。 マイクロSDカードはいつも Raspberry pi 3 で使用しているSanDiskのSDSDQAB-008Gです。(Raspberry pi 3 では常に安定して動作し、破損することがありません。)

早速起動してみましたが、数回に一度しか起動せず、起動しないときはLANポートのランプがゆっくり点滅しています。 電源の問題か、あるいはSDカードの相性かもしれません。 OrangePiではクラス10以上のカードを使うように推奨していますが、SDSDQAB-008Gはクラス4です。

正常に起動したあとの電流は360~380mAくらい(5Aのアナログ電流計での計測ですので不正確)、Raspberry pi 3よりもかなり多い印象です。

とりあえず当初の目的だった、ホームラジオを移植するため、apache2, PHP5, rtmpdump, ffmpeg などをインストールしまして、そのまま翌朝まで電源を入れたまま放置していました。

で、ケースが結構熱くなっていたので裏返してみたところ、裏蓋が溶けて変形していました。

SDカードスロットのあたりですが、基板の表側にはCPUがある部分ですので、CPUの発熱が基板の裏側まで伝わり、金属のSDカードスロットを通して蓋を溶かしたようです。

とりあえず、このケースのまま使うとそのうちえらいことになりそうですので、なにか別のケースを探さねばなりません。 ヒートシンクを貼れば、と思われるかもしれませんが、以前Raspberry piでヒートシンクの効果を検証したことがあったのですが、単にヒートシンクだけを貼っても蓄熱材としてしか機能せず、CPU温度上昇が遅くなり、温度低下も遅くなるだけで、最高温度は下がりませんでした。 フーーーッと息を吹きかけるとすぐに温度が下がるのですが、通風がない状態ではほとんど効果がありませんので、ヒートシンク+ファンにしないと駄目なようです。 でも、もしファンを取り付けたとしても、ファンが故障したら温度が上がってグニャグニャになるケースでは安心出来ません。 裏蓋だけでもアルミ板に交換する必要がありそうです。

というわけで、引き続きホームラジオの移植をしながら適当な裏蓋を探すことにします。

なお、ここはフィリピンですので、日本のケチくさくてガラパゴスな技適や電波法は適用されませんので、Orange piのWIFI機能を切断する必要はありませんです。

7月26日追記

ケース内にスピーカーとデジタルアンプを内蔵しました。 スピーカーは故障した中華タブレットから取り外したもの、アンプはPAM8403のデジタルアンプです。 スピーカーの品質が粗悪で音質は最悪です。

溶けて歪んだ底板は薄いアルミ板を買ったナイフで切り出して交換しました。

ホームラジオの移植は...pptp-linuxがエラーで起動できないためまだ完成していません。(フィリピンでradikoを聴くにはVPNクライアントが必須です。pptp-linuxはPPTP用のVPNクライアントです)


技適の障壁(7月4日追記)

ま~た総務省かよ、と思いました。 以前記事にしましたが、マイナンバー制度のおかげで転出届を出した海外居住者はマイナンバーがないので海外送金できなくなるという、如何にも浅知恵な制度は総務省が所管だったと思いますが、今回は技適に関するお話です。

何かというと、これでラジオを作りたいんです。

2-in-1 Orange Pi Zero H2 Quad Core Open-source 512MB Development Board + Protective Case Kit

4コアのCPU、512MBのRAM、WIFI、さらにケースがついて送料込み15.99ドルです。 こういう製品を選択するとき、見栄えがいいケースが安価で入手できるかどうかが結構重要です。 しかもこのケース、基板の高さよりも随分背が高いので、小さいスピーカーとデジタルアンプも内蔵できそうです。

しかしながら、障壁となるのが総務省様がご指導くださる「技適」です。

上記ボードはCE、FCCの認証を取っているようです

海外から日本に旅行等で来る外国人については、総務省様が下記のビラを作ってご指導の方針を示されております。

日本に入国する外国人は、FCCまたはCEと、WIFIアライアンスの認証ロゴがついているスマホ、パソコン、ゲーム機は、技適マークがなくても90日間まではお目こぼししてくださるそうです。

総務省様に質問

90日は電波障害が起きないのに、91日目からは障害が発生するんですか。 違うんでしょ。 だったらなんで90日は使っていいんですか。 なんで海外から日本に来る人は使っていいのに、日本人は使っては駄目なんですか。

たとえば高出力のトランシーバーなど、明らかに電波障害を発生させうる機器であれば技適は必須だと思います。 でも、せいぜい隣の家までしか届かない程度の電波を出す無線LANやBluetoothで、CEやFCCの認証を取っている機器について、それほど厳しくする必要があるんでしょうか。

WIFIの無線出力は数十ミリワット、携帯電話の出力は1W程度と携帯のほうが圧倒的に高パワーです。 どうして技適を通っていないスマートフォンは90日だけ使えるのに、WIFIしか持たないマイコン基板は一日も使っては行けないのでしょうか。

日本ではまだRaspberry pi zero w (無線LANつき)も販売できません。 技適が通っていないからです。

小学生からプログラミング教育を始めるとかいっておいて、こういった安価で世界共通の技術が学べる教材は排除し、国内の特定業者のおもちゃっぽい製品だけ使わせようとしているのでは...

7月4日追記

上記記事を書いたあと、下記内容で総務省東海総合通信局に質問をしてみました。

---質問内容---

お忙しいところ恐縮です。
海外製のマイコン基板、具体的には中国製の Orange pi zero (WIFIつき)を国内で使用したいのですが、FCC、CEマークはありますが技適は取得していないようです。
http://www.orangepi.org/orangepizero/
総務省 電波利用ホームページの技適マーク、無線機の購入・使用に関することには、「技適マークが付いていない無線機を使用すると電波法違反になる場合があります。詳しくは、最寄りの総合通信局へお問い合わせ下さい。」とありましたのでこちらにお問い合わせさせていただきました。 電波法違反になる場合、ならない場合があるのであれば、その基準を教えて頂けますでしょうか。 また、たとえば何MHzで何マイクロボルト、という基準だとすれば、それが違反になるかどうかを判断するのは個人なのか、それとも電波管理局なのかどちらでしょうか。
もし電波法違反にならない場合に該当した場合、技適マークがないこと自体は違法ではないのでしょうか。
お手数をおかけいたしましてすみませんがご回答いただければ幸いです。

問い合わせから10日目、下記のご回答をいただきました。

---回答内容---

お問い合わせの内容について回答いたします。
マイコン基盤「orange pi zero」付属のWi-Fiモジュールについて、
技適マークが無いのでしたら、国内使用すればその時点で電波法違反となります。
(一般的には技適マークが不要な無線局もありますが、Wi-Fi機器に限っては技適マークが必須になります。)
まずは技適マークの有無を、よくご確認ください。

以下のURLのサイトで、技適を取得した機器の検索が可能です。
http://www.tele.soumu.go.jp/giteki/SearchServlet?pageID=js01
(すでにご存じかもしれませんが、このページでの「orange pi zero」の検索方法がネット上でもいろいろ掲載されているようです。)

そもそも技適マークが取得できる機器かどうかの基準については、
無線設備規則第49条の20(小電力データ通信システムの無線局の無線設備)に2.4GHz帯及び5GHz帯とも規定されていますのでご確認ください。
http://www.tele.soumu.go.jp/horei/reiki_honbun/72081000001.html
※Wi-Fi機器(小電力データ通信システム)については、 「1MHzの帯域幅における平均電力」の上限値として定められています。
※方式よって上限値が異なります。

記載いただいた「orange pi zero」のURLを拝見した限りでは、
方式、周波数、空中線電力等のスペックは掲載されておりませんでしたので、技適が取得できる機器であるかどうかはこちらでは判断できません。

以下のURLに掲載の登録証明機関に申請の上、測定等により
調べてもらうことは可能です。
http://www.tele.soumu.go.jp/j/sys/equ/tech/#4000050
しかし個人の方にとってはそれなりに経費も掛かりますので、
そのような製品には手を出さないか、基盤からWi-Fiモジュールを切り離して使用いただくのが現実的かと思います。

よろしくお願いいたします。

---ここまで---

以上です。

要は、WIFI機器は技適マークがなければ即電波法違反、技適マークがないorange pi zero を国内で使用するには、基板からWi-Fiモジュールを切り離して使用すること、ということでした。

もったいないですが、基板上のWiFiのチップの電源の足をカットした上で、国内で販売されているUSBのWIFIドングルを使用するしかないようです。

外国人旅行者が持ってくるスマートフォンのWIFI機器は技適マークがないので即電波法違反なのに、90日間だけは見逃して下さる、ということのようでした。


トヨタ C-HR のラジオCM(午後に追記)

一日中ラジオを聞きながら作業をしているのですが、数ヶ月前から日に何度も耳にするCMがあります。 それは、トヨタC-HRのラジオCMですが、気になってしょうがないことがありまして、疑問を解決すべくトヨタさんにメールで問い合わせをしてみました。

そのCMはこちらのページ内の 04.偏愛・ロードノイズ編 20秒 です。

内容は、

”フーブチ、ガー...フーブチ、ガー...気づきましたか、二つの音のズレが1デシベル違ったことに。”

と聞こえるのですが、気になってしょうがないことは、音のズレの単位がデシベル(dB)で合っているのか、ということです。 ズレならミリ秒とか、位相だとすれば角度の度ではないかと... デシベルは音圧の単位で、音量の違いを言っているのならわかるのですが。 あるいは、私の空耳で、聞き取っている文章が違うのかもしれません。

数ヶ月の疑問をなんとかすっきりさせたく、お忙しい事は承知でウェブページ内の問い合わせフォームからトヨタ自動車さんに問い合わせてみました。

翌日、すぐにご返信をいただいたのですが、相談センターではわかりかねるため、担当部署に問い合わせをして改めてご回答いただけるとのことでした。

そして5日が経過し、再度相談センターさんからご連絡があり、担当部署に確認中との内容でした。

その後6日が経ちましたが今のところ連絡は来ておりません。 きっとお忙しいのだと思います。

”その車の開発者にはロードノイズを操る男がいる”、とCMで仰っているので、まさかロードノイズを操る男が単位を間違えたということはないと思いますし、私の空耳か、”ズレもデシベルで表すことができる”ということを知らない私の不勉強が原因だとは思います。

もしどなたかスッキリできる答えがおわかりの方がいらっしゃいましたら教えてください。

トヨタ自動車さん、お忙しいところ買うわけでもないのにお手数をおかけしましてすみませんでした。

追記

本日6月15日の午前5時すぎにこの記事を公開しましたが、当日の夕方にトヨタ自動車さんからご回答のメールをいただきました。 内容は以下の通りでした。

〇〇〇〇 様

日頃は、トヨタに格別のご愛顧を賜り、厚くお礼申し上げます。
トヨタ自動車 お客様相談センター メール担当の〇〇と申します。

この度は、調査にお時間を要し、誠に申し訳ございません。

〇〇様からお問合せいただきました
C-HRのラジオCM「04.偏愛 ロードノイズ編」における
音の単位につきまして、ご回答を申し上げます。

お問合せの音の単位については、「音量の差」を指していることから
「dB(デシベル)」と表現しております。

「二つの音のずれ」という表現は、色々な尺度でとらえられるため
分かりずらかったことと存じます。

〇〇様からお寄せいただきましたお問合せは
CMをお聞きくださったお客様からのお声として、広告製作部署に申し伝え
今後のCM制作の参考といたします。

貴重なお声をお寄せいただき、ありがとうございました。

本件について、ご不明な点がございましたら
お気軽に、お問合せいただきたく存じます。

今後とも、トヨタをよろしくお願い申し上げます。

トヨタ自動車 お客様相談センター 【担当:〇〇】

----ここまで----

...納得できましたでしょうか。

「二つの音のずれ」のずれとは、音量の差を指しているとのことでした。

たとえばスピーカーが2個あって、右のスピーカーの音のほうが左より大きいとき、”左右のスピーカーの音がズレている”、というのと同じことですね。 私は、ズレていると言われたら、片方の音が遅れて聞こえてくることを想像しますが、音の大きさのことをズレと表現するは知りませんでした。 トヨタ自動車さん、私の不勉強でご迷惑をおかけしまして申し訳ありませんでした。 お忙しい中、丁寧に対応していただきましたことに感謝しております。 大変勉強になりました。


ラジオサーバーのレンタルを開始します

ご好評いただいております製品の ラジオサーバー の月払いレンタルを開始予定です。

ラジオサーバーは、日本に設置したラジオサーバーに外出先や海外からパソコン、スマホで接続し、radiko、radikoプレミアム、らじる★らじるのライブ聴取とタイマー録音が可能な製品で、これまでのラジオサーバーはハードウエア製品をご購入いただき、日本国内のご実家などに設置していただく必要がありました。

今回のレンタル版は、東京エリアの さくらのVPS(Virtual Private Server)上に現行ラジオサーバーのプログラムを移植したもので、ご契約いただいた方専用のサーバーをご用意する形となります。

お申込みから一週間程度の無料試用期間、初月は さくらのVPS契約の初期費用が加算されますので2千円程度、以降は月1200円程度で、契約縛り期間はなくいつでもご解約できるよう考えております。

おまけでPPTPのVPNサーバー機能も設定する予定ですので、海外のPCからradikoプレミアムの契約を行うことや、国内限定の動画サイトなどもご利用可能となります。 VPNサーバーだけのレンタルをご契約いただくより、自分専用のVPNサーバーをお持ちいただける点で安心感は高いかと思います。

サービス開始時は本店ページ( http://www.starstonesoft.com )ならびにこのブログで再度お知らせいたしますのでぜひご検討ください。


本日出荷分から製品仕様更新です

ラジオサーバー、ホームラジオ、VPNサーバーBOX2の各製品は、本日2017年3月25日出荷分からケースの色がこれまでの黒から白に変更となります。

その他変更点は以下の通りです。

ラジオサーバー高性能版:価格を千円値下げしました。

ホームラジオ高性能版:これまでオプションだった無線LAN接続が、価格据え置きで標準仕様となりました。 一度有線LANで設定を行ったあとは、LANケーブルを抜いて持ち歩くことが可能となりました。

ぜひご検討ください。


Wake On LAN リピータをバージョンアップしました

インターネット側からLAN内のPCなどをWake On LAN 出来るようにする機器、Wake On LAN リピータのハードウエア版シェアウエア版(Raspberry pi用)をv5.0にアップデートしました。

変更点は以下の通りです。

  • MagicPacketの転送機能が稀に落ちることがあったので、プロセスを監視して停止しているときには再起動する機能を追加。(Wake On LAN リピータの最も基本的な機能は、インターネット側から送信されたMagicPacketを、ルータのポート転送設定でWake On LAN リピータに転送すると、Wake On LAN リピータがそのパケットをLAN内全部のPCにブロードキャスト転送する機能です。)
  • IPアドレスを固定する設定をした場合に、これまではDNSサーバーのアドレスの設定項目がなかったため、正しくDNSサーバーに問い合わせをすることができなくなり、NTPサーバーに接続できなくなって時刻合わせができなくなる問題があったため、DNSサーバーを指定できるようにした
  • USB連動タップ操作機能で、これまでは手動でオン、オフを切り替えるのみだったが、新バージョンではアドレスを指定してping監視し、応答がなくなったら自動的にオフ→オンする機能を追加した。 また、毎日定時にオフ、オンが出来る機能を追加した。

設定、操作はすべてブラウザで行います(MagicPacketの転送機能は操作不要)が、最新バージョンの操作画面は以下のような構成です。 画像を見ていただくとどのような機器なのかすぐにおわかりいただけると思います。

rep1
メインメニュー
rep2
設定:ダイナミックDNSの設定。no-ip、mydns.jp, dyn.comに対応しています。
rep3
設定:ネットワーク設定。DHCP有効と、スタティックが選択可能です。
rep4
設定:日時設定
rep5
操作:手動でMagicPacketを送信
rep6
操作:日時指定で単発でMagicPacket送信予約。この機能はGETでデータを渡しているので、ほかのプログラムからWake On LAN リピータにMagicPacket送信予約を入れることが簡単に実現できます。(たとえば録画サーバーの電源を自動で入れるなど)
rep7
操作:日時、曜日指定で繰り返しMagicPacket送信予約。 毎朝事務所のPCの電源を自動で入れるような場合を想定しています。
rep8
操作:USB連動タップの操作。フリーズしたPCの電源を強制的に入れ直したり、ping監視を使って不調のルータ、モデムの電源を入れ直すことも可能です。

最後の画像のUSB連動タップ操作機能ですが、ハードウエア版はRaspberry pi の基板に改造がしてあり、USBポートの5V電源がオン、オフできるようになっていますので、USB連動タップを直接USBポートに挿し込めば使用可能です。

tap
サンワサプライ TAP-RE7U

シェアウエア版で連動タップ機能を使用するには、同様の改造をRaspberry pi基板に施さねばなりませんが、かなり難しいです。(USBコネクタを2個とも取り外し、下段側のGNDパターンに細いドリルで穴を空けて絶縁した上で新しいUSBコネクタを取り付け、GND足とGNDパターン間にPower MOS-FETをスイッチとして取り付け、ゲートの足をGPIOピンに配線します)

改造に代わり、リレーモジュールをつかえばUSB連動タップを購入しなくても直接AC100Vのオンオフも可能になりますのでそのほうが簡単ですが、ACを扱うため正しく配線しないと感電や火災の原因になりますので自己責任でのみお試しください。

たとえばこちら たった171円です。 (ここで紹介する基板が安全かどうかについてはご自身でご判断ください。 AC100Vはショートすると火柱が上がるほど強力です。)

relay

GND、VCCにはRaspberry piのGPIOのGND(6ピン)、5V(2ピン)を接続し、IN1、IN2にはそれぞれGPIOの3ピン5ピンを接続します。 必要なものはこの基板とジャンパーケーブル4本、そして安いテーブルタップを途中で切断してリレーの端子にネジ止めすれば完了です。

 


ラズベリーパイで温泉卵

フィリピンの卵は新鮮でなく、生卵を食べるには覚悟がいる。 先日買った、GENSANブランドの卵は賞味期限まで2週間もあるのにすでに腐っていた(白身と黄身が混じっていて、端っこが真っ黒)。

で、生卵同様、大好きな温泉卵を完璧に作るべく、ラズベリーパイで温泉卵製造機を作成しました。

使ったもの

  • Raspberry pi B (余っていた古いもの)
  • 4GBのSDカード、電源、LANケーブル類(余っていたもの)
  • 温度センサ(CircuitRocksで購入)
  • リレーモジュール(CircuitRocksで購入)
  • ジャンパー線10本(CircuitRocksで購入)
  • その他部品類(余っていた古いもの、詳細は画像ご参照ください)

要となる温度センサ(DS18B20)は、よく見かける防水タイプで長いケーブルつきのもので185ペソ、リレーモジュールは1チャンネルで250V10Aのもので147ペソ。 PayPalで支払いが出来、送料はメトロマニラは150ペソで、注文の翌日にLBCで配達されました。(フィリピンでは注文の翌日配達は驚異的に素晴らしいです!)

https://circuit.rocks/ 素晴らしい。

こちらが届いた部品の写真です。

Exif_JPEG_420
クリスマスカードつき
Exif_JPEG_420
タッパーに入っていました

センサとリレーは先例にならい、以下のように配線しました。

Exif_JPEG_420
試しに配線した様子

GPIOのピン番号
1 センサー電源3.3V(赤)
2 リレー電源 5V(オレンジ)
3 リレー信号線(黄色)
6 センサーGND(黒)
7 センサー信号線(青)
14 リレーGND(緑)

センサーの電源(赤)と、センサー信号線(青)の間には4.7kΩのプルアップ抵抗をつけています。(ビニールテープでまいてあるところに内蔵)

プログラム作りですが、いつものようにIPアドレスを音声で読み上げる機能をまずインストールします。

続いて、センサの動作を確認するため、以下のことを行いました。

apt-get update
apt-get upgrade

そしてapacheとPHPのインストール。

apt-get install apache2 php5

nano /boot/config.txt でconfig.txtファイルを開き、一番下に

dtoverlay=w1-gpio

を追加して保存。

nano /etc/modules を開き、一番下に

w1-gpio
w1-therm

を追加して保存。

一度再起動してから、

nano /var/www/temp.php でファイルを作成し、以下の内容を貼り付けて保存。(こちらを参考にさせていただきました)

その後、LAN内のPCやスマホで http://ラズベリーパイのIPアドレス/temp.php を開いて温度が表示されれば温度センサーはOKです。

続いてリレーの動作について、

WiringPiのインストール

git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build

リレーをテストするスクリプトを作成

nano /etc/RelayTest.sh でファイルを作成し

と書いて保存したあと、

chmod 755 /etc/RelayTest.sh

で実行権限を与えます。 そのあと、

/etc/RelayTest.sh を実行するとリレーがカチカチ言いながらオンとオフを繰り返せばリレーOKです。

ここまで確認できたので、ケースを買いに行きました。 AC220Vがリレーモジュールの裏側に出ているので、バラバラでは危ないのでケースに入れる必要があります。 ケースはAlexanにあった一番大きいプラスチックケースで45ペソでした。 行ったのはTimog Avenue branchですが、道路沿いの駐車スペースにホームレス家族が座っていて車を止めにくかったので、お店の前の駐車場に入ったんですが、入り口のスロープが急な上に途中で角度が変わっていて、車の底をジョリっと言わしてしまいましたので、お出かけの方はご注意ください。(googleストリートビューから拝借した画像ですが、奥の小さな建物がお店で店員さんが二人いますが暇そうです。 画像のガードマンさんが招き入れてくれるまま駐車場に入ろうとすると、ジョリっと言わしてしまいますので注意。)

alexan

で、ケースに収めたのが以下の画像です。

Exif_JPEG_420
ACは電源タップを途中で切断したようになっています
Exif_JPEG_420
ほぼギリギリでした

デジタルアンプとスピーカーは引き出しの中に眠っていた部品ですが、”調理をスタートしました”、”30℃です”、”31℃です”...”設定温度に達しました”、”調理を終了しました”という音声、およびLANケーブルを接続して起動したときには自分のIPアドレスを話すようにするためです。

実際に作成したプログラムの中身は需要がないと思いますので割愛しますが、もし知りたい方がいらっしゃいましたらメールでご相談ください。

※12月28日追記:イメージファイルをダウンロードできるようにしました。 8GBのSDカードに書き込んでください。 Raspberry Pi B, B+, Pi 2で起動できます。 SSH接続はユーザー名 root, パスワード raspberry です。 起動時に音声でIPアドレスが流れますのでイヤフォンを挿し込んで起動してください。

音声で読み上げられるIPアドレスをブラウザで開くと設定画面が表示されます。

browser

設定内容は、最高温度(この温度に達すると電源オフ)、最高温度からx℃下がったら再度オン、最高温度に達したあとx分経過で終了(オフ)、の3つです。

そして、最後に実際に使ってみた結果です。

Exif_JPEG_420
シンプルな炊飯器に卵と水、温度センサーを入れて蓋をしてスタート

設定は最高温度69℃、-0.5℃で再度スイッチオン、30分調理にしました。

結果ですが...卵の画像を撮るまえに、パンツの後ろポケットに卵を入れたのを忘れて座ってしまい、ポケットの中で卵がぐちゃぐちゃになったので画像なしですが、黄身が硬めで白身はゆるい感じだったようです。

問題は、炊飯器のヒーターはアルミダイキャストの大きな土台の下に入っているのですが、69℃で電源が切れたあとも高温に熱せられた土台の余熱で5分位は水温が上がり続け、最高75℃になってしまったことです。 余熱を持たないシンプルな電気ポットのようなものを使うと改善されるものと思います。

うまく調理できるようになれば、フィリピンでも温泉卵が食べ放題、その他お酒の燗をつけるのもの上燗、熱燗自由自在です。

12月25日追記

炊飯器以外に、家には電熱器(1200wと600wの切り替えスイッチつき)があったので、電熱器に小さな鍋を乗せ、蓋をせずに再度チャレンジしてみました。

設定は最高温度66.5℃、-0.5℃で再度スイッチオン、30分で調理終了にしました。 途中経過は、水温31℃からスタートで10分後に設定温度に達してスイッチ・オフ、その後5分ほど温度がゆっくり上がり続けて最高で69℃、その後5分で66℃まで下がってスイッチが入り、以降は約30秒スイッチオン、約1分40秒スイッチオフを繰り返しながら30分の調理時間が経過して終了しました。

早速水で冷まして割ってみたのがこれです。

完成

白身は柔らかく、黄身はトロッとしていて完璧です。 お正月用に卵をたくさん買ってくることにします。


福岡の病院でのタクシー突入事故について

先日来、大きなニュースとなっていた福岡の病院でのタクシー突入事故について、もう続報が出なくなってしまったようだ。 現在ドライバーは容疑者扱いで拘束されているのだと思うが、車が勝手に加速してブレーキが効かなかったという証言が真実であるならば、無実のまま単なる踏み間違いとして逮捕され、賠償を請求されることは、長く安全運転につとめてきたドライバーにとって死ぬほど無念なことだと思う。

警察が踏み間違いであることを証明できる証拠を示せるのであれば納得はいくが、それが出来ないならば車両の故障であることを証明せねばならない。 でも、警察官は自動車修理の経験者でも、コンピューター技術者でもないのできっと難しいだろう。

パソコンを長年使っている人は必ず経験していることで、Windowsのフリーズがあると思う。 Windows 2000以前ではOS自体の問題でしょっちゅうフリーズしていたのだが、以降はたまにフリーズやブルースクリーンに陥る程度に改善されている。 フリーズの原因は多数あると思うが、ソフトウエアのバグによるものと、ハードウエアの不調によるものに別れる。 ソフトウエアのバグは、製作者でも見つけるのは容易ではないし、ハードウエアはたとえばメモリの接触が多少悪かったり、静電気で壊れかかっている部品によって発生することもある。

同様の原因により、今回のタクシー(プリウスNHW20)に不具合が発生しないものか、いろいろな資料を見て考えてみた。

まず最初に思ったのは、アクセルペダルセンサーの不良による加速である。 最近の車は電子スロットル車がほとんどではないかと思うが、私自身の車(1999年のボルボS70)は、何度も電子スロットル本体が故障して苦労した。 原因は、電子スロットル本体についているスロットルポジションセンサー(二組のボリューム)の摩耗がメインだが、二組あるので片方がおかしくなると自動的にLimb Home Mode(びっこで家に帰る)に入ってノロノロ運転しか出来なくなるようになっている。 電子スロットルを開閉するためのアクセルペダルポジションセンサーも2系統になっており、片方がアナログ電圧、片方はPWMによるデジタル信号となっていて、こちらも片方が故障すれば警告灯が点灯する仕組みだ。

で、プリウスのアクセルペダルポジションセンサーがどうなっているのか調べたのだが、NHW11までは普通のボリュームが二組、NHW20からはホール素子を使った非接触センサーとのことだった。 (写真はインターネット上の掲示板から拝借しました)

NHW11まで
NHW11まで
NHW20以降
NHW20以降

アクセルペダルポジションセンサーの動作については、こちらのサイトに詳しく書かれているが、要は2系統の、それぞれ別のカーブをもつ可変電圧を出力するセンサを使い、ECU(Engine Control Unit)に入力された二つの電圧からアクセルペダルの踏み込み量を推定するという仕組みだ。

aps

上記の図で左側のセンサー部分の回路はボリューム2個で表記されているが、もしこのタイプのボリュームだと、GNDのケーブルが接触が悪くてGND側の電圧が0Vよりも上がった場合、アクセル開度は大きく見えてしまうので問題だ。

しかし、NHW20においては、こちらのサービスマニュアルにあるように、センサーはホール素子であること、それぞれのセンサーの電源、GND、出力はそれぞれ別のケーブルで独立してHV Control ECUに入力されているので、いずれかの線が切れたりショートしたりしても加速につながるような誤った信号を送る可能性はないと考えられるが、センサーに供給されている5Vの電源回路が故障して電圧が上がった場合は、相対的に高い電圧が出力されることになると思うので、HV Control ECU側の故障で発生する可能性はゼロではないと思う。 (この程度の故障ならば、間欠的に発生するものであっても簡単に再現できると思う)

aps_nhw20

アクセル系統の異常による加速、ということで考えると、アクセルペダルセンサーはHV Control ECUに接続されており、 HV Control ECUはメインのEngine Control Module に接続されている。 電子スロットルは Engine Control Module に接続されているので、HV Control ECUが誤ったアクセルペダル信号を検出するか、メインのECMがフリーズしているようなことがあれば、アクセルを踏み込んだ状態が維持されてしまう可能性はあるのだと思う。

接続図1
接続図1

では、ブレーキが効かなかった可能性はあるのかについて考えてみる。

私自身は実際のプリウスに乗ったこともじっくり見たこともないので知らないのだが、以前からプリウスのブレーキフルード交換は診断機がないと出来ない、という話は知っていた。(診断機はトヨタのディーラーや修理工場がもっている専用の機器で、コンピュータを制御する機能をもっているものである)。 NHW20ではどうなのか検索してみたら、こちらの修理工場さんのブログにかかれていた。 要約すると、ブレーキフルード交換(エア抜き)をするためには以下の手順でブレーキ制御禁止モードに移行しなければならないとのこと。

※訂正:下記手順は最新型のNHW30のものでした。 NHW20はやはり診断機をつないでモードを切り替えないと駄目なようです)

①パーキングブレーキをかけ、シフトポジンションP でIG-ON にする。

②シフトポジンションN で、ブレーキペダルの踏み込み、開放を5秒以内に8回以上行う。

③ シフトポジンションP で、ブレーキペダルの踏み込み、開放を5秒以内に8回以上行う。

④ シフトポジンションN で、ブレーキペダルの踏み込み、開放を5秒以内に8回以上行う。

⑤シフトポジンションP にする。

⑥ 電子制御ブレーキウォーニングランプ(黄)が点滅することを確認する

これだけやらないと、ブレーキキャリパーのブリードスクリューをゆるめてブレーキペダルを踏んでもフルードが押し出されてこないのだとしたら、普通の状態(ブレーキ制御モード)のときは油圧回路も電子制御頼みだということだろうか。 ちなみに、ブレーキペダルの Brake Pedal stroke sensor は Skid control ECUに接続されていて、Skid control ECUはブレーキのアクチュエータに接続されているので、多分メインのECMの動作とは独立しているのだと思うが、ECMがフリーズしていても正常に動作するのかはわからない。

manual2
接続図2

いろいろな可能性を考えてみたが、やはり実車をじっくり調べること、制御のロジックをメーカーが開示することがなければ想像にすぎないのだが、もし原因がECMのフリーズだったら証明するのは困難だろう。 車両は8年ほど問題なく動作していたようなので、もし8年間毎日10時間運転して、一度しか発生しないフリーズであれば、問題を再現させるのに何年もかかってしまうだろう。(問題がすべての同一型式の車両に発生するのではなく、いわば”ハズレ”のECMを積んだこの車両だけに発生すると仮定した場合)

もし自分がプリウスのようなブレーキ制御まで電子化されている車両に乗らなくてはならないのであれば(自分で買うことは絶対ないが)、電気的にECMをシャットダウンできるようなキルスイッチを追加しなければ安心できないと思う。 ごく簡単な、たとえば火災報知器のボタンみたいにカバーを指で押し破って押すような赤いボタンを車内に取り付け、ボタンを押せばECMのヒューズ部分でスイッチが切れるような単純なしくみでいいのではないだろうか。 button

ECMの電源を切れば電子スロットルは閉じるので、あとは運を天にまかせて電柱に突っ込んで止めるという手も可能だろう。

低燃費のためには電子制御は必須なのは十分理解できるのだが、絶対故障しないコンピュータはありえないので、たとえば違う設計のコンピュータが2台並列についていて、それぞれ別の技術者がソフトウエアを作ったもので、それぞれの計算結果が異なる場合はシステムをシャットダウンしてLimb Home mode(びっこで家に帰るモード)に入れるような処理になっていなければ、安心して運転することは出来ないと思う。 旅客機ならば可能だろうが、コストを削らなければならない車では無理だ、ということであれば、せめて手動でシャットダウンできる非常ボタンを取り付けてほしいと切に願う。 無実のドライバーが責任を押し付けられて刑務所に入れられるようなことがないように。

12月10日追記

EDRのデータは信頼できるのかについて。 事故原因の解明にEDRのデータ解析を行うとのことだが、EDR(Event Data Recorder)についてはこちらのサイトに詳しい解説がある。

文中には

In a Pennsylvania lawsuit related to the Toyota Prius unintended-acceleration controversy of 2009 and 2010, a team of Toyota engineers and NHTSA officials accessed the EDR of the car in question, showing that the driver was depressing the gas pedal instead of the brake, as he’d claimed.

とのことが書かれているが、ペンシルベニアで発生した意図しない加速について、EDRを解析したところ、ドライバーはブレーキを踏んでいたと話したが、実際はアクセルを踏んでいたことがわかったとのことだ。

しかし、EDRのデータの読み出しはOBD-II経由とのこと、ということはデータの取得もOBD-II経由でECMが出力したアクセルペダルポジションセンサー、ブレーキセンサーの値を記録しているということになる。 それぞれのセンサーから直接電線を引っ張ってきてEDRに接続しているのであれば間違いはないのだろうが、ECMがバグや故障で誤った解釈をしている場合は、OBD-II上に流れるデータも誤ったものになるはずである。

都合がいいことに、福岡県警は運転席のフロアマットが二重にしかれていたので、アクセルペダルにのしかかっていたんでは、という発表をしたようだが、その話とEDRの記録(がアクセルペダルを踏んでいたことを示唆した場合)をあわせて事件解決としていいのだろうか。

マットが二重なら、それで本当にアクセルペダルが踏まれたままになるのか、それは衝突時に衝撃で解除されるのかを再現実験で証明したとしても、必要条件は満たすが十分条件ではない。 事故当時にフロアマットがアクセルペダルを押していたことが証明されるわけではないからである。(もし事故後にもフロアマットがアクセルペダルを押したままの状態だったのであれば十分だが)

もし、EDRに事故当時の記録が残っていなかったとすれば、OBD-IIのデータが停止していたということになり、ECM故障(フリーズ?)の必要十分条件を満たすだろう。