2017年3月2日木曜日

Kickstarterで投資する楽しさと注意点

2016年度にKickstarterで投資した5つほどのガジェット類が出揃ったのでまとめようと思います。まとめは下の方にあります。

※紹介しているものは出資を締め切っています。 プロジェクトが成功し一般販売を始めたものもあるので探せば買えるものが大半です。


Kickstarterとは


クラウドファンディングの一種で、 クラウドファンディングとは誰かがこんなものを作りたい広めたいという企画をWeb上で公開し、みんなでそれにお金を出してプロジェクトを支援するというものです。 クラウドと聞くとクラウドサービスみたいなものを想像すると思いますが、クラウドファンディング = Crowdfunding であり群衆(crowd)からfunding(投資)を集めるという意味の造語です。

投資とは企画にお金を払うことであり、 見ず知らずの人の企画にお金を出す意味がわからないと思うのですが、 これには企画する人と投資する人双方が得をするための仕組みがあります。 クラウドファンディングにはリワード(reward[褒賞])というものが用意されており、 投資額に応じて企画者からプロジェクトが達成された場合に何かしらの見返りがあるわけです。 例えば、新しいイヤホンを作りたいというプロジェクトでは$1の投資でステッカー(シール)$40の投資でイヤホン本体が送られてくるということが考えられます。 企画者は大抵、 大量の需要は見込めない物(マニアックな機械だとか自家製ソース、小説、映画e.t.c...)、 需要はあるけれどビジネスとしては成り立たない代物をプロジェクトとして出資を募ることが多いです。 企画者は実現しにくいプロジェクトのお金を集めて実行することができ、 投資者はプロジェクト成功の見返りに何かしらを受け取る、これがクラウドファンディングのいいところです。

ただし気をつけなければならないのはあくまでこれが投資であるという点です。 販売ではないのでお金を払えば品物が受け取れるという保証はありません。 お金を払うのは企画であって、 お金を払った時点で基本的に品物は存在しないからです。 出資を募ってみんなから集めたお金で開発したり製作したりします。 当然失敗すればそれでおしまいです。 決してお店では買えない物を生み出す素晴らしいプロジェクトが存在する一方で、 多額の投資を集めて失敗するプロジェクトや、 酷い出来のゴミが到着するパターンも存在します。

幸い、今回投資を行った5つのプロジェクトは無事完了しました。しかし当然問題もありました。


1. TRINUS(3Dプリンタ)




Kodamaという会社が企画した3Dプリンタのプロジェクトです。 全体が金属製パーツの3Dプリンタでありながら$299程度で本体を受け取ることができました。 積層ピッチ0.05mm、出力可能な体積は120x125x125でPLA・ABS・NylonなどPolymakerのフィラメントには全て対応しています。 動画のお兄さんが喜んでいるように非常にシンプルな部品構成で簡単に組み立てることができることも特長です。 この価格帯の3Dプリンタでは最強と言えるレベルの性能を持っています。 しかし到着は数ヶ月遅延しました。

最近時間が空いて使えるようになりましたが実に素晴らしい出来です。 日本ではDDDJapanというところが代理店をしているのでそこから購入できます(DDDJapanのTrinusのページ)。


2. OrbitKey 2.0(キーホルダー)




鍵がうるさく音を立てないキーホルダーです。 普通のキーホルダーでは鍵同士がぶつかりあってちゃりちゃり(?)とうるさい音を立てますがこのキーホルダーではそれがないため非常にスマートに鍵を持ち運べます。 あと見た目が結構格好いい。 2.0とついていることからわかるように最初に成功したプロジェクトのアップデート版です。 Kickstarterでは成功したプロジェクトの品物を改良して新しいプロジェクトを再び立ち上げるということも行われます。 既に2ヶ月程度使用していますが試用感・評判とも良好です。


3. Omega2(小型Linuxボード)




Omega2は以前あったOmegaという小型Linuxコンピュータの次世代版です。 性能の異なるOmega2・Omega2+の2つのバージョンを揃えそれぞれ$5、$9の出資で本体を受け取れます。 小型で低価格の本体にWifi(802.11 b/g/n)・Bluetooth 4.0(BLE expansion)・15のGPIO(PWMあり)とIoTのために生まれてきたようなコンピュータです。 CPUクロックは580MHzあります。


4. IoT HAT for Raspberry Pi




Raspberry Pi zero用のWifi & Bluetooth拡張ボードです。Wifi(802.11n)とBluetooth 4.1をRaspberry Pi zeroに追加できUFLアンテナもつなげる優れものです。 Raspbianネイティブのドライバで動くのでドライバ周りで苦労することはないです(やったことがある人はわかるかもしれないですが、Raspberry Piに市販のWifiドングルを繋ぐのはそこそこ大変です)。


5. Teensy 3.5 & 3.6




Arduino IDEでも開発が可能な高性能マイコンボードです。 性能に差のあるTeensy 3.5と3.6のモデルが$23、$28の出資で受け取れました。 既に先行しているTeensyがいくつもあり問題がないのかは知りませんがAliexpressなどでTeensy 2.0のコピー(?)をよく見かけます。 機能は挙げれば切りがないので省きますが、これがあればマイコンでしたいことはほぼ全てできると言えるレベルに仕上がっていると思います。 20以上のPWMは通常17DOF程度の人型のロボットを動かすのにも足りますし、RTCとmicroSDスロットが搭載されているので簡単な処理機能のついたデータロガーとしての活躍も期待できそうです。


投資して思ったこと


今回投資したプロジェクトのリワードは個人的に痒いところに届く絶妙なものばかりで届いた品物の完成度は十分に満足のいくものでした。 チームとはいえプロジェクトを実行するのは企業団体ばかりではないのでかなりの質のものが送られてきたことは素直に驚きました。 もちろん適当に投資を行ったわけではなくチームの信頼性や過去のプロジェクトの実績等を見てかなり堅実な投資の仕方をしたと思います(過去に成功しているプロジェクトは製造過程へのノウハウがあるのでその辺でこけにくい)。

しかしそれでもリスクはありました。特にTRINUSは高額であること、Kodamaがいまひとつよく分からない企業であったこと、度重なる遅延、チームからのUpdate(近況報告)の少なさと挙げれば切りがない始末でした。 結果的に素晴らしい品物が届きましたが、報告が少なすぎるため発送までのコメント欄はパラノイア状態の人で溢れかえっていました。


投資の楽しさ


どこにも出回っていないものが作り出されるのを支援すると言うのはとても楽しいです(届けばさらに楽しいし嬉しい)。 これがクラウドファンディングが流行った最たる理由だと思います。 企画者たちが試行錯誤して近況をアップデートするたびわくわくしました。 さながら有料のブログといったところでしょうか。 

もちろんガジェットだけではなく、 プロジェクトの中には秘伝のソースをたくさん作って分けてあげるから投資してほしいといったものもありました。 海外の家庭の味もまた決して簡単に得られるものではないので非常に魅力的に思います。


投資の注意点


Kickstarterで投資する場合に注意すべき点は以下の通りです。

  • 利益が含まれないので一般販売よりも安い
  • 目標額の出資が集まらなければプロジェクトはキャンセルされる
  • 上記の理由でプロジェクトがキャンセルされればお金は戻って来る
  • プロジェクトは必ず失敗のリスクが伴う
  • 失敗した場合に返金される保証はない(戻って来る場合でも時間がかかる)
  • 予想外のお金がかかることがある(通関や仲介業者の手数料)
  • 届いた品物の品質は保証されない
  • 製品保証はない
  • プロジェクトの説明が適当だったりするプロジェクトには出資するべきではない

随分と恐ろしい感じになりましたがこれは間違い無く注意点です。 しかし、これらのリスクを背負ってでも出資をする価値はあると思います。 現に多くの人が利用していますし、 それだけ人を惹きつける魅力があるということです。 ただしKickstarterのようなクラウドファンディングを利用する際にはそれがショッピングではないということを必ず胸に留めておくべきだと思います。

2017年1月31日火曜日

【Tips】ArduinoとPWM

LEDの明るさを変えたりサーボモーターに角度の信号を送る時、PWMというものを使います。 Arduinoを使ってDIYをするときに避けては通れない道なので、簡単にまとめます。


PWMとは


PWMとはPulse Width Modulationの頭文字を省略した略語で、パルス幅変調という意味です。 平均電圧を変化させることで0Vと5Vしか出力できないコンピュータで1Vや2.5といった電圧を出すために使います。


仕組み


ArduinoでdigitalWrite()関数を使うとき、ピン番号を指定してHIGHやLOWと書きますが、これは電気的には5Vと0Vです。 よくコンピュータの世界は1と0でできていると言われますが、電気的に言えばコンピュータは1を5V、0を0Vとして動作しています。 逆に言うと、1Vや2.5Vのような中途半端な電圧を使うことはできません。

しかし、LEDの明るさを変えるためには電圧を変化させる必要があります。 昔、理科の実験で豆電球を光らせたことがあると思いますが、豆電球は電圧を高くするほど明るく、電圧を低くするほど暗く光ったはずです。 LEDにも同じことが言えます。

そこで必要になるのが平均電圧という考え方です。 時間あたりに5V(HIGH)になっている時間を1秒間5Vを出力すれば平均電圧は5Vとなり、0.5秒間5Vを出力して0.5秒間0Vを出力すれば平均電圧は2.5Vになります。 下の画像では1秒間うち0.5秒間5Vを出力したものと、1秒間のうち0.2秒間5Vを出力した場合のグラフを示しています。


LEDを点滅するスケッチを描いてみると、平均電圧が2.5Vになる方が平均電圧が1Vの時よりもLEDがよく光ることがわかります(時間を1秒にすると点滅してしまうので、5ミリ秒くらいに調整してください)。

つまり5Vと0Vを切り替えることで電圧が変わっているのと同等の効果を得ることができます
そして、5Vになっている時間のことをパルス幅といい、この幅を変えることを変調と言っています。 これがPWMという名前の由来です。


デューティー比

先の画像の電圧のグラフでは、5Vにしている時間と0Vにしている時間が変わると平均電圧が変わることが分かったはずです。 この時間の比をデューティー比と言います。 平均電圧2.5Vであればデューティー比は50%、平均電圧1Vであればデューティー比は20%です。


ArduinoでPWMを使う


一定時間ごとに5Vと0Vを切り替えることで、電圧を変えるのと同等の効果が得られることが分かりましたが、loop()関数の中でいちいちdigital(10, HIGH)とかやるのは面倒です。 また、Arduinoに2つLEDを繋いで、別々の明るさにしたい時にはさらに面倒なことになります。 そこでArduinoにはPWMの機能を簡単に使えるようにした関数が用意されています。

analogWrite(10, 127)

これは10番ピンにデューティー比50%のPWM信号を出力するという意味です。 オシロスコープを使って波形を見るとArduinoが5Vと0Vを勝手に切り替えてくれているのが分かります。 この関数では、デューティー比0%から100%を0〜255の数字に割り当てています。つまり、数字が大きいほど平均電圧が高くなり、LEDを繋いでいればLEDがより明るく光ることになります。

PWM機能が使えないピンがある

便利なPWMですが、実は使えるピンの番号と数が決まっています。Arduino Nanoでは下の画像のPWMと書かれているD3、D5、D6、D9、D10、D11の6つのピンでしかPWMを使うことはできません。



2017年1月30日月曜日

【Tips】Arduino Nanoで測距センサーを使う方法

Arduino Nanoで超音波測距センサーHC-SR04を使ってみようと思います。

超音波測距センサーとは

超音波測距センサーはソナー(Sonor)とも呼ばれる部品です。スピーカーから超音波を飛ばし、物に当たって跳ね返ってきた超音波をマイクで拾うことで距離を測ります。

音は340[m/s]で進むので音を出してから音を拾うまでの時間を計れば音の進んだ距離がわかるという仕組みです。




回路図


回路を次のように接続します。5Vの位置が分かりにくいですが間違えないようにしてください。



ちなみにArduino Nanoのピン名は以下のとおり。




プログラム



説明


31行目

pulseIn()関数はピンの入力がHIGHかLOWになっている時間を返す関数です。上のプログラムではpulseIn(echo, HIGH)としているので、echo(D11)ピンがHIGHになるとHIGHになっている時間を計測してマイクロ秒で返してくれます。

37行目

この行では距離を計算しています。単位変換を行っているので謎の数字が入っていますが、本質は単純です。




このことを念頭に置いて時間と距離と速さの関係を考えてみます。音速は340 [m/s]で一定なので音の移動時間が判れば、音の移動した距離が分かることになります。



プログラムではduration/2となっていますが、これは距離を半分にするためです。音はスピーカーから出て壁に当たり、マイクに入るという経路を移動しているため、音が移動するのにかかった時間は実際には往復時間となるため半分しているわけです。


動作確認


測った距離を表示するためのディスプレイがArduino Nanoには無いので、今回のプログラムではシリアル通信を使ってコンピュータにデータを送っています。Arduino IDEにはシリアル通信で送られてきたデータを表示するためにシリアルモニタという機能が付いているので使ってみます。Arduino IDEのウィンドウの右上(下の画像の赤丸のところ)をクリックすると、データが表示されると思います。



以上です。訂正等は下のコメント欄へどうぞ。

2017年1月27日金曜日

【Tips】タイトルバーの無いアプリケーションにキー入力をする方法



公開した『Aoica's Nihongo Tool』の製作にあたって、タイトルバーの無いウィンドウを作成したところ、Storyboard上でViewに配置したNSTextFieldにどうやってもフォーカスを合わせることができない(入力できない)という問題に突き当たりました。

ボタンは押せるのでウィンドウはアクティブであろうという仮定の元、調べた結果、canBecomeKeyというBOOLの変数がtrueだとキーウィンドウ(キー入力を受け付けるウィンドウ)になるということが分かりました。


問題点


タイトルバーの無いウィンドウにキー入力をすることができない

押せないNSTextField


解決方法


NSWindowのサブクラスMyWindowを新たに作成し、canBecomeKey: BOOLのgetメソッドをoverrideし、常にtrueを返すようにすることで解決しました。もっと美しい(正しい)やり方があればコメント欄で教えてください...


【Tips】Raspberry PiでArduino IDEを使う




最近はコンピュータ学習にRaspberry Piを使うみたいですね。
部活の1年生がRaspberry Pi 3を持っていてビックリしました(講義で使うらしい)。
Raspberry PiでArduino IDEを使うにはどうしたらいいのか、調べたのでメモします。


やりたいこと

  • Raspberry Pi(Raspbian OS)でArduino IDEを使う。
  • 中華製Arduino互換機を接続する。

インストールのやり方


Arduino IDEは非常にシンプルにインストールできます。

  1. インターネットにつなぐ
  2. コンソールでsudo aptitude update
  3. コンソールでsudo aptitude install arduino
  4. 左下のメニューにArduino IDEが追加されている
以上。

Arduinoを入手する


いくらArduinoが安いとは言っても、Arduino Unoの純正は3000円以上するのでたくさん買うには向いていないです。そこでArduino Nanoの中国製互換基板を使うことになりました。


相変わらずの価格


Aliexpressで1つ$2.19 US(300円しない程度)で購入できました。
Freeshippingと書いてあれば送料無料、Estimated Delivery Timeは配送時間を示してます。
いくら安くても評価が低いお店から買わないようにしましょう。


中華製Arduino Nanoの問題点?


Arduino Nanoに限らない話ですが、新しいデバイスを接続する際にはドライバが必要になります。ところが、このArduino Nano互換機はCH340(公式はFTDI)という公式とは違う中国製ドライバが必要になります。ダウンロードすると当然のごとくソースコードとMakefileが入っているのでLinux初心者にはきついかもしれません(Raspberry Piでは上記インストールの過程で勝手に入ったっぽい)。

ちなみに公式のダウンロードページには古いドライバは置いていないので、古いMac(OSX 10.8など)でドライバをインストールしようとしたら、ネットを探し回るハメになりました。

Aoica's Nihongo Tool 1.0(α版)



最近再びMinecraft熱が再燃して、友人と身内のサーバーで遊ぶようになりました。Macで日本語入力するためのツールが無くて不便なので勉強も兼ねてツールを作成しました。

名付けて『Aoica's Nihongo Tool』です。バージョンは1.0αとしました。是非使ってください。ダウンロードリンクは一番下にあります。バグの報告はコメント欄にお願いします。


スクリーンショット





設定の仕方


この設定をしないとtまたは/キーに反応しない、もしくは起動できません
まず「システム環境設定」アプリケーションを開きます。



「セキュリティとプライバシー」をクリックします。



「一般」タブの「すべてのアプリケーションを許可」(赤丸の所)をクリックします。



「プライバシー」タブをクリックし、アクセシビリティから「Nihongo Tool」(赤丸の所)にチェックを入れます(一度起動しないと表示されないかもしれないです)。

以上で設定完了です。



Aoica's Nihongo Tool 1.0 ダウンロード
対応動作環境OSX 10.9〜

2015年10月24日土曜日

飛行船型ドローンを作った

飛行船ドローン。写真の人物は私ではないです。

概要


 高専の研究室のメンバーで全長2m程度の飛行船を作成して課題部門に出展した。無事企業賞をいただいた。発案とプロジェクトリーダ、電子ハードウェア、機体制御の開発を担当した。


製作の理由


 講義の一環として研究室で何か作るということになっていてその過程で製作した。課題部門の課題が災害対策ということでブレインストーミングを行ったところ見事私の『火の用心ドローン』が採用され、もう少しまともな感じにプロジェクトをまとめつつ製作を行った。

 最初の案は文字どおり、「火の用心!マッチ一本火事の元!」と大音量で流しながら住宅地を飛び回り地域住民の皆様に火の用心してもらうというものだったが、ネタに走りすぎているのと割と精神的健康を疑われそうなので案に改善を加えた。

 役割としては防災無線(街中にあるスピーカーのようなもの)の電池が切れた状況で、何かしらの通告をして街を回るというものである。通信ができればコントロール用のコンピュータから文字列を受け取り、決めた航路でその文言を喋って回る。

 飛行船は現実的にはかなり厳しいが、飛行船ドローンという概念が珍しかったのかウケた(ちなみに数ヶ月後、パナソニックだったかが屋内用飛行船ドローンを発表していた。課題部門なので屋外非常時向けとしたが、やはり広告業界向けだったのかもしれない)。



苦労したこと


 まず情報が非常に少ない。飛行船ドローン自体が見当たらないのはともかく、小型の飛行船を作ろうということは海外を含めてかなり事例が少なかった。理由はおそらく、ヘリウムが高価であることと気密を保った構造を作るのが難しいからだと思う。

 次に苦労したのは前述の気密を保った気嚢(バルーン)を製作することだった。まず、ヘリウムを逃さないためにアルミ蒸着フィルムを入手するのが難しい。風船屋が随分なサイズのロールを売っているのを見つけそれを買った。そしてそれをアイロンで溶着していくのだがそれもまた難しい。アイロンを当てる時間が長いとフィルムは溶けて穴が開き、当てる時間が短いとうまく溶着せずヘリウム漏れが起こる。つまり、適度のスピードで重ねたフィルムの上をバルーンの線に従いながら溶着する必要がある。完全に職人の技と化していた。「飛行船職人の朝は早い」などと茶化しながら作業した。



技術的な事

 システム構成は単純に機体制御にArduino、通信にXBee、音声合成には専用のICを用いた(この記事はずいぶん後に書いているので型番を覚えていないがどう見てもATmegaだった。秋月電子で購入出来る)。

 見出しに技術などと書いたが、大した技術は載っていない。強いて言うなら劣悪な通信環境下で音声を送信するために音声合成を使っている程度で、調べればいくらでも出てくる話である。



なぜ飛行船か


 一般的にドローンというとクアッドコプターが有名であるが、飛行速度が速すぎるのと、滞空時間が短すぎる、プロペラが高速回転し危険という問題をはらんでいる。飛行機型は滞空時間は長いが同様の危険がある。結果としてのんびり飛行して浮くために電気を使わないので滞空時間も伸ばせる飛行船が最適であると考えた(実際には屋外で風を受けると制御不能に陥る問題が存在する)。



トラブル


 当日会場に辿り着くと尾翼の部品がなかった。どこかで置き忘れたのか真相は闇の中……ともかく、見た目を整えるために寒い夜の街を練り歩き、無事引率教員に怒られた。



最後に


 あれほど苦労したのに画像がほとんど無いのが残念だった。チームの誰もが疲れで謎のテンションの下に作業していたから写真を撮る奴がほぼいなかったんだと思う。

 企業賞は嬉しかった。数の問題があったので多少もめたのと、地元企業の賞だったので会場がざわついたこと以外は問題無かった。

 プロジェクトをまとめることは非常に難しかった。各個人の技能と水準に差があり、性格も影響した。人を扇動することは簡単かもしれないが、人を使うことは本当に難しいと実感した。特に、上司と部下のような明確な立場の差をつけられない場では、口のきき方一つでもチームのやる気に大きく影響することを再認識させられた。