3.2インチLCDでデジタル時計作りました(追記)

長年愛用していた、7セグLEDのデジタル時計(インド製)が故障して、時刻が止まったままになってしまった。 夜中でも時間が見やすいので重宝していたので、代わりを探していたが安くていいのが見つからない。

そんな折、以前の記事「ラズベリーパイ 役に立たないもの」で書いた、小さすぎて使いみちがない、ラズベリーパイ用3.2インチカラーLCDで時計を作ろうと思い立った。

使ったものは、以下の部品です。

  • 古いRaspberry Pi B
  • 3.2インチLCD (現在売り切れ中)
  • 余っていた4GBのSDカード

液晶は waveshare の 3.2インチLCDのコピー商品のようで、ドライバも互換性があり、waveshare のホームページからドライバ入りのイメージファイルをダウンロードすればそのまま使用可能なのだが、解凍して書き込もうとしたら、4GBのSDカードでは容量が足りず、新しいSDカードを買うのももったいない(というか、それならデジタル時計を買ったほうが楽)ので、Raspbian Wheezy の2015-05-05バージョンにドライバを入れて使用した。

すごく詳細な設定方法がこちらのサイトに解説されていたので参考にさせていただきました。

液晶が使えるようになったら、

を実行してブラウザ`chromiumとマウスポインタを非表示にする unclutter を入れます。

そして、

/etc/xdg/lxsession/LXDE-pi/autostart ファイルを以下のように書き換えます。

一番下の行の https://time.is/ja/just は現在時刻をブラウザ上で表示してくれるサイトのアドレスです。 このアドレスを変更すれば、ブラウザで表示できるサイトは起動時に自動的に全画面表示されます。 (たとえば自宅内の監視カメラのアドレスにするとか)

このデジタル時計のイメージファイルをGoogleドライブに入れましたので、よかったらこちらからダウンロードしてお試しください。 waveshare 3.2インチLCD互換品をもっていて使いみちがない方におすすめです。 Raspberry piはB、B+、2Bで起動します。 (保証なしですので、もし動かなくてもご勘弁ください。)

12月3日追記:12月2日から https://time.is/ に障害が発生しているようで接続することができなくなりました。 代わりに、 http://www.starstonesoft.com/testclock.htm に320x240ピクセルでちょうど表示できるデジタル時計を用意しましたので、上記 /etc/xdg/lxsession/LXDE-pi/autostart 内のアドレスを書き換えてください。 また、testclock.htm はOSで設定されているタイムゾーンの時刻を表示するため、そのままではUTCの時刻を表示します。 sudo raspi-config でタイムゾーンをお住まいの地域に修正してください。 SSHで接続するためのユーザー名、パスワードは raspbian のオリジナルと同じ pi, raspberry です。

時計のスクリプトは http://Clock.Bralla.com のものを参考にさせていただきました。


VPN+WIFIアクセスポイントにUSB WIFIドングルを追加する場合

先日 v2.0.0にアップデートし、WIFI-WIFI接続が可能になったVPN+WIFIアクセスポイントですが、このバージョンでWAN側もWIFI接続を使用する場合には、もともとWIFI機能をもっているRaspberry Pi 3に、さらにUSB WIFIドングルを追加して使用することになります。

OS上では WIFIアダプタが複数存在する場合、それぞれwlan0, wlan1…と通し番号をつけた名称が自動的につけられますが、OSを再起動するたびに通し番号が入れ替わってしまうことがあるため、VPN+WIFIアクセスポイントでは、起動したときに最初に付与された番号で固定するように設定されています。

そのため、はじめて起動するときにすでにUSB WIFIドングルが挿し込まれている状態だと、USB WIFIドングル側にwlan0が割り当てられたまま固定されてしまう可能性があり、その状態に一度なってしまうと回復させる方法がありません。

本製品では、アクセスポイントとなる側にはRaspberry pi 3内蔵のWIFIアダプタを「wlan0」として使用することを想定してプログラムされていますので、はじめて起動するときにはUSBのWIFIドングルや、その他のUSB接続のネットワークアダプタ、Bluetoothアダプタ等のものは接続せず、有線LANケーブルとイヤフォンだけを接続した状態で起動してください。 もしすでにUSB接続のWIFIドングルその他のデバイスを接続した状態で起動してしまった場合は、SDカードを書き直して設定をやり直してください。

その他の情報として、初回設定時にVPNサーバー名の設定を行い、接続に成功したことを確認後に再起動した際、イヤフォン端子から聞こえる音声が”起動しました”、”IPアドレスは...”、”VPN接続しました”、の段階で止まってしまい、そのあとに聞こえるはずの”ルーティングテーブルを書き換えました”がいつまでたっても聞こえないという現象が発生することがあるようです。 接続環境に関連するようなのですが、詳細がつかめておりませんので、もし同じ現象を経験した方がいらっしゃいましたらお手数ですが contact@starstonesoft.com (全部半角小文字です)までご連絡ください。

何卒ご協力をお願い致します。


ホームラジオとラジオサーバーをアップデートしました

長らくお待たせいたしました。複数のユーザーの方からご要望がありました、日時指定予約機能を追加し、ホームラジオ、ラジオサーバーの新バージョンを公開しました。

これまでのキーワード登録予約に加え、日時指定、毎日、毎週の予約が出来るようになりましたのでより便利にお使いいだけると思います。

nichijishitei

その他、ラジオサーバーでは録音ファイルの保存場所にUSBメモリを選択できるように致しました。

すでにご利用の方は、システム設定ページ下部の”アップデート”ボタンからオンラインアップデートを行ってください。


アクセルとブレーキの踏み間違い事故について考えたこと

特にここ数日は話題になっているようだが、AT車のアクセルとブレーキの踏み間違い事故について考えてみた。

よくあるパターンは、駐車場で止まろうとしたときにアクセル全開で店に突っ込んでしまったり人を轢いてしまったり、ということだと思う。

ならば、前後に障害物があるときにアクセルを踏んでもアイドリングを維持すれば、クリープでのろのろ進むだけなので被害はかなり軽減できるのではないだろうか。

自分の車(1999年のボルボ)が何度も電子スロットル故障で苦労したのでその構造についてはだいぶ勉強したのだが、最近は軽自動車でさえ電子スロットル装着の割合が多いようなので、折角だからそれを利用すれば既存の車両で事故軽減オプションがついていないものでも簡単に実現できるように思ったので、着想のみのアイディアとして書いてみようと思う。

たとえば、http://www.ebay.com/bhp/waterproof-ultrasonic-sensor で$7.28で販売されている防水の超音波式測距センサーを車の前後にとりつけて、マイコン基板(たとえばRaspberry Pi)で車両前後の距離を監視する。

ultrasonic
最大4.5mまで測れるセンサー 7.28ドル

あとは、アクセルペダルのセンサーの信号線を制御する仕組みを追加し、車両前後の障害物までの距離が設定値以内であれば、アクセルを踏んでも全閉時の抵抗値(または電圧)を維持するようにし、さらにブザーでも取り付けて”ブーー!”と音がすれば、クリープでのろのろ走りながら自分が間違ってアクセルを踏んでいることに気づけるのではないだろうか。

アクセルペダルのセンサーに制御を割り込ませる製品はすでに数多くの会社が”スロットルコントローラー”のような名称で出しており、車種別の専用ハーネスなんかも出ているので、それを流用すれば自作でもそう難しくなさそうである。

スロットルコントローラは、アクセルペダルを踏む量と電子スロットルが実際に開く量のカーブを少し変化させ、少し踏んだだけで電子スロットルをガバっとあけて車が早くなったように錯覚させる機能を持つものと理解しているが、その錯覚のために何万円も出すより、自分の足でアクセルペダルを多めに踏めば結局同じだと思われ、それだけの機能ではもったいない気がする。 数多くの車両のアクセルペダルセンサーの配線に関する情報をもっている会社であれば、障害物センサーとの組み合わせもいとも簡単に実現できると思うのだがどうだろうか。

試しに自分の車で試作品を作ってみたいと思うのだが、なにしろフィリピンの郵便事業会社が駄目すぎて、海外からパーツを購入しても届かないか法外な関税をかけられるかでえらい面倒くさいのがネックである。

 


VPN+WIFIアクセスポイントに WIFI-WIFI接続機能を追加

Raspberry pi 3 用のソフトウエア(イメージファイル) VPN+WIFIアクセスポイントに、WAN側をWIFI接続にできる機能を追加しました。

詳細については過去の記事にてご紹介しておりますが、VPN+WIFIアクセスポイントとは、SoftEther VPNクライアントが内蔵されているWIFIアクセスポイントで、ルータ機能(NAT機能)は有しないため、このアクセスポイントに接続したPCやスマホには、VPNサーバーが設置されている側のDHCPサーバーからIPアドレスが直接割り当てられるのが特長です。

そのため、たとえば日本の自宅のNTTひかり電話ルータのLAN側にSoftEther VPNサーバー(あるいはVPNサーバーBOX2)を設置し、海外ではVPN+WIFIアクセスポイントを使用してVPNサーバーに接続を行えば、海外のスマホには直接NTTのひかり電話ルータがIPアドレスを割り当ててくれるため、海外にいるときであってもスマホをひかり電話子機として発着信が可能となります。 (スマホ自体がもつVPNクライアント機能を設定して使用することも可能なのですが、私のAndroidスマホの場合、L2TP/IPSecで接続していても数時間たつとVPN接続が切断する現象が多発し、安定した着信を行うことは無理でした)

下の動画は設定完了後に電源を投入後、起動するときの様子です。

構成は、Raspberry Pi 3 model B, 外付けのスピーカー(設定時のみスピーカーかイヤフォンが必要ですが、通常使用時は不要)、5V1AのACアダプタ+マイクロUSBケーブル、そして今回WAN側もWIFI化するために、USBのWIFIドングルを接続しています。

こちらの動画では、すでにWAN側をWIFIに設定し、WIFIルータのSSIDとパスワードを入力した状態のものを起動していまして、スピーカーからは順に

  • 起動しました
  • IPアドレスは192.168.11.49 (3回繰り返し)
  • VPN接続しました
  • ルーティングテーブルを書き換えました
  • WIFIアクセスポイントを起動しました
  • ブリッジ接続を完了しました

という音声が流れています。 WAN側がWIFI接続の場合、電源投入後に音声が出始めるまで20秒ほどかかりますが、これはWIFI接続設定にしてあってもLANケーブルを挿し込んだときには自動的に有線LAN接続を優先させるための起動時の待ち時間が追加されているためで、有線LAN接続の場合は数秒で音声が出始めます。 起動が完了したら、スマホなどでVPN+WIFIアクセスポイントの設定画面で指定したアクセスポイントのSSID、パスワードで接続できます。

はじめて起動するときは、有線LANケーブルで接続した状態で電源を入れると

  • 起動しました
  • IPアドレスは ...
  • VPN接続の設定を行ってください

と音声が流れますので、聞き取ったIPアドレスでLAN内のPCやスマートフォンのブラウザで設定画面を開いてください。

設定箇所は「接続するVPNサーバーの設定」と、「WAN側設定」の二箇所です。

vpnsetting

Screenshot_2016-11-16-15-32-09

 

 

こちらは、AndroidスマホでVPN+WIFIアクセスポイントに接続したところです。 IP アドレス が192.168.5.5、デフォルトゲートウェイが192.168.5.1となっており、日本の自宅のひかり電話ルータからIPアドレスが付与されていることがわかります。

 

Screenshot_2016-11-16-15-32-24

 

AndroidスマホにインストールしたSIPクライアント Chiffon です。 この状態で、日本のひかり電話の電話番号での着信、発信が可能です。

 

 

 

 

上記動画のテストで使用しているUSB WIFIドングルは Tenda の W311MI で、RalinkのRT5370を使用したものですが、日本国内であればバッファローのWLI-UC-GMN(Ralink RT8070V使用)でも動作可能と思います。

もちろんこれまで同様に、USB WIFIドングルを刺さない状態で使用すれば、WAN側を有線LANとするVPNアクセスポイントとして使用可能です。

VPN+WIFIアクセスポイントはこちらからダウンロード可能ですのでぜひお試しください。 Vectorは最新版登録に数日の遅れがありますので、11月20日くらいまではGoogle Driveからダウンロードをお願い致します。

最後に、上記動画の中にうつっている電流計ですが、WAN側用のUSB WIFIドングルを追加した状態で、起動時の消費電流の変動を記録するためのものです。 ほぼ0.4Aのあたりで針が少しだけ上下しているのがわかるかと思いますが、下の画像はVPN接続済み、アクセスポイント機能にはAndroidスマートフォンを接続した状態でのメーターの画像です。

Exif_JPEG_420

最大10Aのメーターですが、針はやはり0.4Aのあたりです。 Raspbvery Pi 3 はメーカー推奨が2.5Aの電源アダプタとなっていますが、VPN+WIFIアクセスポイントにUSBドングルを追加した状態でアクセス中であってもわずか0.4Aしか流れませんので、いらなくなったスマホの充電アダプタのような、1A程度のものでも問題なく動作することを付け加えておきます。

最後の最後に技術的なお話ですが、今回のWIFI-WIFI対応は当初はRaspberry Pi 3 に内蔵の無線LANアダプタを、クライアントモードとアクセスポイントモードを同時に動作させることにより、USB WIFIドングルを追加せずに可能にしたかったのですが、

iw dev wlan0 interface wlan1 type __ap

で wlan1を作成することは可能でしたが、どうしても安定して動作させることができず断念しました。 いつか機会があればまた挑戦したいと思います。


歯医者に行ってきました

ここ数日、奥歯の歯茎が痛くて物が噛めず、飲み込むときに喉まで痛くなってきたので渋々歯医者に行ってきた。

近くて駐車場があって、薬局も同じビルの中にあるところ、ということでいつも買い物に行くスーパーが入っているビル内の Dr.Tooth Smile Dental Clinic に行ってきた。 Robinson’s Super Marketのテナントに入っているチェーン店のようだ。

とりあえず抗生物質の処方だけしてもらいたかったのだが、抜くか歯石取りしてから抗生物質、とのことで、仕方なく歯石取りのほうを選択してやってもらったが、約30分ほどで1500ペソ(3260円)。 何年か前に近所の別の歯医者でやってもらったときは半額ぐらいだったと記憶しているので結構高い。 抗生物質と痛み止めは合計で千円程度だった。

で、昨日の朝行ってきて抗生物質を3回飲んだところだが、今のところまだまだ痛い。 痛いところをガリガリやられたので余計痛くなった気がする。

高いし痛いし、うがいの水がやたら少ない(出が悪くて”もっと水頂戴”とお願いしても、コップの下2cmくらいしか入れてくれない)、普通は治療前に名前や住所、肝炎や出血性の病気の有無などを申告する紙に記入するがここは事後に名前と住所だけだったり、あまりお勧め出来ないです。

Makati Medical Center St.Luke’s のような大病院に入っているデンタルクリニックはその点安心なので、面倒でなければそういうところへ行くことをお薦めします。(値段も今回のところより安いです)


TVサーバーx2完成機の販売を終了しました

2006年の販売開始から10年に渡り、ご好評いただいてきました TVサーバーx2機の完成品販売を、本日2016年10月29日をもって終了いたしました。 長らくご高配を賜りまして誠にありがとうございました。 今後もご利用者の方々へのサポートは変わりなく継続してまいりますので、ご用の際はお気軽にご連絡ください。

販売終了の理由は、Windows 7 プレインストールPCの販売が10月末で終了するためです。 以降は入手できるPCはすべてWindows 10だけになりますが、TVサーバーx2の動作に必須のマイクロソフト製 Windows Media Encoder 9がWindows 10にはインストールできません。 また、Windows 8.1以前のOSでWindows Media Encoder 9をインストールしたあと、Windows 10にアップグレードしたPCではこれまでTVサーバーx2は動作しておりましたが、最近のWindowsアップデート後にWindows Media Encoder がエラーを返すようになって動作しなくなった事例も出ておりますため、OSの機能の信頼性(下位互換の継続性)にも疑問があり、販売終了を決定いたしました。

ビル・ゲイツさんが主席ソフトウエア設計者を務めていた2008年まで、Windowsは素晴らしいOSでした。 その後はWindows 8, 8.1 と迷走したわけですが、Windows 10で軌道修正されることを期待したものの、私の感触ではWindows 8.1よりも更に悪化したように思います。 根拠は、過去のOSで普通にできていたことができなくなっていること、Windows Media Encoder 9の動作もそうですが、VPN越しに255.255.255.255あてのブロードキャストパケットが送信できなくなっていた点など、実際に問題に遭遇し、解析をしなければわからない隠れた変更点が多くあります。

デフォルトのブラウザや動画プレーヤーなど、作りかけ感が否めないアプリケーションや、Windowsアップデートを行うと使えなくなるデバイスやソフトがあることなど、安心して使い続けているWindows 7 と比べると、品質の低下を感じざるを得ません。

 


OBDアナライザをバージョンアップしました

ELM327を使用したスキャナで車のECUと通信を行い、DTCコードの読み出しやエンジンチェックランプの消灯、各センサのライブデータの表示と保存ができるシェアウエアの OBDアナライザ をバージョンアップしました。

先日、OBDアナライザを試用していただいている方からご連絡があり、1996年製で、OBDのプロトコルがSAE J1850VPWの車両で、OBDアナライザとスキャナ間の通信は成功しているが、車両のECUからのデータ受信に失敗するとのことでしたので、ELM327の仕様書を再度読み直したところ、AT SP x というコマンドでプロトコルの設定ができるようになっていることがわかりました。

0 – Automatic
1 – SAE J1850 PWM
2 – SAE J1850 VPW
3 – ISO 9141-2
4 – ISO 14230-4 KWP
以下、5~9,A,B,Cまで省略

これまで、起動時は常にプロトコル自動判定で動作するものと思い込み、OBDアナライザのソフト側では起動時にELM327の初期化を行っていませんでしたが、仕様書を読むと、0以外の選択肢を一度選択すると(AT SP 1などを送信すると)、その値がEEPROMに書き込まれ、以降はそのプロトコル固定で起動するようになるようで、その状態になっていると車種が変わったときに動作しないことが考えられます。

そこで今回のバージョンアップでは、通信開始時に AT SP 0を送信し、ELM327をECUのプロトコル自動判定モードに設定できるオプションを追加しました。 オプションはデフォルトでオンになっていますので、これまでより幅広い車種で動作するようになっているかと思います。

自分の車の話ですが、1999年のボルボS70で、走行距離は178400kmの老体です。 気に入ってまして、故障しても出来るだけ自分で修理しながら乗っています。

普段使っているのはこちらのハンディスキャナ

Exif_JPEG_420

ライブデータを見ているところ(カメラのピントがあってません)

Exif_JPEG_420

外出中にエンジンチェックランプが点灯してしまった場合は常備しているハンディスキャナでDTCを読み出して緊急性が高いかどうか判断しているが、画像のようにライブデータは合計で5行しか同時に表示できないのでどのような状況でエラーになっているのかが判断しづらい。

そういうときに、OBDアナライザでデータのログを取るとあとからEXCELなどの表計算ソフトにデータを読み込むこともできるので、時系列での変化がわかりやすいのです。

EXCELでグラフ化PlotSample

古い車を大切に乗っている方、ぜひお試しください


ホームラジオ、ラジオサーバーのradikoプレミアム復活しました

ホームラジオラジオサーバー をご利用くださっている方にはご迷惑をおかけいたしました。 10月11日からradikoプレミアムの聴取と録音ができなくなっていた問題を解決するアップデートを本日公開いたしました。

すでにご利用いただいている方は、システム設定ページ下部のソフトウエアのアップデートからオンラインアップデートを行って頂き、再起動中の表示になりましたら一度電源を切ってから入れ直してください。

新規ダウンロードの場合、シェアウエア版は本日10月15日現在はGoogleドライブのものは更新済ですが、Vectorからダウンロードされる場合は数日後にアップデートが完了いたしますのでお待ち下さい。

ハードウエア版は本日以降はアップデート済の状態で出荷いたします。


アメリカンなプロバイダcox

先日、アメリカ在住の方からお問い合わせのメールをいただいたので、当日の朝に返信を差し上げておいた。

しかしその5日後、メールが不達になった旨の通知が自分が利用している日本のプロバイダ(ASAHIネット)のメールサーバーから届いた。

<*****@cox.net>: host mx.west.cox.net[68.6.19.3] refused to talk to me: 554
fed1rmimpi110.cox.net cox 202.224.39.197 blocked.  Error Code: CXBL – Refer
to Error Codes section at
http://postmaster.cox.net/confluence/display/postmaster/Error+Codes for
more information.

相手先プロバイダのメールサーバー mx.west.cox.net が送信元のASAHIネットのメールサーバー 202.224.39.197からの通信を拒絶している、というもので、エラーコードはCXBLとのこと。 上記リンク先でCXBLを調べてみると

The sending IP address has been blocked by Cox due to exhibiting spam-like behavior (送信元IPアドレスはスパム的挙動のためにブロックされている)

とのこと、どうすればよいかの説明がその横にあって

Submit a request using the contact form here. The request will be reviewed by Cox. Cox has sole discretion whether to unblock the sending IP address. (このコンタクトフォームを使ってリクエストを送信せよ。 リクエストはCoxによって検討される。 Coxはブロック解除するかどうかの独占的な決定権がある。)

だそうで、そのリンクを開いてこちらのメールアドレス、氏名、ブロック解除してほしいIPアドレス、理由などを書き込んで送信してみた。 そうしたら、

Delivery has failed to these recipients or groups:

B*******am@cox.com
The recipient’s mailbox is full and can’t accept messages now. Please try resending this message later, or contact the recipient directly.

だそうだ。 B某さんのメールボックスが一杯で受信できない。 再送信するか、受信者に直接コンタクトしてください、だって。 わざわざ時間をかけて入力して送信したのに。

随分前にもアメリカのプロバイダをお使いの方とのメールのやり取りで、同じようにブラックリストで受信拒否しているメールサーバーがあって苦労したことがあったが、大勢が利用しているプロバイダのメールサーバーのIPアドレスをブロックしてしまうと、そのプロバイダの利用者(今回はASAHIネット)は相手(今回はcox.com)にメールを送信できず、送信に失敗したことがわかるのも5日後になるという理不尽な状態になってしまう。

しかもブロック解除のリクエストを受け付けるフォームからの送信も届かないとなると、解決方法はこちら側で別のメールアドレスを使うしかないのだ。

世の中にいろいろなスパム防止の方法があるが、必要なメールを受け取れなくなってしまう可能性が少しでもあるなら、いくらスパムを削除する効果が高くても全く駄目なシステムだと思う。 そんな方法は、なにかアメリカンな印象である。