2017年12月31日

2017年の色々まとめ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
気づいたら2017年最終日...
こまめに文章で残せなかったので、2017年何を作ったのか、何を買ったのか、何をやったのか、Twitterの投稿を拾いつつまとめておくことにします。
(まとめておかないと自分でも何やったのか思い出せなくなっちゃうお年頃)

1月:SECCON TOWERをSECCON決勝戦で展示

昨年末に作ったSECCON TOWERを決勝大会にて展示。
スクリーンに動く様子を映し出してもらったけど、Keyは隠してませんでしたよ?

SECCON TOWER FONTを作ってGitHubで公開してたら、勝手にステッカー化されてて当日会場でビックリした。

1月:グレースモークアクリルとタカチのケースで何か良い感じの箱を作る


その後、この箱は中身を詰められて、とあるシステムとして納品されていきましたとさ。

1月:Mac mini(2011)をバラバラ分解してFusion Drive化

ついでにメモリも16GBにしたのに、今は光出力をアンプに繋いで音楽再生用マシンになっている。勿体無い。

2月:サーマルプリンターでサーバルプリント


ネタお遊び。カラー画像を良い感じに2値化するアルゴリズムとかを色々模索したりした。

5月:iPod miniを勝手にPRODUCT RED化



最終的に128GBのSDカードを入れて、メインのポータブルプレイヤーとして利用中。

4月〜10月:BEEP on USBを設計・製作





菊ちゃん先生りぶら先生とPrioris名義で製作。
最終的な「ver1.0」の形になるまで、10回以上の版更新を重ねている...

9月〜10月:中華チップマウンタを購入、稼働開始




BEEP on USBなどを極小ロット製造するために購入。
ちょっと癖があるけど、色々調節しつつ使用中...
これについても、もう少し知見が貯まったら記事にします。

9月:NanoPi NEOをクラスタ化するためのアクリル作り


NanoPi公式のスタッキング用アクリルキットがゴツいので自作。
CADで図面引いて深センの企業に発注。

9月:iPhone 8を購入

2年ぶりにiPhoneを購入。SuicaをApple Watchから移行して超快適になった。

9〜11月:NanoPi NEOクラスタ稼働開始


何に使うか特に考えてなかったので、とりあえず暗号通貨をマイニングしてみたり。

10月:BEEP on USBを技術書典3で頒布


100個くらい用意していったら完売。
表紙デザインに引き寄せられてくる方も多数いらっしゃって面白かった。

10月:BEEP on USBの書き換え機



忙しすぎて肝心の作者が遊んでなかったので、色々MMLで鳴らして遊んでみた。

11月:テクトロのオシロ画面ハードコピーを直接取り込むデバイスを製作

フロッピーで波形を取り込むのが面倒なので、USBで直接パソコンに接続して取り込めるようにしてみた。
この後、基板も設計して小さい箱に収めてみたけど、それはまた暇なときに記事にします。

11月:THETA Vを購入、秋葉原360度記録開始


Insta360 oneと迷ってThetaを購入。
写真を撮るというよりも空間を切り取るという感覚に近かったので、移りゆく場所のその時々を記録する使い方をすることに。

12月:BitcoinでGoogle Homeを購入


Dialogflowとかでアプリ作ってみたけど、イマイチだった。
妄想では、直近起きた地震の情報とかをスムーズに教えてくれるものができる予定だった。


12月:BEEP on USBを秋葉原の店舗で販売開始


BEEP on USBを家電のケンちゃん 秋葉原ラジオデパート店で販売開始。
実績「値札のついたものを秋葉原のお店で売る」を解除

と、まあこんな感じでしょうか。
振り返ってみれば、2017年は「売り物(ハード)をいっぱい作る」方法や機械を学んだ年でした。

さて、来年は何を作りましょうか。

2017年10月13日

洗面台の水栓に合う後付けレバーを作ってみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

3Dプリンターで、古い洗面台の水栓に取り付けられるハンドルレバーを作ってみたお話。

実家は築25年超。
洗面台やトイレなど色々なところに、今の最新式と比べれば劣る設備がついています。
その最たるものが洗面台(親父曰く)であり、今風のシングルレバーではなく、昔はおしゃれであったであろう2つのハンドルがそこには付いています。
しかし「手を洗う時に水を止めたり出したりしたいけど、握るのは嫌」という親父の意見もなるほど確かに理解できます。

というわけで... 今回は3Dプリンタでぴったり合うハンドルレバーを作ってみることにしました。

まずは、ハンドルの寸法を測ります。
洗面台に付いていたハンドルは、王冠のようなギザギザ8個付いたタイプ。
このギザギザの頂点から頂点まで、ハンドルの中心を通る長さを計測すると48mm。
さらに、ギザギザの間の窪みから対向側の窪みまでの長さを計測すると40mm。
これを元にFusion360で図面を引いていきます。

ハンドルは、下に行くにつれて少し大きくなる形状だったので、余裕を持って50mmの円を描き、さらに内側に同じ中心点を持つ40mmの円を描きます。
この円を8等分する線を引き、等分した線と外側の円が交わる部分を終点にして円弧を描きます。この時の円弧の頂点は内側の円にします。

...これを繰り返してハンドルとほぼ同じ大きさの輪郭を作成。
外側に円を描き、取っ手となる部分を描いて、押し出しツールで7mmの厚さにしたのが以下。


これをSTL形式で出力して、3Dプリンタの付属ソフトでオブジェクトをスライスしてプリント開始。


30分程度で出力完了。


実際にハンドルに取り付けてみると...


いい感じ!

2Dで描いて押し出しで3D化するという超手抜きで飾り気のないデザインですが、Simple is BESTということで。

2017年10月4日

Nano Pi NEOをコンパクトにスタックしてみる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

秋月電子通商やaitendoでも販売開始されたNano Pi NEO/NEO2を複数個買って、キレイにまとめてみた話です。

どうでもいい話ですが、大きいこと片付けてからブログ書こうとすると永遠に書けなさそうな気がしてきたので、小さい細々したもので外に出せそうな話は書いていくことにしました。
#続くか分からないけど...

Nano Pi NEO/NEO2は、Allwinner H3/H5が搭載された、非常にコンパクトなシングルボードコンピュータです。
Raspberry Piと違ってHDMIや4つのUSBポートは搭載されていませんが、GPIOピンヘッダからUSBが2本出てたり、NEO2ではGigabit Ethernetを搭載していたりと、ヘッドレスでサーバ的に使ったり、何かに組み込んだりするには安くてコンパクトで使い勝手が良いボードです。

とある目的でNEOにUSBドングルタイプの装置を繋げてみたところ、うまいこと認識してくれたので複数個買って束ねて使うと便利かも...というわけでキレイにまとめる方法を探し始めました。

Nano Pi NEOの製造販売元であるFriendly Elecからは"4-layer Dual Stack Acrylic Case for Cluster DIY"という2個x4段重ねできるアクリル製の公式の製品がありますが、これがなかなかゴツい。

4-layer Dual Stack Acrylic Case for Cluster DIY (Friendly Elecより)

また、ヒートシンクの下に(穴がいくつか空いているものの)アクリル面が来るため、少し放熱の面では効率悪そう...

ということで、もっとスリムで熱も逃げやすそうなものを作ってみることに。
今回は、以下の条件で設計してみました。

・Nano Pi NEOの四隅の穴は35.4mm間隔
・Nano Pi NEO自体のサイズは40mm四方
・50x100mmに収まるようにする(コストを抑えるため)
・配線をするときにケーブルなどを結束バンドで留められるようする
・Nano Pi NEOを3mmのネジで固定できるようにする(2.5mm, 2.6mmネジは高いため)

NEOを2個横に並べると80mm、間に5mmの余白、左右両端に7.5mmずつ余白を設けて合計100mmとします。
短辺の長さは、NEOの幅(40mm)に合わせることでスッキリかつケーブルと干渉しないように。
ヒートシンクをアクリル板側に向けて固定しても放熱性能を出来る限り落とさないように、ネジ固定とアクリル板の強度を保つための最低限の余白を残して繰り抜き。
また、結束バンド固定穴としてNano Pi NEOの前後にくる面と各層の左右、計6個の長方形の穴を空ける。
さらに、アクリル板自体も上下段に連結できるようにするため、ボードをアクリル板に固定するためのネジとアクリル板を連結するためのシャフトが干渉し合わないように...


こんな感じにしてみました。
今までに何度かアクリル板のレーザーカット用図面を引くのに使っているDraftSightを今回も使用しました。

これに、埃除けのために最上段に付ける天板も同じ寸法で四隅の穴だけ空ける形で作ります。


この2つを念のため少し古いバージョンのdwg形式で書き出して、それぞれzip圧縮して発注。
発注先はElecrowで、アクリル板の色は透明(Transparent)、サイズは10cm Max * 10cm Maxの厚みは2.5mmにしました。
重さで送料が変わるので、送料が変わらないところまで枚数を増やしていったら合計で25段分くらいに...

製造と配送を含めて1週間くらいで届いたので、組み立てていきます。


NEOをアクリル板に固定するのは直径3mm 長さ20mmのなべ小ネジ、長さ5mmのナット(FB3-5)、長さ3mmのナット(FB3-3)。
各段を繋ぐシャフトは、長さ30mmの六角オネジ・メネジ(MB3-30)、最下段の足は長さ7mmの六角オネジ・メネジ(MB3-7)。


あとは、これを必要数に応じて積み重ねていって...


完成。今回はとりあえず手元にあった4個をスタックしてみました。

残り20数段分あるので、40個くらいのNEOをスタックできそうです。
そんなにあっても使いきれないので、欲しい方がいれば頒布します。

データはGitHubに置いてますので、自分でカットしたり発注できる人は以下よりどうぞ。
https://github.com/9SQ/Nano-Pi-NEO-Stack

2017年5月12日

iPod miniを勝手に(PRODUCT)REDっぽくしてみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

最近はスマホで音楽が聴けるので 携帯音楽プレーヤーを別に持つ人といえばハイレゾ趣味の人くらいになりつつある気がしますが、今回は12年前のiPod miniをリニューアルする話です。

まずは、ジャンクで購入した時のiPod miniがこちら。


起動しない問題がありましたが、これは内蔵Microdriveが故障しているのが原因だったので予備のMicrodriveに交換したら問題なく動作。
それよりも気になるのは、このクリックホイールに保護フィルムを貼ったまま日光に晒されたことが原因と思われるパンダ日焼け。
カラーアルマイトの色は紫外線で退色してしまいますが、プラの保護フィルムが貼ってあったところは元々の色に近い状態で残っています。

外装自体には傷一つないので、この日焼けだけが何とも残念... ということでiPod miniを再カラーアルマイト処理に出してみることに。


まずはアルミ外装から、ロジックボードやMicrodrive、バッテリー、クリックホイールなどの中身を取り出していきます。


クリックホイールと液晶部のアクリル窓も取り外し、アルミ外装側に接着剤や両面テープが残らないように掃除していきます。
アクリル窓を外すときは、窓の周囲をドライヤーで温めながら押し込むと簡単に外せます。


全部バラバラにして並べると、こんな感じに。
この完全にアルミだけになった外装を、アルマイトの再処理をしてくれる会社に送ります。
元々のカラーアルマイト処理をしていたのはYKKらしい...ですが今回は、ポスト投函して1週間程度でカラーアルマイト処理して返送してくれる株式会社コーケンの「光研アルパック10」を利用してみることに。
アルパックは秋葉原のヨドバシカメラにて3780円(税込)で購入。
10点、250gまでのパーツを入れることができるので、もう一つピンク色のiPod miniの外装を入れて合計2点でやってもらうことに。

今回依頼した会社は、普段は自動車やバイク、自転車の部品をアルマイト処理したり、ラジコンなどのホビーパーツをアルマイト処理するのがメインっぽい会社ですが、果たしてうまく行くだろうか...などと心配しつつパックに詰めてポストに投函したのが4月29日。

間にゴールデンウィークで休業が入っていたので、処理されて返って来たのが5月11日でした。


返って来た外装をシルバーのiPod miniと並べて撮影。
再度カラーアルマイト処理するときは、一旦元の色を抜いてから新しい色を入れるそうなので、ピンクが抜けているときはシルバーのような色になっていたはず...?
本来、iPodの刻印はアルマイト処理された上から行なっているので、再処理すると消えてしまうのは知っていましたが、なかなか良い具合に跡が残っています。


これを、CF変換に入れた128GBのSDカード、新しいバッテリーと共に組み上げていきます。
手順は分解と逆なので省略...


DockケーブルでMacと接続してiTunesで初期化すると、無事128GBのiPod miniとして認識。


12年前のiPodが最新のiTunesで問題なく認識、ファームウェアの復元、音楽の同期ができるのは地味にすごい。
Apple Lossless(ALAC)も同期、再生が可能なのでまだまだ長く使えそうです。


最後にiPod mini 2世代(ブルー、シルバー)、iPod Video(5.5世代)との比較写真を。
iPod 5.5世代は128GBのmSATA SSDに換装して、コンデンサも交換済みだけど... バッテリー持ちが少し悪いのとTriple.fi10で無音時にノイズが気になる問題があるので、これからはiPod miniがメインになりそう。

2017年4月19日

気象庁XML電文を「正しく」画像化するために必要な地図の話

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

皆さんは「地図」気にしていますか?
伊能忠敬が日本全国を歩いて測量してまわり、精巧な日本地図を作成してから約200年、今や誰もが手のひらの上で正確な日本地図・世界地図を自由な縮尺で見ることができる便利な時代です。

それにしても、久しぶりの投稿ですが...
今回は、気象庁が提供しているXML電文を画像化する、その時に使う地図の話をしようと思います。

以前、地震発生時の震源・震度情報をブラウザ上でグリグリ動かして閲覧可能なWebサービス「EVI 地震火山詳報」を作りました。
(参照: 地震とか火山噴火情報を閲覧できるWebサイトを作った)

このとき使用した地図は、国土交通省が提供している国土数値情報 行政区域というもので、行政区(雑に言うと市区町村)単位で日本を分割した地図です。
地震が発生した後に気象庁から発表される「震度速報」「震源・震度に関する情報」では、日本の行政区単位で震度が発表されます。

さて、気象庁防災情報XMLフォーマット電文では、地震以外にも多数の情報を配信しています。
例えば...
  • 気象特別警報・警報・注意報
  • 土砂災害警戒情報
  • 竜巻注意情報
  • 地方気象情報
  • 府県気象情報
  • 全般週間天気予報
  • 噴火に関する火山観測報
  • 台風解析・予報情報
などなど...
紫外線やスモッグ、生物季節観測では桜の開花や満開などの情報も配信されています。
こういった情報の多くは行政区単位ではなく、気象庁が定める4つの地域の分け方単位で発表されています。

気象庁|予報用語 特別警報・警報・注意報や天気予報の発表区域

簡単にまとめるとこんな分類です。下になるほど細かく分割されています。
つまり気象庁は、一番細かい単位として基本的に「二次細分区域」という地域の分け方で情報を発表していることになります。
この二次細分区域ですが、実は行政区域と1対1ではありません。
日本の市区町村数は1741ですが、二次細分区域は1775の地域からなっています。(2017年4月 現在)
ということは、行政区を更に何らかの基準で分割しているということになります。

ここまで、気象庁の用いる発表区域について簡単に説明しましたが、ここで少し気象庁防災情報XMLフォーマット電文を利用するうえでの話をしましょう。
気象庁防災情報XMLフォーマット電文(以下、気象庁XML電文)で配信される情報は、普段私たちがテレビやラジオ、新聞、Yahoo!天気やウェザーニューズなどで見る情報と根本は同じです。
私たちは、気象庁XMLを受信して処理することで、テレビなどのマスコミが発信している気象情報と同じ物を世の中に発信することができます。

ですが、これらの情報は、当然のことですが勝手に改変してはいけません。
例えば、とある市に住んでる人が「気象庁の発表する警報は大げさだ。うちの市は注意報くらいに修正しておこう。」などと勝手に書き換えて、この情報をインターネットに流してはいけません。
以下は、気象庁が公開している、気象庁XMLを利用するうえでの留意事項の抜粋です。
警報の取り扱いについて
警報は重要な情報であり、万が一、誤った警報事項や錯誤を生じさせる情報が流通した場合、気象業務法第23条へ抵触する可能性があるほか、社会への影響が大きいことから、元の電文の本質を損なうような編集は認められません。
公開XML電文の編集・加工について
気象庁が発表した予報内容と異なる独自の予報を発表することは予報業務に該当し、気象業務法により許可を受けた者しか行えません。
気象庁ホームページを通じて公開するXML形式電文のご利用にあたっての留意事項より引用
http://xml.kishou.go.jp/open_trial/considerationforxml.pdf (PDF)

さてさて、そこで地図の話です。
気象庁が発表する情報は、気象庁の定める発表区域で出る訳ですが、もし気象庁の情報を国交省国土数値情報の行政区域を使って塗ったらどうなるでしょうか?

これは、とある会社がTwitterや独自のアプリ内で配信している気象警報・注意報の画像です。
そして、こちらはゲヒルン株式会社が許諾して特務機関NERVで配信している気象警報・注意報の画像です。

注目して頂きたいのはここです。


和歌山県の田辺市は、行政区域としては画像上段のようになっていますが、気象庁の二次細分区域としては画像下段のように5つの地域に別れています。
ここで、2017年 4月18日 3:23に発表された気象警報・注意報を確認すると、田辺市龍神には大雨警報が発表されていますが、田辺市の他の地域には発表されていないことが分かります。

(画像が横に長いので、拡大してご覧ください)

別の地域でも見てみましょう。

以下は北海道の渡島・檜山(おしま・ひやま)地方に発表された気象警報・注意報です。

もう見ただけでお分かり頂けると思いますが...


北海道二海郡八雲町は、気象庁二次細分区域では八雲町八雲と八雲町熊石に分割されています。

そもそも、分割された地域は、市町村等をまとめた地域でも同一の地域に属していません。


更にその上の一次細分区域でも同一地域ではありません。


ここで、2017年 4月18日 8:13に発表された気象警報・注意報を確認すると、八雲町熊石には暴風警報が発表されていますが、八雲町八雲には発表されていないことが分かります。


さてさて...
ここまで例を挙げながら解説してきましたが、いかがでしたでしょうか。
気象警報が出ていない地域に警報が出ている、あるいはその逆という情報を、あたかも真実のように世の中に配信してしまう、そんなことはあってはいけません。

ゲヒルン株式会社では、正しい情報を迅速かつ確実に分かりやすく伝えるために、気象庁二次細分区域の地図データセットやレンダリングエンジンを開発しています。

実は、気象庁二次細分区域よりも更に細かい地域分けとして、土砂災害警戒情報で使用する地域という発表区域もありますが、これに対応する地図データセットも開発しています。


ふう、だいぶ長々と書いてしまいましたが...
こういうシステムを作っている人たちの気持ちは「一人でも多くの人に、安全で安心できる生活を送ってもらいたい」だと思います。
そのためにも、現在気象庁XMLを受信して活用している方も、これから利用して何か作ろうと思っている方も、正確な防災情報を配信するように心がけましょう!