Quantcast
Channel: Cerevo TechBlog
Viewing all 63 articles
Browse latest View live

[6日目] 週末、冬キャンプのススメ

$
0
0

こんにちは。デザインエンジニアのあやのです。
入社して1ヶ月、まだドキドキしながら出社してます。

6日目の本日は、マジメにお仕事の話ではなく、マジメにキャンプの話をしようと思います。
一生懸命働くために、一生懸命遊ぶのも大切です!そうだ、休みができたらキャンプへ行こう!

camp_tent

キャンプってこんなに楽しい!

◁ 自然を全身で感じるコトができる ▷

cebusunrise

そこでしか見れない絶景、空気、匂い、五感で自然を楽しむコトができるのがキャンプの醍醐味です。日頃ビル群ばかり見ているみなさん、雄大な景色を眺めれば心も体も癒されること間違いなし。

自然の音に耳を傾けて、おいしい空気を吸って、体の中からリフレッシュしちゃいましょう!


◁ 一緒に過ごすひと時が大切な時間になる ▷

camp_6

「キャンプって不便でしょ?」なんて思っているそこのあなた、、、正解です!!

だけど、不便だからこそ、何もないからこそ、一緒に過ごす人との時間がいつもと違ったものになる、それがキャンプのイイところだったりします。一緒に火をおこす、一緒にごはんをつくる、一緒に火を囲みながら酒を飲む。間違いなく最高の思い出になります。

居酒屋で飲んでる場合じゃない!キャンプ場へ行こう!


◁ 非日常は冒険だ! ▷

camp_2

普段できない遊びができるのもキャンプならではの遊び方です。釣りをするもよし、ハイキングにいくもよし、カヤックやSUPなどアウトドアならではなことに挑戦するのもオススメです。なんだかキャンプっていうだけで気持ちは冒険家になれます。

よーっし、みんなで冒険に出よう!

キャンプするならゼッタイ冬がオススメ

camp_3

キャンプといえば夏を思い浮かべるかもしれませんが、私は断然「冬」をオススメします!ですが、「いやいやいや」とひいてる人の方が多数だと思うので、冬キャンプのメリットを並べてみました。ちなみに、デメリットは一言で「寒い」ということだけです。

◁ 冬のメリット ▷

  • 人が少ない(静かなキャンプを楽しめる)
  • ベテラン勢多し(お宝キャンプギアがたくさん、学ぶこともたくさん)
  • 虫が少ない
  • 寒いからこそ焚き火が美しい
  • メシがうまい、酒もうまい
  • 冬ならではの遊びができる(ソリ滑り、雪合戦、etc…)

camp_4

要するに、冬のキャンプはサイコーってことです!  ※寒さは道具でしのげます。

火の魔術師となれ

camp_5

冬のキャンプにおいて、火を操れるかどうかということが大きなポイントとなります。それはなぜか、、、暖をとるの「暖」に直結するからです!最近では、電源を使えるキャンプサイトも増えていて電気ストーブ等使おうと思えば使えますが、せっかく火を使えるのがキャンプの醍醐味ですからね、火を使いこなしましょう。ということで、冬のキャンプのお供「マキストーブ」です。

camp_7

マキストーブは扱いが難しいです。習うより慣れろらしいので、感覚で覚えるしかないそうな。つい先日、雪の積もる北軽井沢でキャンプをしてきましたが、マキが濡れていたせいもあり悔しいほどに苦戦しました……。悔しさのせいなのか、煙のせいなのか、涙が出てきたのはここだけの話です。

◁ マキストーブクッキング ▷

camp_8

マキストーブと仲良くなると、友情の証として美味しいごはんをいただくことができるようになります。 ストーブの鉄板はものすごく熱いので料理が可能になるんです!先日は2.5キロの鶏肉を丸ごと煮込んだタッカンマリ(韓国料理)を仲間が作ってくれました。スープに生姜がきいて、体の芯まで染みるおいしさ・あたたかさでしたよ。

◁ 余談:お酒がトロトロになるの知ってた? ▷

cammp_10

アルコール度数が高いお酒は雪にさしておくとトロトロになるんです!(アルコールは度数が高いほど凍らないという性質をもっています)そのトロトロのお酒がまたたまらなく美味しい!あたたかいご飯にキリッと冷たいトロトロのお酒、たまらないですね〜。

 さぁ、みんなでキャンプに行こう!

camp_9

ここまでくれば、もうみんな冬にキャンプ行きたくてうずうずしてると思います。これから冬本番がきますよー!
最近では会社の研修にキャンプを取り入れるところもありますし、Cerevoキャンプなんていうのもいつかやってみたいですね!ね?

 


[7日目] 総予算3万円以下!腕時計MAKERSになる10 steps

$
0
0

猫時計

こんにちは、回路設計をしている押切です。

本格的なスタートアップの話は他のメンバに任せて、自分からは10個からオリジナル製品を作る方法の1つを、10stepsで解説します。
今回は、腕時計の文字盤部分に好きなデザインをいれてオリジナル製品を作った流れを例にみていきましょう。

Step1:対応してくれるsupplierを探す

Alibabaで製品のカスタム対応をしているところを探します。
めぼしいところ、作りたいとおもう製品を取り扱っているところから、カスタムしてくれそうなところに質問を投げていきます。
ログインした状態で回覧すると履歴にのこるため、履歴に残っているところや、過去に買い物したところからアプローチがくることもあります。

相手をあるていど絞ったら、E-mailでなく、Trade manager、Skype、Wechatなどチャットでやりとりできるように連絡先を交換しましょう。
窓口とのやりとりは英語になりますが、相手も堪能でない場合も多いので、恐れず意味が通じるまで何度でもチャットして交渉しましょう。

今回は、中国のShenzhen Oneil Watch Co., Ltdと話がうまくまとまり実際にカスタム製品をつくることになりました。

Step2:条件の交渉

めぼしいSupplierをみつけたら納得いくまでチャットなどで最低限、下記情報を聞き出して、カスタマイズ要件を決めます。
矢印の先は今回聞いて決めた内容です。

  1. カスマイズで何ができるか?
    • =>文字番の上の木製のデザインと裏面のレーザー刻印をカスタマイズ可能(後に箱の上面も刻印可能と理解)
  2. MOQ(最低量産数)
    • =>10個から
  3. 費用
    • =>20USD/個(カスマイズ込み)
  4. 納期
    • =>発送までは、支払い後、1−3日後
  5. 支払い方法
    • =>PayPal(クレジットカードも可)
  6. 配送方法
    • =>EMS(Fedex/DHLの方が早いが、コストからEMSを選択)
  7. 個別の箱(Gift box)はつくか
    • =>追加費用なしで同梱

Step3:デザイン作成

私の小4の長女に猫のデザインをしてもらい、それを元に娘と相談しながら、Inkscapeでデジタル化しました。

デザイン1

裏面は”Design by Oshikiri”を入れようとしましたが、後述のチェックで採用はやめました。

Step4:PIを貰って発注

できたデザイン画像を送って、そのデザインで生産可能という返事がきたら、見積もり(PI/Proforma Invoice)を貰います。
後のトラブルを避けるため、付帯条件としてオリジナルデザインであること、Gift box込みであることなどこちらのリクエストしている内容を記載してもらいます。
また、作成前に必ず試作画像を送ってもらい、出来上がりイメージを確認してから量産するよう依頼します。そうしないと、こちらの許可を待たずにどんどん作られる場合があります。

今回の制作費用は、

製品代:200USD(10個)
送料:31USD(EMS)
PayPal手数料:10.4USD
合計:241.4USD

になりました。

Step5:支払い

Supplierによりますが、今回はPayPalで支払うためAlibabaのシステムは使わず、相手のPayPalアカウントを聞いてPIの価格を支払います。支払いが完了すると相手にも通知が行くので確認してもらいましょう。

Step6:画像データ調整と確認

今回特にデザインデータの形式は特に問われませんでした。発注先にもよるとおもいますので、その部分も必要であれば確認しましょう。
先にお金を支払っているのでスムーズに制作が進みます。縁に接続するための接続ポイントが増えることなどが送られてきました。

裏面のレーザー刻印は、あまり細かい線は再現できず、丸穴が大きくなったり、裏蓋全面の大きさでないと刻印できないとのことで、なしとしました。

check1修正データ

こちらがOK出さなくても制作はどんどん進みます。このスピード感は楽しいですが、問題あればすぐに連絡しましょう。

試作

Step7:Invoiceの確認

10個完成したので発送するという連絡が来ました。

輸入なので、Supplierに払った費用以外に関税が掛かる場合があります。
これは受け取り時に運送業者に支払うことになるので、事前に知らないと慌てることになるので注意です。
Invoiceには、SampleかGiftと記載してもらいましょう。
関税の計算は、個人輸入に対しては、支払った総額に60%をかけた金額が課税対象額になります。
ただし、対象額が1万円以下は無税です。つまり、10,000円/0.6=16666円以上から発生します。

241.2USD、1USD=113円で計算すると、241.2*113*0.6=16353円に対して関税が発生します。関税率は輸入品によって異なります。3%とすると490円です。これにさらに消費税と税関手数料が若干掛かるようです。
また、発送してもらったら、必ずTracking numberを聞いておきましょう。国を超えての配送はトラブルが多いため、きちんと配送状況を確認できるようにしておくのがいいでしょう。
EMSでも追跡可能です。今回は発送から6日ほどで届きました。

EMS

Step8:商品確認

届いたら、全数中身の確認をします。
高級感はさほどないですが素朴な作りです。裏蓋もプラスドライバーで簡単に開けられ、電池交換も容易です。

完成

裏面

しかし、残念ながら、1個秒針が外れていました。

壊れ

また、箱の上面にボツにしたロゴがサービスでレーザー刻印されていました。
この件は、クレーム入れるほどではないと判断して上からシールを貼ってリワークしました。

箱

Step9:不具合の交渉

無事届いた旨を伝えた後、秒針が外れいたことに関しては、写真付きでわかりやすくクレームを入れます。
新品を要求したところ、日本の時計屋で修理したら、その分返金するとのこと。

しかし国内で何店か修理できないか聞いてみましたが、有名メーカー製以外は受けてくれてなかったり、3,000円から納期3週間と言われました。

再度Supplierと交渉の結果、修理方法を動画付きで教えてもらえることになりました。竜頭さえ引き抜ければ簡単に分解できる構造とのことで、自分でも直せそうでした。

Step10:使用と販売

実際に腕時計をつけてみた感じは、寝ぼけてなければ予測もつくので思ったより時刻も見やすいです。
娘も喜んでくれました。彼女も小4にして立派なMAKERSです。

使用

自分と娘の分以外の7〜8個は試しに近日中に販売してみる予定です。うまく売れたら、また追記したいと思います。

ちなみに掛かった実質の日数は、

Step1:1日
Step2:1日
Step3:1日
Step:4/5:1日
Step6/7:2日
さらに2日後発送、6日後到着
なので最短で2週間ほどで可能です。

大事なのは納得するまで交渉し続けることです。
ぜひ皆さんもトライしてみてください。

販売するのが目的だけではなく、少人数で仲間内のお揃いのTシャツを作る感覚と費用で実現できると思います。

[8日目] LiveShell Xの密かなコダワリ

$
0
0

こんにちは。小林哲之です。組み込みソフトウェアエンジニアとして、LiveShell Xに携わりました。

先日、秋葉原ライブカメラをリニューアルして配信機材としてLiveShell Xを投入しました。最初だけちょっとつまずきましたが、現在は安定して動作しています。今まではUstreamだけでしたが、新たにYouTube LiveFRESH! by AbemaTVが加わりました。この3つの配信を一台のLiveShell Xでまかなっています。YouTube Liveには1920×1080 (いわゆるフルHD)で配信しています。(2016年12月8日現在)
秋葉原ライブカメラを見るにはタブレットのアプリがおすすめです。ちょっと古いパソコンよりもずっと滑らかに再生できます。個人的にはFRESH! でながめるのが気に入っています。

歩行者天国のときの秋葉原ライブカメラ

歩行者天国のときの秋葉原ライブカメラ

さて、今日はカタログにはあらわれない、開発者のコダワリのポイントをいくつか紹介します。

小さくすることへのコダワリ

liveshellx_on_hand
これは製品コンセプトを決めた弊社代表岩佐のコダワリです。
最初にできあがってきたモックは今より少し背が高い形状でした。しかし岩佐がそれをよしとせず、メカデザのエンジニアとハードウェアのエンジニアが部品の配置をあれこれパズルのように組み合わせ、この大きさになりました。しかもバッテリー駆動時間を犠牲にしていません。
(その過程で、私が希望していた標準サイズのSDカードスロットは没になり、マイクロSDカードスロットに変更されました。)
「LiveShell Xにはなぜ ○○コネクタをつけなかったの?」と聞かれることがありますが、それは大雑把に言えば、小さくすることを優先したからです。(もちろんコストも。)

複数配信のコダワリ

LiveShell X はひとつのビデオ入力から複数のライブ配信サービスに異なる画像サイズ、異なるビットレートで同時に配信することができます。実はこの機能は、一番最初の製品企画会議では必須要件に入っていませんでした。既存機種からの変更規模があまりに大きいので、「そこまではやらなくていい」という位置づけでした。しかし、「ライブ配信としては1280x720p 30fps で充分なのではないか?この製品で1920x1080p 60fpsできるようになるが、それは過剰で実際には使われずに、LiveShell 2を2台買ったほうがいいと言われてしまうのではないか?LiveShell 2の2台分以上の価値を提供したい。」という思いがあり、私のコダワリで複数配信の機能を入れることにしました。
でもやはり、実装には苦労しました。単純に複数別々に配信する実験まではうまくいったのですが、その後の製品レベルまで詰めて行くのがつらかったです。いくつかの制限事項と折り合いをつける必要もありました。「複数配信の機能を入れていなければ、とっくに完成したなあ」と後悔したことも。
いろいろな人の手も借りつつ、最終的になんとか完成させることができました。おかげさまで、この複数配信できる機能は好評のようです。こだわった甲斐がありました。

モノラル音声の密かなコダワリ

音声のチャネル数の選択の部分なのですが、従来のLiveShellシリーズではステレオとモノラルの2つが選択可能です。
これと同じように作ることもできたのですが、ちょっと思うところあってLiveShell X では以下のように選択肢を増やしておきました。

  • モノラル (左右ミックス)
  • モノラル (左のみ)
  • モノラル (右のみ)
  • ステレオ

つまり、左右のチャネルのどちらか片方だけを使うというモードを追加しました。
この実装はそれほど難しいものではありません。従来のLiveShellシリーズになかったのは単にその必要性がなかったからです。

これはどんなときに使うことを想定したかというと、「簡易2カ国語対応」です。昔のテレビの2カ国語放送のように、音声2チャンネルのうちの左に主音声、右に副音声を入れてもらえば、複数同時配信するときに、映像は同じものを流しつつ、ひとつは主音声、もうひとつには副音声をつけることができます。
図で示すとこんな感じです。
simple_multilingual_streaming
実際にこんな使い方をする人がいるかどうかはわからなかったのですが、LiveShell Xの発売直前の体験イベントに来ていただいた方がまさにこの機能を要望していたのでびっくりしました。「こんなこともあろうかと」とか心の中で言いながらドヤ顔で説明させていただきました。(^^)v

実は録画も複数できるようにしておいたというコダワリ

LiveShell Xはひとつのビデオ入力から複数のライブ配信サービスに同時に映像を送ることができます。実は録画もライブ配信も最後の出力先をどこにするか?の違いでしかありません。なので、録画も複数できます。(録画のファイル名は開始時刻を元に自動生成していますが、同時刻に複数録画を開始してもファイル名が重複しないように、チャネル番号もファイル名に含むようにしてあります。)
複数録画したい場面はほとんどないとは思いますが、同一の映像をH.264とH.265でそれぞれ同時に録画してみて、画質をじっくり見比べるということをしたい人はいるだろうなあと。

ただし、複数の録画を同時にするときにはマイクロSDカードにランダムアクセス性能の高いものを使用してください。世の中にはシーケンシャルアクセスは充分速いのにランダムアクセスがとても遅いマイクロSDカードが存在して、それを使って高ビットレートで複数の同時録画をするとフレーム落ちが発生する可能性があります。
安全をとって録画を同時にはひとつだけしかできないように制限をかけるという案もあったのですが、あえて制限はしませんでした。なお、UHS 1やclass 10などの規格はシーケンシャルアクセス性能しか考慮していないので、選定基準にできないことに留意してください。

最後に

とりとめがなくなるので今回はこのあたりで切り上げます。コダワリポイントはまだまだあるので、またそのうちに。

ライブ配信機器として、入門機ならばLiveShell 2をおすすめしますが、ワンランクアップしたい方はぜひLiveShell Xをご検討ください。
値段が高い分の価値はありますよ!!

[9日目] ルーツ旅から見る中国厦門(アモイ)今昔物語

$
0
0

Cerevoの林(りん)です。営業とSIM CHAGER⊿のプロダクトマネージャーやっています。

TechBlogですが、文系出身の私は何か技術的な事を話せるわけではないのでCerevoメンバーはほとんど行くだろう中国の話をしたいと思います。
といっても既に中国の工場のなどの話は以前にされた方がいるので、ここでは私が最近中国に行ったときのこと、また35年前に父が行ったときのこと、それぞれが経験したルーツを辿る旅の話をしたいと思います。

まず私自身のお話をしますと父は台湾人、母は日本人のハーフです。
そして父方の8代前の先祖は、台湾に来る前に中国に住んでいました。現在の厦門(アモイ)市の同安区瑶頭村の西河という所です。父は祖父から、私は父からこの話を聞き、時間軸は違えどそれぞれがこの先祖がいた地を目指し中国へ行くことを決めました。

そもそも厦門ってどこ?

廈門という街の位置は地図を確認してください。


ちょっと南に台湾政府が占領している金門島があり、その先には台湾があります。

実は過去多くの人が私の先祖と同じようにこの辺りから台湾に渡っています。また東南アジア各地にいる中華系の住民もこの厦門あたりから移住した人が多いと言われています。

厦門への道のり

現在は日本から廈門へは成田から直行便が出ています。私が廈門へ訪問する際にはこの直行便を使いました。

父が訪問した35年前は直行便なんて便利なものはなく一度、北京に行きそこから鉄道移動でした。そもそも当時は中国が改革開放前で個人旅行なんてもってのほか。ツアーに参加するしかなく、行くところには全てガイドがついてきて許可がない場所には自由にいけない時代でした。
ただ、華僑(海外在住の中国人)だけは旅行禁止地域を除いて自由な往来が許されていました。
父は台湾人という事で華僑扱いだった為、ツアーに参加をし途中の空いている日程で廈門へ訪問しました。
福州という街まで鉄道で行きそこからバスで移動する過酷な道のりだったそうですが、現在は福州からでも高速鉄道ができており、大分陸路での移動も楽になっています。

通貨の今昔

中国の通貨ば人民弊、人民元、RMBと呼ばれています。

ただ父が中国へ行ったときは兌換元という通貨にしか両替ができず、一般の中国人が使用する人民幣とは異なっていました。この兌換元は外貨に両替でき、人民弊で買えない商品が買えたそうです。そのため父が銀行に人民弊の両替を依頼した際に奥の方からお偉いさんが出てきて、お偉いさんのポケットマネーの人民弊と父の兌換元の交換を求められたとのことです。

厦門の見所

せっかくなので厦門の見どころを紹介いたします。

鼓浪嶼(コロンス島)

市内地には旧疎開地である鼓浪嶼という島があります。
かつてアヘン戦争後の南京条約で廈門が列強に開港された際アメリカイギリス日本ドイツフランスなど、列強諸国の共同租界がこの島に造られました。今でも島内のあちこちには、赤レンガ造りの洋館が建ち並ぶ区画が残されてて、中国の一画にいるとは思えないような、往時の面影を色濃く留めたエキゾチックな空間が島全体に広がっています。

32582_1127407120802_7486929_n

廈門の中でも最もポピュラーな観光地であり、中国内外の観光客でいつもごった返していますが、それでも通りを一本入ると、とても落ち着いた雰囲気の閑静な住宅街がそこに広がっています。車の乗り入れが規制されている分、自動車がもたらす喧騒から開放されるので、本島に比べると落ち着いた感じで観光を楽しめます。廈門を旅行先に選んだのなら、ぜひ一度は訪れて頂きたいスポットです。
行き方は市内を走る高架バスBRTで第一碼頭駅からフェリーで5分です。

福建土楼

土楼とは長方形や円形の厚い壁で囲まれた集合住宅に福建省の南西部の山岳部に地域に集中していて、2008年にはユネスコの世界遺産にも登録されています。

32582_1127407680816_3025923_n

大きいものは衛星写真にもうつる程で、一時期アメリカがこの写真を見てミサイルのサイロと勘違いして大規模なミサイル基地ではないかと疑問を抱いたそうです。
私は食事付きで100元程のツアーに参加して、田螺坑土楼群と裕昌楼へ行きました。
このツアーは湖浜長途汽車站というバスターミナルに行けば申し込めます。ホテルに迎えにくるツアーもあるようですが値段も倍近く違うので節約派はこちらをおすすめします。

大体土楼がある所まで片道3時間ほどかかるのでほぼ1日がかりのツアーになります。

祖先の地の今昔

父の時代は中国内で自由に旅行をする事を許されない時代でした。そのため先祖の地を訪ねるのにも事前に現地の旅行会社に対して、父が持っていた家系図のメモを確認してもらいガイド付き添いでやっと目的地にたどり着くことができました。その時に父が撮った記念写真がこちらです。

48813970_1303772349

父は現地で右側に「西」、左側に「河」と書いてある柱の建物を見てここが祖先の地であることを確認しました。

私が同じ訪問する際に手がかりだったのが同安区瑶頭村という場所、そしてこの写真のみでした。父が訪問した時に案内して頂いた方は当時で40〜50代前後ぐらいと思われる風貌だったので、その時の事を覚えている人がご健在なのかもわからない状況だったのです。

とにかく動かない事には何も進まないので同安方面のBRTという高架バスに乗り、さらにバスを乗り継ぎしばらくして車窓から「瑶頭」の標識が見えたので下車しました。どうやら村の中心までまだ距離がありそうだったため、バイクタクシーを捕まえ3~4キロ走った先にあった村の広場で降りました。

32582_1127406880796_7152427_n

村について第一村人を発見し、すぐ昔の写真を見せながら父が当時に出会った人の名を出しつつ聞きこみをしました。すると「その人なら同安の中心に引っ越したよ」との答えが。いきなり出鼻を挫かれてしまいました。
どうしようかと途方にくれていると、近くの同じ苗字の遠い親戚かもしれない「林」さんの家に声をかけてくれるというではありませんか。

ありがたくついていき、その家の人に事情を話すと家にあげていただきました。
居間に上がるとその家のおばあちゃんが登場し、改めてここに来た目的を話すと 「もう少ししたら一緒に写真にうつってる人らしき人の家を何軒か案内するから、まずは少し休んでいってちょうだい」とあたたかい言葉をかけられました。さらに初対面にもかかわらず食事までごちそうになりました。

32582_1127406920797_7842921_n

頂いた食事が牡蠣がたっぷり入った米粉でつくられた麺で、台湾の田舎の食事に非常に似ていてびっくりしたのを覚えています。

食事をいただいたあと、一段落した所でおばあちゃんに連れられご近所を案内していただき、幾つかの路地を抜けると、まさに父が写真を撮った場所である、うちの先祖の旧家を発見しました。ここで改めて先祖の地にたどり着けたことを実感しました。

32582_1127406960798_3343601_n

その後、案内してくれた方が父が以前会ったガイドさんの家にも連れていってくれました。父が撮った写真を見せ、ここまでの道のりを話すと興味深そうにし、記念撮影をして同安の地を後にしました。

最後に

時代の差はあっても父も私も祖先の地を踏むことができ、遠い親戚と思われる同安の林(りん)さん方には会え、とても満足した旅になりました。

帰国後、私はいつも通りの生活に戻りました。しかし当時の父は台湾政府に内緒で中国へ行ったことがバレてしまい、台湾政府のブラックリストにのってしまいました。
今でこそ台湾人も自由に中国へ渡航できる時代になりましたが、当時はいくら祖先の地とはいえ敵国に渡航するとは許されなかったのです。その結果、父は台湾が民主化するまで約10年間台湾に帰国する事ができませんでした。
それを考えると、いまは行きたいと思ったときにすぐに行けるありがたい環境であると思えます。

みなさんは自分の祖先がどこから来ているかはご存知ですか?
もし調べてみると新たな発見があるかもしれません。

[10日目] ONUの向こう側の世界〜光通信の上位層に迫る〜

$
0
0

こんにちは。電気エンジニアのcronosです。

さて今回は、いつも皆さんがご家庭で使っている光回線、持ち歩いている携帯電話の繋がっている上位層ネットワークについて、簡単に仕組みをご紹介したいと思います。

●光通信って

光通信という名前、最近よく聞かれるようになったような印象ですが、ずっと前、約30年前から光通信自体は実用化されていました。ユーザサイドのサービスとしては、2000年から”光・IP通信網サービス”という名前でスタートしています。

光通信は外から来た光ファイバが家庭やオフィスに設置されているONU(光回線終端装置)につながっています。
今回はこのONUを出発点にして、光通信の上位層についてみていきたいと思います。

●ざっくりとした名前と距離

全体の話の前に、光通信の距離レンジによっておおまかに名前が付けられていますので、以下かんたんにご参考ください。

アクセス : 局舎からご家庭までの通信網。
メトロアクセス : 〜40kmの都市内通信網。トポロジはリング。
メトロコア : 40〜100kmの都市内通信網。 トポロジはリング。
ロングホール : 100km〜 の都市間(リング)・国間通信網

●通信の方法

以前の光通信は狼煙やモールス通信のように、情報を”1/0″の2値に分け、それぞれの通信方式で送っていました。
(例えば狼煙なら煙が出ている=1など) 細部を割愛すれば0/1(消えている/光っている) で表現しています。

ON_OFF

最新の通信方式では、光の波の角度(偏波と呼びます)が異なる信号を重ね、また分けられるといった特性を活用して、偏波が直交した2つの波を組み合わせて通信を高速化する方式(PSK,QAM)が使われています。

TETM

●ONU(Optical Network Unit/光回線終端装置)

ONUとは室内に置かれたにある白や黒の箱のことです。光で降りてくる情報をイーサネットに、イーサネットからの情報を光に、それぞれ変換して送り出す装置です。
昔、フレッツTVというサービスが難視聴エリアを対象に光通信を始め、いまでは映像と音声などを含むデータが1本のファイバを通って降りてきます。

現在日本で運用されている、大多数の光ネットワークはPON(IEEE802.3)と呼ばれる方式です。
光ファイバは、ONUから辿っていくと最終的に局舎に繋がっている訳ですが、1家庭に1本、1000家庭なら1000本が局舎まで個別に繋がっている訳ではありません。

局舎から1本で出た光ファイバは、最終的に32分岐されてONUに繋がっています。ただ分岐しているだけなので、32個のONUには同じ情報が届いてしまいます。
そこで、ONUは局舎に置かれているOLT(Optical Line Terminal)とタイミングを合わせて、自分のデータが届くタイミング、自分のデータを送って良いタイミングを得て1本のファイバを時間でシェアして利用しています。

OLT_Data

という事は、そのタイミングをいじってやれば他の家庭に行くデータを盗み見する事が出来るのか?というと、頑張れば出来るかも知れませんが、データは暗号化されています。これもONUのお仕事です。

データは先述の通り時分割でシェアしていますが、映像と音声などを含むほかのデータはそれぞれ別の送り方をしています。

光はには赤色、緑色、青色の種類があり、それらをを混ぜ混ぜることで白色として送ることも、そのほかの色として送ることも出来ます。この光の色をまぜるのには、プリズムを使います。
皆さんも昔遊んだ事があるかも知れませんが、プリズムに光を通すことで、白い光を単色に分ける事も混ぜることもできるのです。

Prism

実際の光通信では、目に見えない赤外線を利用して通信をしています。
これは、光ファイバは波長(光の色)によって損失が異なるので、ロスの少ない波長を選んでいることが理由の一つです。

局舎→家庭(ダウンリンク) では、光の色を2色使って情報を送っています。
データ:1.49um
映像:1.55um

家庭→局舎(アップリンク) は、ダウンリンクとは違う色を使っています。
データ:1.3um

●ONUの先

やっと局舎の中に入ってきました。
先ほども登場したOLTによって集められたデータは、ある波長の高速光信号(一昔前で10G、今は主流が40Gで流行りは100Gです)にされて上流ネットワークに流れます。

Access_LH

・上流(メトロアクセス・メトロコア・ロングホール)ネットワーク

光ファイバはリング状に接続されています。
東京の環状線、山手線を連想していただくとイメージしやすいと思います。 駅が局舎で、線路が光ファイバだと思ってください。電車がデータの流れです。(詳しくは違いますが、ここは概念という事で想像してください)

例えば電車にのって上野から東京に行きたい人もいれば、品川に行きたいひともいます。リング状のネットワークになっているので、電車(データの流れ)に乗って目的の駅まで移動します。実際は、上野駅から東京駅 の間に経路を作って、必要なデータをやり取りします。
前職で私は、この経路を制御する装置(ROADM (Reconfigurable Optical Add/Drop Module)、WSS (Wavelength Selective Switch)など)、超低位相ノイズレーザ光源の設計などをやっていました。

光ファイバは髪の毛程度の細さ(0.125mm)しかなく、被覆で保護されているもののデリケートなものです。何らかの事故で光ファイバが断線してしまっても通信を継続出来るように、リングは二重になっていて、時計回り、反時計回りのデータの流れが作られています。

1本の光ファイバにはとても多くの情報(約40波x40G = 1.6Tbit/s実用ベース)が乗っています。
例えば上野駅から必要なデータを乗せ(アド)、東京駅で降ろします(ドロップ)。

リングは1本ではなく、たくさんのリングが重なってメッシュを構成しています。この数多の経路・波長を駆使して目的の端末まで伝えるシステムになっています。
これらの通信経路は、全て光の状態で行います。電気には変換していません。
ただ流石に長距離伝送すると光の強さが弱くなってしまうので、随所に光アンプが入っています。
国と国の通信もロングホールの1端末に過ぎませんが、国間は非常に距離が長い海底ケーブルを通るため、光を光のまま増幅するアンプがある距離ごとに入っています。興味がある方は”EDFA”や”エルビウムドープ光ファイバアンプ” とかで検索してみてください。

●ということで

私たちが何気なく使っているPCやスマートフォンで、海外のサーバにアクセスしながらコンテンツを楽しんでいる裏には、実はすごいシステムが隠れているんだよ、という事を少しでもお伝え出来ていれば幸いです。

[11日目] 新卒エンジニアが愛した土佐酒

$
0
0

こんにちは。11日目を担当する組み込みソフトウェアエンジニアの山本です。
今年新卒でCerevoに入社しました。

皆さん日本酒は好きですか?
私は高知の大学に通っていたので、大学時代は高知の日本酒をよく飲んでいました。
自分の趣向入りまくりですが、好きな土佐酒について語っていこうと思います。

旨いッ!「文佳人」

文佳人 純米吟醸 無濾過生原酒

自分が純米吟醸酒の中で最も好きな日本酒です。
アリサワ酒造さんという酒蔵さんが造っていて、フルーティな吟醸香と強い旨味があり非常に美味しいです。
無濾過生原酒だとフレッシュな味わいが楽しめます。
大学時代はよく仲間内で飲んでいました。

フレッシュな酒「土佐鶴 しぼりたて新酒」

土佐鶴 しぼりたて新酒

県外の人からすると高知の日本酒で有名なのは「酔鯨」や「土佐鶴」などだと思います。
その中でも、土佐鶴は高知らしくキリッとした中に少し甘みがあり高知らしい日本酒といえると思います。
しかし、この「土佐鶴 しぼりたて新酒」は土佐鶴の上等酒(ツルパック赤)とくらべて甘みが強く上等酒(普通酒)ながら吟醸酒に匹敵する旨さがあります。
それでいて、高知県内だと普通にスーパーなどで売っているので買いやすく、よく食中酒として飲んでいました。非常に飲みやすいのでよく飲みすぎていました(笑)

芳醇な香り強烈な発泡「亀泉 CEL-24 活性にごり」

亀泉 純米吟醸原酒 CEL-24 活性にごり

亀泉のCEL-24というお酒は、高知県工業技術センターで開発された酵母のCEL-24を使用しています。
ほどよい酸と香りがあり飲みやすいお酒になってます。
普通のCEL-24を飲んだことがある人はある程度有名ですが、活性にごりは非常に手に入りにくいのであまり知られていないと思います。
活性にごりは酵母が生きているので、非常に発泡しています。
どろどろの外見からすごく甘いお酒に見えますが、酸味と甘みがちょうど良く発泡しているのも相まって非常にバランスがとれたお酒となっています。
一升瓶であけるときは栓に穴を開けて少しづつガスを抜きながら開ける必要があります。
友人が何も考えずに開けようとして中身が天井まで吹き出したのはいい思い出です(笑)

地元の酒「松翁 蔵酒」

松翁 蔵酒

これもにごり酒です。こちらは地元の人に愛されてるお酒ですね。
初めて飲んだのは、高知県香美市で行われる香美バルというイベントで飲みました。
そのときはサイダー割にしてもらい飲んだのですが、非常に飲みやすくてこの飲み方を考えた人は天才だなと思いました。

「南」

南 山田錦純米大吟醸

南の純米大吟醸には酒米が別の五百万石と山田錦がありますが、個人的には酒米が山田錦のほうが好みです。
純米大吟醸らしい芳醇な吟醸香とキリッとした飲みごたえ。美味しいです。
なかなか「南」をおいている酒店は無いですが見つけたらぜひ飲んでみてください!
最近だと、東京でも居酒屋などで時々見かけるようになりましたね。

さいごに

全くCerevoと関係ない話でしたが、どうでしたでしょうか?
いろいろ紹介しましたが、高知には18の酒蔵があるのでまだまだおすすめできるお酒があります。(久礼とか美丈夫とか土佐しらぎくとか……)ぜひ一度高知に足を運んで見てください。
高知のお酒自体は山崎酒店こじゃんと土佐酒などの通販で購入できるので、高知に行けない人も買って飲んでみてください。東京だとまるごと高知という所があるらしいです。
高知のお酒は美味しいですよ!

[12日目] ハードウェア・スタートアップで非エンジニアは何をしているのか

$
0
0

アドベントカレンダー12日目のカイです。12といえば1ダースであり、干支の数でも星座占いの数でもあり、2でも3でも4でも6でも割り切れる使いやすい数字ということで、そういうところは広報や営業はもちろん社外との渉外も含めて事務系業務をいろいろと引き受けている自分には奇跡的にぴったりなタイミングとなりました。

ハードウェア・スタートアップにおいてもっとも重要なのは製品を開発することであり、それを担当するエンジニアでありますが、ハードウェアを企画し、それをお客さまにお届けした上で満足して使っていただくために、目立たないながら事務系の業務もハードウェア・スタートアップを支えています。今回はなかなか表からは見えにくいハードウェアに関わるCerevoの事務系業務が何をしているのか、を簡単ながらご紹介したいと思います。

広報(PR)

代表の岩佐がライター経験を持ち、私自身も7年ほどWebメディアの編集記者をしていたということもあって、広報活動は非常に重点を置いています。というよりスタートアップのような小さな企業組織において、広報・PRの観点は最重要の戦略、といっていいほどの位置付けです。

以前に個人ブログでもスタートアップの広報活動について言及したことがありますが、誰もが名前を知っているような大企業と違い、スタートアップはまず「世の中に知ってもらう」ことが最重要。どんなにいい製品を作っていても、製品そのものを知ってもらえないのではまったく意味が無いですし、Cerevoの掲げる「グローバル・ニッチ」戦略は、ニッチでもより多くの人に知ってもらうことで成果を出すという考え方なので、ますます広報活動がその重要性を帯びてきます。

基本的な業務としてはニュースリリースを書いたり発表会を開催したり、メディアの方からいただく取材に対応して立ち会ったり、などが中心ですが、Cerevoの場合は製品そのもののコンセプトとPRが深く結びついているものもあるため、製品開発のタイミングで広報として入り、「この製品を一言で表すとどんな製品なのか」みたいなところからエンジニアと議論を交わすこともあります。

また、「社外に出す文章」の責任を負う立場として、マニュアルやパッケージ、Webサイトの文言などの監修をサポートすることも。本来であれば専門の部署があっていいような業務内容ではありますが、Cerevoのような規模の人数ではそうした専門部署を用意するような余裕はなく、文章に関する業務はできる限り広報でもフォローしていたりもします。

営業

自社の製品を直販サイトで販売するだけで利益が上げられる、というのはハードウェアにかかわらずどんな製造業でも同じ夢を描くと思いますが、なかなかそれは難しい現実です。インターネットがこれだけ普及していても、Webの情報発信だけではなかなかすべての人に行き渡りません。特にハードウェアは「実際に手に取ってみたい」というニーズもあるため、実際の店舗で販売するというのも営業面で実に大事な要素です。

ちなみにハードウェアで起業したばかりの人と話すと「家電量販店でうちの製品を置いてもらいたい」という話を耳にすることもしばしばありますが、実はこれを実現するには大変長い道のりがあります。というのも家電量販店のような大きな規模になると直接メーカーと取引しているケースは非常に少なく、多くは「流通」と呼ばれる中間の代理店を挟むことになるからです。

販売店だけでなくこうした流通との契約を結び、販路を開拓するのが営業の大事な仕事。製品を知ってもらうPRもスタートアップにとっては重要ですが、それと同じくらい「販売先を開拓する」というのも、実際にお客さまへ製品を届けるために大事な業務です。特にCerevoの場合は海外でも製品を展開しており、言葉はもちろん慣習も異なる海外を飛び回る海外営業は、「グローバル・ニッチ」のグローバルを実現する大変で重要な役割です。

ものを売るだけがCerevoの営業ではありません。発売前の試作機を持って販売店やターゲットとなるユーザーへヒアリングし、そこで得られたフィードバックを開発に活かす、というのも大事な仕事です。特にCerevoではCESのような大きな展示会で発表し、実際の発売は後日、という製品もあるため、発表から発売までのタイミングでそうしたフィードバックを集めて製品をブラッシュアップしていく、ということもあります。

物流

販売だけでなく開発の面においてもCerevoに必要不可欠なのが物流業務。海外の工場から世界各国の倉庫へ、倉庫から販売店やお客さまへという物流はもちろん、Cerevoでは生産に必要な部品類をすべて自社で調達し、それを工場に送り込んで生産してもらうという開発形態を取っているため、製品の生産においても物流は重要な役割を果たしています。

国内の物流だけだと意識する機会は少ないかもしれませんが、こと海外の物流ではいろいろな課題があります。輸出に当たって必要な認可の取得や書類作成は国ごとに異なるため、輸出先、輸入先が増えるたびに業務は増えていきます。書類の不備があれば海を渡る前に物流がストップすることもありますし、時には自然災害や天候の影響で飛行機が飛ばず、そもそも出荷ができないなんてことも。

さらに最近ではバッテリーの問題も大きくなってきました。IoTと呼ばれるネット連動、スマホ連動のハードウェアは何かしらの形で電気が必要であり、そのためバッテリーを使う製品が非常に多いのですが、昨今の報道でも知られる通り、バッテリーの輸送はここ最近非常に厳しくなっており、バッテリー輸送に伴う手続きもより煩雑なものとなっています。

販売だけでなく生産も含めたほぼすべての工程で必要となる物流だけに、物流が及ぼす影響範囲も甚大。部品集めや出荷などが遅れることで発売日はもちろん開発スケジュールにも影響があるだけに、表からはなかなか見えないけれどCerevoを陰で支える非常に大事な存在です。

調達

前述の通り、Cerevoではハードウェア生産に必要な部品も自分たちで調達しており、部品を調達する専門の部署もあります。当たり前の話ですが設計図通り作るには部品が1つたりなくても作ることはできません。エンジニアが設計した内容通りの部品を規定の数だけ集めてスケジュール通りに工場へ送る、これは一言で言うと簡単に思えますが、実は非常に大変な業務です。

部品を買うと言ってもお金を出せばすぐに買えるというものではありません。ハードウェアの世界では「MOQ(最小発注数量)」というものがあり、100台で注文するのと1000台で注文するのでは部品1つの値段が大きく変わります。部品の値段が変わればそれは製品の販売価格にもシビアに反映するため、「いかに部品を安く仕入れるか」は、お客さまへ届ける価格を下げるために大事なテーマです。

価格はもちろん数量も、ある程度の数量になると仕入れるまでに時間がかかることもあります。部品を手に入れる時間がかかればこれも当然ながら開発スケジュールに影響を及ぼすため、予定通りの発売日に製品をリリースするために、逆算して部品調達のスケジュールを引き、それに合わせて適切な数量を適切な価格で調達することが、外からは見えにくいけれど製品の価格や発売日に大きく貢献しているのです。

さらには在庫管理にも調達は大きな役割を果たしています。初回生産の在庫がある程度少なくなってきたタイミングで、次の生産に必要な部材を調達するのですが、時間が経てば価格が変わったり、そもそも部材がディスコン(生産終了)してしまって入手ができないなんてこともあります。そうした事態に備えて常に部品の状況を把握しておき、万が一ディスコンになっても別の部品を調達できるような準備も必要。それを各製品ごと異なる部品すべてにおいて体制を作っておくという、非常に多岐に渡る大変な業務のおかげで、Cerevoの製品は開発できているのです。

サポート

ハードウェアはお客さまに販売して終了、ではありません。その後の故障や初期不良、予期せぬ不具合などに対応するサポートは、お客さまと直接やり取りをする窓口として、これまたハードウェア・スタートアップに大事な業務です。

数年前まではライブ配信機器が主力だったCerevoも、今では玩具やスポーツ用品、電子基板やロボットなど、製品ラインアップが非常に多彩になりました。おそらくハードウェア・スタートアップの規模でこれだけ異なる製品を扱うというのは、世界でも類を見ないのではないでしょうか。

こうした多岐に渡る製品の知識を、カタログスペックレベルではなく実際に使う利用者の立場で把握し、お客さまからの要望に対して的確に回答していくのは簡単ではありません。お客さまの中には製品を利用するだけの知識がなかったり、そもそも使い方を間違えていたりということも正直言って少なくありません。そうしたお客さまとのやり取りの中から適切な回答を導き出して課題を解決するのは、単なるテンプレート回答ではカバーしきれない、読解力や先見性の必要な業務です。

営業同様、サポートが製品開発に寄与することも少なくありません。お客さまから寄せられる相談の中から製品の不具合を発見したり、よりお客さまが使いやすくなる製品の機能をエンジニアに提案して実装してもらう、ということはCerevoの中では当たり前のように起きており、製品の満足度を向上させるためにも大事な役割を担っています。


以上、Cerevoの製品開発に関わる事務系業務をいくつか抜粋してご紹介しました。もちろん、会社として成り立つためには経理や総務、人事など他にも大事な業務がいくつもあります。部材調達に必用なお金のやりくり、オフィスをより快適に過ごすための総務、新入社員の対応や福利厚生面の対応など、ハードウェアを開発するためにこうした事務系人材はエンジニアと同等に重要な業務パートだったりします。

年間に10製品リリースを目標に掲げ、大量の製品をラインアップした結果、こうした事務系の人材もまだまだ手が足りていません。ハードウェアに興味はあるけれどハードウェアに関わった経験がないという人でも、Cerevoではさまざまな形で開発に携わることができます。弊社で活躍する事務系人材には、ハードウェアとはまったく異なる業界で働いていた、なんて人も少なくありません。

なんだかんだでCerevo4年生となり、だいぶ古株扱いされるようになった私が思うに、Cerevoのようなハードウェア・スタートアップで大事なのは経験よりも、経験のないことでも果敢に立ち向かうこと、マニュアルにないことでも自分で目的を探して前に進める人、そして失敗を恐れず、自分の失敗から何かを学んで次につなげられるような人であれば、むしろ経験がないまっさらな人のほうが向いているのかもしれません。

人数は100名近くまで多くなったけれど、それに伴い製品数も増えた結果、まだまだカオスで猫の手も借りたい状態の続くCerevo。「ハードウェアに興味あるけど自分には経験がないな……」「事務系だとハードウェアにはあんまり関われないかな……」なんて人も、興味をお持ちいただけるのであれば遠慮なく採用窓口までお問い合わせください。

[13日目] Cerevo的 トップエンジニアになる方法

$
0
0

アルバイトの中島駿太朗です。主にメカ設計をやっています。
静岡の大学で機械工学を3年間学んだあとに休学してCerevoで修業中です。

 

今回は9月7日にNHK総合のクローズアップ現代+で放送された「逆転ホームランなるか?日本の”新・ものづくり”革命」の中でトップエンジニアとして紹介されたCerevoのエンジニア陣について書きます。

日々Cerevoのエンジニアと接していると「あなた、そんなことまでできるの!?」と驚くことや、「ちょろっと遊びで作った〜」という物が「スゴッ!!」と感じることが多くあります。ただそれは私がエンジニアとして未熟者だからなのかCerevoだからなのかはCerevo以外のエンジニアさんと仕事をしたことがほとんどないのでわかりません……

とにかく、まだまだエンジニアとして未熟な私としては、Cerevoに在籍するようなスキルフルなエンジニアはどうやって出来上がってるのかな?、というのは気になるところです。というわけで今回Cerevoエンジニアのみなさんに以下のようなことを聞いてみました。

  1. 現在使用する知識・スキルを獲得した場所は?(計100の比率で)
    1. 大学など学校
    2. 大学院
    3. 前職(Cerevo以外)
    4. Cerevo
    5. その他(趣味・独学など)
  2. オススメの知識・スキル獲得法
  3. 専門分野でオススメのWebサイトや本(コンテンツ)
  4. その他(自由)

現役エンジニアの感じていることを聞くことが出来たと思うので、エンジニアを目指す人・別ジャンルにスキルの幅を広げようとしている人の参考になれば幸いです。

1. スキル獲得した場所

現在Cerevoで使用する知識・スキルをどこで身につけたか、についてです。

このエントリではCerevo内で大まかに分かれている以下の担当ごとに話を進めていきます。

  • デザメカ(デザインとメカ設計をする人達)
  • アプリ(Webサービスやスマートフォンアプリ、サーバ、データべースを扱う人達)
  • 組込みソフト(製品に搭載するソフトウェアを開発する人達)
  • 電気(回路設計、基板設計、部品選定をする人達)

※上記、大学院の項目をAの「学校」に含めて書かせて頂きます。

まずエンジニア全体の結果です。

Q_All

回答数24

全体で見るとこんなに綺麗に4分割になるとは……驚きでしたw

続いて上記4つの担当を順番に見ていきます。

Q_design_mecha

回答数7

Q_application

回答数8

Q_embedded_software

回答数5

Q_electric

回答数4

各担当に分けてみると、それぞれ特徴があるようです。

※回答人数が限られる事、外れ値など統計上の処理を行っていない事から、正確な傾向が表れているとは言えないかと思います。あくまでCerevoに在籍するエンジニアについて得られた結果である事を理解した上でご参考ください。
一人一人の比率を詳細に知りたい方はこちら→アンケート結果

デザメカ担当の自分としてはデザメカの人達の前職(Cerevo以外)の比率が大きいのは「やっぱりか」という印象です。というのは実際にCAD上で製品設計をした時は完璧なつもりでも、出来上がってきた試作品がダメダメという失敗を私自身が現在進行中でやってしまっているからです……その失敗から自分の設計の見落としポイントを学ぶことが多いので、そのサイクルの経験が多いほどCAD上での設計の見落としポイントが減っていくのだろうなぁ、と思います。ただその失敗をするとお金と時間が吹っ飛ぶので、なかなか個人や学校でその経験を数多く積むのが難しいのかなという印象です。

上の結果から考えてみると、各分野どこで専門知識・スキルを学ぶのが良いのか、ヒントになるかもしれません。

技術の変化が速い分野は最近(つまり前職やCerevo)に得られたスキルであったり、作る上で必要となるものが比較的安価に手に入って趣味になるスキルであったり、といったような様々な要素で考えられると思います。

またCerevoに入ってから今までとは違う分野も担当するようになったということが多くあるようなので、それも比率に大きな影響があるんじゃないかと思います。例えばデザメカで、デザインだけを担当していた人がCerevoに入ってからメカ設計もやるようになった、とかその逆とか、よくあるようです。

2. 知識・スキル獲得法

続いて、オススメの知識・スキル獲得法を聞きました。ここでは今現在Cerevoで使用する知識やスキルを身につける上で効率が良かった方法や、今でも仕事中に分からないことがあった時にどうするか、を聞きました。

 

まず担当分野に関係なく支持が多いのが次の2つです。

・自分で手を動かしてやってみる(作ってみる、使ってみる)

・ググる

何はともあれ自分で手を動かして作ってみる(使ってみる)。わからないことがあれば、とりあえずググる。以上に尽きるようです。

 

自分で手を動かして作ってみる(使ってみる)というのは、本や雑誌、Webサイトなどの資料を読むだけにとどめないという意味です。

例えば、作ろうと思っているものに似た製品を分解して色々な視点から観察し、仕組みや設計意図を考えてみる。プログラミングをするような分野ではサンプルを写経するところから始める。なるべくそこから発展させてサンプルにないオリジナルのものを小規模でもいいので作ってみる。という意見がありました。

 

その他の回答を以下にまとめておきます。

  • 知っている人に聞く(答えを得る最短ルートですが、聞くのは失敗してから、という意見も…)
  • いろんなジャンルの人と突っ込んだ話をする。ベテランの話はオモロイ。
  • 自分で試した時、そのブログを書く。(後々、過去の自分に助けられる)
  • 社外の勉強会に参加する。発表する。(その道のトップレベルの人に教えてもらえる)
  • 学校の勉強をちゃんと学ぶ。
  • 関連する本を読む(基礎固めとして読む。)(本はわからなくなったら素直にあきらめて3か月くらいしたらまた読む)

3. オススメのコンテンツ

次に専門分野で参考になったとか良質だと思うWebサイトや本を紹介して頂きました。

ここでもGoogleを推して下さったエンジニアが何人もいたので、Googleでの検索能力を上げるのは必須スキルなのかもしれません。

その他、以下のようなものが回答として上がりました。

4. その他

最後に、何か伝えたいことがあれば……ということで自由に答えて頂きました。
担当分野に関連がありそうなものは回答者の担当を記載しています。

「遊び・趣味はプラモとかラジコン、ゲームすらも意外と仕事にフィードバックできる。面白いと思ったことが一番身になります。」

「引き出しは増やしておくほうがいい。後で役に立つかどうかはそのときにはわからない。」

「気になったもの(ガジェット、スマホ、アプリ、電子工作キット、PCなど)は理由を付けて買って散財しておくと、いつか役に立つかもしれない。」

「とにかく手を動かして相場感とネタを身につけておくと、いつか役に立つ。」

「やりたいこと実現するためには、目の前のことを積み重ねて落とし所を見つけること。」

「自分の触った事のないジャンルは結構アイデアの宝庫。」

「電気・メカ・ソフトを自分でやることでエンジニアとしての視野が広がる。」

「なるべく曖昧なワードでググるといい。」

「エンジニアは特に開発を進める上で先の日程が読みにくい(だいたい遅れる)・成果が数値化しにくい。 だからこそ自分のモチベーション(軸)が何かを早く見つけて伸ばすことが大事だと思います。」

「自分が苦手そうな人にあえて話をしにいって人見知りしないようにする。(プロマネ兼任)」

「技術の変遷が速いので臨機応変な適応力が必要。深くマスターするよりいろんなものを即自分の道具として使いこなせるような訓練をしたほうがいい。 ただ、Linuxやネットワークプロトコルなどの知識はずっと役に立つ。(アプリ担当)」

「何より先に熱設計をやるべき。(電気担当)」

「深圳を上手く使え。 ドル円105円くらいになれ。」

「向上心のないものは馬鹿だ。」

「運動、瞑想、睡眠、野菜350g。」

「追い詰められると大体、なんでもできる。」

「楽しく学べ。」

 

以上、Cerevoに在籍するエンジニアが仕事に使う知識・スキルを獲得する方法について、まとめてみました。
エンジニアを目指す同志の皆さん、とりあえず自分の手を動かすところから始めていきましょう!


[14日目] 海外へのフライトでスーツケーツがなくなったときの対応あれこれ

$
0
0

Blogは書いたことがないのでとても緊張しています、海外営業の三寺(みてら)です。
今年は4月から色々な国に出向きました。1年を振り返ると欧米をはじめとした色々な国へ行き、なかでも初めてアジア圏で仕事ができたのはとても良い経験になりました。

20161206_002803981_iOS

さて、普段涼しい顔をして海外出張に行っているのですが、実のところトラブルも多くあります。
今回は、パスポートや財布をなくす次ぐらいに面倒くさい「預けたスーツケースが紛失した時」について、発生した際の対処方法とダメージを最小に抑えるコツについて書こうと思います。

スーツケースがなくなったらどうするか

スーツケースを紛失する一番よくあるパターンは乗り継ぎ時、次の飛行機に載らなかったというものです。
機内手荷物だけで済むフライトもあるかと思いますが、メーカーにいるとサンプルや製品を持って行ったりする事が多くそんなに身軽に行ける出張はほぼ0に等しいです。大体、乗り継ぎ時間が1時間未満の場合紛失する可能性が飛躍的に高まります。
また空港のシステムエラーで乗継空港の登録自体が間違っている場合もあります。これは防ぎたくても防げない一番最悪パターンです。
これを未然に察知するには荷物の預け入れ時、チケットカウンターで預け荷物と引き換えにもらったレシートをその場でチェックすることです。ただこれは空港のIATAコードを知らないと判別がつきません。IATAコードとは、成田であればNRT、羽田であればHNDといったアルファベット3桁で表す空港識別コードです。もらったレシートに記載されたコードが自分の乗り継ぐ空港と違うコードだった時があり、もらった際に気づくことができず紛失してしまいました。

さて本題はここからです。スーツケースをなくしたときにどのように対処すればいいでしょうか。
1回の出張で2.5回もスーツケースをなくされた事がある私の経験談から、申請の流れをお話しさせてください。

20161204_073300802_iOS

どこで紛失を申請するか

どの空港でも同じですが、パスポートコントロールを過ぎた手荷物受取所(Baggage Claim)のどこかにそういった荷物のトラブルを相談できるカウンターあります。使った航空会社によって申請カウンターが異なりますので、自分がどの航空会社を使ったのかは良く覚えておきましょう。深夜になるとカウンターに人が少なくなるので下手をすると数時間待ちになります。
ええ、深夜で数時間待ちです……。

大体の場合、航空会社が契約している紛失(Lost & Found)を専門に扱っている業者とのやり取りになります。

申請方法

カウンターにいくと書類を渡されるので、個人情報と便名を一通り申請書に書いて署名をします。そしてスーツケースの判別に関わる、色、形、ブランド、大きさなどの質問のやりとりがあります。スーツケースの形はコードになっているようで、それが書類に記載されます。2輪のキャリーケース、4輪、箱型など様々な識別コードがあり、これは世界共通なのだそうです。

申請後について

質問が完了して手続きが終わると問合せ番号と窓口の連絡先をもらうことができます(一部もらえない会社もあります)。
連絡先をもらったら、ほぼ数時間ごとに業者へメールをして状況を聞きながら、自分の滞在先に送って貰う様に手配しないといけません。これが海外出張だと拠点が目まぐるしく変わるのでなかなか難しくなります。
某国では結局滞在先には届けられる時間がなかったので、次の日の帰国便に載せて貰う様な手配になった事もありました。

毎日結構な数紛失はあるようです。そのうち、完全に見つからないパターンも我々が思っているよりも多いという話をちょうど先日なくされたタイミングで成田空港の職員の方に聞きました。

ダメージを最小限に抑えるには

スーツケースには必ず判別出来る様なタグを付ける

名前が書いてあるタグは非常に重要です。ユニークであったりするとすぐにわかるので良いです。また行く前に写真を撮っていると良いかもしれません。

重たくても重要なモノはスーツケースには入れない

よくパソコンやカタログを入れてしまったりするのですが、商談するのに必要なものはなるべく手荷物で持って行くのをオススメします。なくしても最悪なんとかなる、という状態にしておくとよいでしょう。

機内手荷物に食料と歯ブラシ

私は軽くて腹にたまる煎餅を食料として出張中は常備しています。私的には味も濃い「技のこだ割り 醤油せん」が気に入っています。
フライト後にスーツケースの紛失申請と続くと、相当疲れているはずです。なくしたものがいつ出てくるかわからないので気が休まらず本当に食べ物は重要です。食べた後は歯ブラシです。ただ歯磨き粉は手荷物検査でいちいち出さないといけないので個々の判断で。

最後に

さて、Cerevoではこういったトラブルも含めてそれを楽しみながら一緒に働ける仲間を募集しています。私は海外営業ですが今募集しているエンジニアの世界も予期せぬトラブルが起こります。
その中で落ち着いて臨機応変に出来るようになる対応力を磨くのも楽しいかもですよ。

[15日目] 不具合を発見したときのテストレポートの心得

$
0
0

こんばんは。稲垣です。組み込みプログラム担当として、CEREVO CAM live!やLiveShellシリーズなどのライブ配信系製品をずっと作っています。

今回は製品やサービスを開発するなかで避けて通れないテストレポートとかバグトラッカーのチケットとかを書くときのテクニックを社内向けにまとめた内容をTechBlogに持ってきました。題して「テストレポートの心得」。前半がテクニック本体で、後半が今回ブログ向けに追加した効能とか背景の解説となっています。それではどうぞ。

テストレポートの心得

テストの結果、不具合を見つけたら再現方法を報告しましょう。 この心得を読めばきっと突っ込まれないレポートができるはず。

標題と概要の心得

まず、どんな不具合を起こすかを端的に書いて標題にします。

標題だけで書ききれない場合は概要を書きましょう。1つの手順で複数の不具合が起きる場合、箇条書きにしましょう。

どこが不具合なのかはっきりさせて書くためには、どのような挙動に直すべきかを考えて、対比させてみるとよいかも知れません。

再現方法の心得

次に再現方法を記録します。再現方法は、読んだ人が同じように操作して再現できるように記録しなければいけません。

いろいろな解釈ができる書き方は再現方法の書き方としてよくありません。同じことをするのに複数の方法が考えられる場合、どの方法をとったか明記しましょう。それはつまり、何をどのように操作したか、何をどんな方法で観察したのかを説明するということです。操作だけでなく観察の方法もしばしば複数あります。

再現方法は事実の記録として書くべきで、全て過去形で「何々した」という記述の羅列になるはずです。タイミングが重要である場合 (タイミングによって再現しなかったとか)、「すぐに何々した」とか「何分間待ってから何々した」などをきちんと記録しましょう。再現方法を書いたら、その方法で本当に再現するか試してみましょう (ただし正常な動作を続けられなくなるような重大な不具合は早めに報告した方がよいでしょう)。

何回実験して、何回不具合が再現したかを記録しましょう。1回試して1回再現したのと、10回試して10回再現したのとは違います。

よくない記録の例

「動かなかった」
「何々しなかった」

期待したとおりに動かなかったことは、不具合として報告されている時点で自明です。このような記述から読み取れるのは、あなたの願望と、それがそのとおりにならなかったということだけです。

実験の結果には「どうなったか」を記録するべきです。「どうならなかったか」は書かないとそのほかの事象とまぎらわしい場合だけ記録すれば十分です。たとえば天気の記録を付けるのに、「雨は降らなかった」とだけ記録することがあるでしょうか? 必ず「快晴」「曇り」「雪」などと実際の天気を記録するはずです。

考察の心得

最後に、なにか考察を書きたければ書いてもかまいません。最後に書くのは、事実の記録である再現方法とあなたの推測を区別するためです。事実と想像を混同してはいけません。

不具合の原因についてなにか推測したのなら、それを検証するための実験を考えた方がよいでしょう。

FAQ

これは本当に問題なのか? と思ったら

「俺がルールだ」と思っていただければ結構です。これっておかしいんじゃないの? と思う部分はきっと他のユーザもそう思うでしょう。そういうところには直すかマニュアルやFAQでフォローするかの対策をすることになります。

再現条件をどこまで絞り込んでチケットにするか

必要十分条件を最初から見つける必要はありません。再現方法には事実だけ記せばよいのですから、十分条件が分かっていればよいのです。たとえば10分しか待つ必要がないことが後から明らかになるとしても、30分待って再現したのならまずはそう書けばよいのです。

解説

心得編はいかがでしたか。基本的には大学なんかで実験レポートを書くときに教えられることだったんじゃないかと思いますが……。ここからは背景の事情とかの解説編です。

複数の方法

LiveShellみたいな製品を作っていると、たとえばある設定を変える操作がDashboardからでもできるし、本体のキーを押してもできるということがあります。そして片方でしか問題が起きないことがあったりします (大抵両方で起きます)。本体のUIも頑張って作ってますから使ってください。

観察の方法が複数あるというのも同じ事情です。たとえばビットレートの表示はDashboardにもあるし本体にもあります。これがDashboardの表示だけおかしいとなると、web側の問題である可能性が高いので組み込み担当はホッとします。どこが問題か分からない書き方をされると余計なところにまで無用な不安が拡がります。

過去形で

過去形で書くのは科学的に大変重要なことです。現在形で書くとどうなるか。「フリーズする」。今まさに目の前でフリーズするってときだけは適切な言葉です。しかし何もないのにフリーズするフリーズすると言うと、それは公理や定理の書き方です。つまりそれが真実であると主張していることになります。「お前のプログラムはフリーズする……それが永遠の真実、世界の理 (コトワリ)、変えられない運命なのだ」。呪いですね。プログラマに恨みでもあるんでしょうか。

これが過去形で書いてあると、途端に過去の一個の事象に格下げとなります。あのときはフリーズした。でも将来は分からない。他の人が操作したら違う結果になるかも知れない (ヒューマンエラーだ!)。一挙に謙虚になりました。美徳ですね。

「『フリーズした』なら使ってもいい!」

何回実験したか記録する

サンプリングというのは回数を増やすほど信頼性が高くなります。1回試して1回起きただけだと、追試してみたら本当に1回しか再現しないこともありますし、忙しいときはそんな再現するのかしないのか分からない事象にはなかなか手が出せません。全部の個体で起きるとも限りませんしね。これが10回試して10回再現したとか百発百中とかになると、自分の個体でも出荷した個体でもそこでもここでも再現する可能性が高まってきます。ヤバい。

よくない記録

「動きません」。ありがちです。エラーメッセージくらいは報告してほしいものです。エラーメッセージの目的の半分は報告してもらうことにあります。ちなみに残りの半分は「やさしさ」です。解決の糸口になりそうなことも書いておきました。できれば自力でなんとか。

「フリーズした」。「画面が動かなくなった」と同義です。「○○しなかった」の報告は情報量が少なくてツッコミ返す必要があるから手間なんですよね……本当に何をしても動かなかったの? 何をしたのか列挙してみて? なんだACアダプタの抜き差しを試してないじゃあないか。ホラ、インジケータが変わった。フリーズはしてないでしょ。使いものにならないことには変わりありません。でもネチっこく絡まれます。

最後に

「過去形で書け」とか大学で実験レポートを書くときに必ず指導されることで、リアルに「あっこれゼミでやったやつだ!」と思える内容だったかも知れません。社会人の方々には昔を懐かしみつつ、一つでも「あれはそういうことだったのか」と納得していただけたら幸いです。まだ学生の皆さんはしっかり勉強して、勉強したことが役立つ仕事ができるように頑張ってください。この心得があなたの心に残って、素敵なレポートライフの一助となることを願っています。

Happy Hacking!

[16日目] Cerevo製品ネタネイルコレクション2016

$
0
0

こんばんは。外に出るときもう一枚なかに着込もうかなと考え始めた広報のあくやんです。

わたしの妹がネイリストをしているということもあり、Cerevo入社前から変なおもしろいネイルをするのが好きです。
とはいえいわゆるネタネイルというのはまぁけっこうネタが尽きてしまいがちなのですが、いまのわたしはネタ切れということがありません。なぜならこんなにもネタ(製品)に囲まれているからです。やったね!

ということでただの自己満足はありますが、2016年どんなネイルをしてきたかを載せていきたいます。
 

CESネイル

1月は年明けそうそう、ラスベガスで開催されたCES 2016にCerevoは出展していました。
CES 2016では変形型ロボットプロジェクター「Tipron」、金属3DプリントパーツでできたIoT自転車「ORBITREC」が新製品として発表されました。なので、その2つの製品の一部もポイントにいただきつつ、CESカラーにしています。

akuyan _photoさん(@akuyan)が投稿した写真


 

DOMINATOR ネイル

2015年7月に発表したDOMINATORが2016年の春先に販売開始されました。
DOMINATORといえば、パラライザーからエリミネーターに変形するのはもちろんですがLEDをぜいたくに217個もつかっていることも特徴の1つ。なので、ネイルも光らせたいなとおもって蛍光塗料を調達してネイルのジェルとまぜてみました。夜ねるときに爪が光ってて1人で楽しんでました。

akuyan _photoさん(@akuyan)が投稿した写真


 

Listnr ネイル

周りの音をひろってサーバにアップし音を解析できるスマート・マイク「Listnr」ですが、実はCES 2016のときに製品版は初お披露目だったので、CESネイルにもポイントでこそっといれていました。見た目がまるっこくてかわいいのと発売を勝手に記念して改めてネイルに。
写真だとわかりづらいですが、白のフレンチの上にカラフルなチークネイルでListnrのLEDの雰囲気を出そうと試みました。

akuyan _photoさん(@akuyan)が投稿した写真


 

Cerevoネイル

6月1日に入社したので、6月にはいったのにあわせてCerevoネイルにしました。
それとあわせて3Dプリンタでネイルチップをつくったりできないかなぁと、遊んでいた写真と混ぜています。Cerevoに入るまで3D CADとか触ったことはなく、ずっとweb制作をしてきましたがCerevoの皆さんに色々教えてもらって少しさわれるソフトが増えました。

akuyan _photoさん(@akuyan)が投稿した写真


スノボの滑りを可視化するスマート・ビンディング「SNOW-1」、電動フル稼働「DOMINATOR」、IoT開発モジュール「BlueNinja」、Googleカレンダーと連携するスマート・アラーム「cloudiss」、サイクリング状況を共有できるスマート・サイクルデバイス「RIDE-1」のモチーフをちょこちょこいれています。どれがどれかわかったあなたはきっとCerevoマニアです。ありがとうございます。
 

MKZ4ネイル

ミニ四駆をスマートフォンで操作できるように改造するワークショップを2015年からはじめていましたが、とても好評いただいた結果、改造キット「MKZ4」として販売することになりました。もともとは社内のエンジニアさんが、Cerevoで売っているESP-8266を使って遊びで開発していたものだったのですが、まさかこんなに進化するとは。噂だとまだまだ進化中のようです。

akuyan _photoさん(@akuyan)が投稿した写真


Cerevoにいなければミニ四駆をつくることはなかったかもしれません。
 

Hintネイル

9月にめでたくクラウドファンディングを達成した、Bluetooth搭載のラジオ「Hint」です。
ニッポン放送社、グッドスマイルカンパニー社と共同して現在ごりごり開発がすすんでいます。製品版でラジオをきいたり、ビーコン機能でURL取得できるようになるのが楽しみです。

akuyan _photoさん(@akuyan)が投稿した写真


 

こういうネタネイルしていると、どんな風にネイルのデザイン考えてるのか聞かれることがあります。
何も考えずに製品みながら「ここはこうしよう」と決めていく場合もありますが、きもちに余裕があるときはこんなかんじでかんたんにデザインをつくります。

nail

実は親指だけはずっと、Cerevoのロゴマークをモチーフにしたフレンチネイルを続けています。
これはわりと普通にみてもオサレ感高いのではないかなとおもって、社内で流行らせるためにUVプリンタでネイルシールでも作ろうかなと考えたりしています。

ネタネイルでもいいかんじに!が個人的なテーマなのでネタだと他の人からわかりづらいときもありますが、ネイルなんて100%自己満足なのでいいんです。キーボードを打つときに、改札にSuicaをかざすときに、ペットボトル持った瞬間にテンションが上がればそれで十分です。
次はどのネタにしようかな。

[17日目] 自撮り棒はもう古い⁉これからは自撮りパラシュートだ

$
0
0

こんにちは。電気設計担当のスン&メカデザイン担当のINDです。
アドベントカレンダー17日目は、弊社で販売しているCDP-ESP8266ことESP-WROOM-02の使用例としてあるものを製作しましたので、紹介していきます。


さて突然ですが皆さん、自撮り棒にはそろそろ飽きてきた頃ではありませんか?

撮影者も一緒に写ることができるという非常に便利な自撮り棒ですが、アングルやポーズが固定されてしまうという弱点があります。
常に最先端を求める皆さんは、そろそろこのバストアップショットだらけな現状からの脱却を狙っているのではないでしょうか。
そんなあなたに向けて、今回はスマートなソリューションをご紹介いたします。
それがこちら、パラシュートカメラです。

IMG_0597__
パラシュートカメラとは、その名の通りパラシュートの付いたカメラです。

使い方は簡単。パラシュートカメラとスマートフォンをWi-Fiで接続。カメラを空高く投げ上げてから落ちてくる間に、後述するスマートフォンアプリを使ってリモートでシャッターを切ります。

パラシュートカメラによって、上空からのアングルで自撮りをすることが可能となるのです!
★IMG_2602

では、撮れた写真に行く前に、テックブログとしてまずはパラシュートカメラの作り方を解説していくことにしましょう。
まずはスンから電気設計について解説していきます。

パラシュートカメラ製作のために用意したもの

 

電気設計

接続図

paracam_ブレッドボード2
この接続図は見栄えが良かったのでFritzingというアプリで作ってみました。ライブラリの関係上、実物と見た目が少し違うものがありますが、どうか大目に見てください(笑)。

カメラモジュールはUART、microSDスロットはSPIでの通信なので、それぞれ対応したピンに接続します。
また、LiPoバッテリー電圧が3.7Vなのに対し、カメラモジュールは5V駆動ですのでDCDCコンバータのモジュールで昇圧します。ただ信号線(Tx,Rx)は3.3V入出力ということなので、CDP-ESP8266とそのまま接続できます。
LiPoバッテリーについては、容量が大きいとその分大きく重くなり、パラシュートの落下速度に影響してしまうため、今回は250mAh程度の小さいものを使用しました。

実際に配線するとこのようになります。
IMG_2598

ソースコード

まず開発環境ですが、今回はArduinoIDEを拡張して使いました。
拡張の手順はこちらを参考にしています。

それぞれのモジュールを動かすためのコードは、ネット上に公開してくれている方がいるのでそちら参考にさせていただきました。

また、カメラのシャッターボタンとしてはiOSCというiPhoneアプリを使用しました。
アプリ内に配置されたボタンを押すことで、ボタンに設定したデータをUDPパケットとして送信できます。そのデータをESP8266が受信すると、撮影の処理が走るという仕組みです。
IMG_2634
▲iOSCの操作画面
 

参考にしたサイト

完成したソースコードはこちらです。
https://github.com/MasatoOshikiri/Cerevo_techblog_Sun
 

メカ設計

筐体について

ここからはスンとコンビを組んでるINDが解説していきます。
スンとは一緒に仕事したことないけど仲良しです。

今回のメカデザインで気を使ったことは、以下の2つです。

  • 重心が下に来るようにすること
  • 落下時に回転しないようにすること

設計にあたり、まず重心が下に来るように部品を配置するために、各々の重さを測ります。
測ってみると重そうに思えたバッテリーが意外にも軽かったので、下図のような構成にしました。基板間は厚めの1mm両面テープで固定します。
microSDと電源スイッチのみ、筐体の外側から使用できるようにしておきます。
Print
落下時に回転しないようにするために十字のフィンの構造にしました。

普段、部品の配置の際はサプライヤーや電気設計エンジニアから部品の3Dデータをもらって設計を進めますが、今回はそのようなものはないというか時間がないので、ノギスで部品を計測しながら設計進めました。ですので攻めすぎない設計にしています。
モデリングはfusion360を使用しました。

レンダリングをするとこんな感じです。
Print
 

3Dプリンターで出力する

社内にある3Dプリンターを使用しました。
構造を簡易的に検討する際にはとても便利です。
Print

実際に撮ってみる

上記、スン作の回路・ソースコードでなんとか動作したので、さっそくIND作筐体に組み込んで、青空の下、撮影を行ってみることにしました。


カメラを投げるのがすっかりプロ級になったIND氏。このパラシュートカメラが降りてきたタイミングでシャッターを切ります。

するとどうでしょう……

★PIC04
アホ面下げたおっさん2人の、上アングルからの写真を撮ることが出来ました。
気を付けなければならないのは、撮影時の風と光です。風が強く吹いているときに投げると簡単にパラシュートが飛ばされますし、影になっている場所や日暮れ時に撮影すると画像が暗くなりすぎてしまいますので気をつけましょう。
暗さについてはカメラの性能によるものでもあると思うので、もっと良いカメラを使用すればその点は解決できるかもしれませんので、カメラの選定時によく検討してください。

パラシュートカメラを使いこなすことができれば、あなたのSNSはさらに彩り豊かで充実したものとなり、沢山の「いいね」で満たされることになるでしょう……!
パラシュートカメラ、皆さんもいかがでしょうか?

以上、アドベントカレンダー17日目でした。

 

「祝」

撮影成功
★PIC00_1_2

[18日目] ぷらっちっくのかんたんなお話。身近なものでバキューム成形

$
0
0

去年につづいて今年も性懲りもなくアドベントカレンダーに参加します、デザインエンジニアのしんじろです。最近だとMKZ4のステアリング機構の設計を担当しました。

今回は多くの製品に使用されているプラッチック(プラスチック)についてちょっとだけお話したいと思います。

プラスチックとはなんなのか

工業製品で使用されているプラスチックですが、プラスチックという単一種類の材料を指しているわけではなく、ものすごく多種多様なのはご存知でしょうか。
プラスチックというのは自動でポコポコできるイメージ(確かに量産が始まるとポコポコできますが……)ですが、割りと職人さんの感と経験とか生産地の季節気候なんかが影響する生物(なまもの)みたいなものだったりします。

しかも、普段プラスチックに触れているエンジニアの方々もすべての素材を使用したことがあるような方はほとんどいないでしょうし、完全に特性を理解している人も稀でしょう。
んで、駆け出しの工業デザイナーさんやスタートアップのハードウェア起業家さんがかっこいいアップル等の商品力を目指し、かっこいいデザインを求めて無茶な形状にしてしまい、生産前になってトラブってしまうケースが多々あります。

そう、かっこいい商品作りたい、私もそうです。気持ちはわかります、えぇ、わかりますとも。
が、しかし、プラスチックは万能な素材ではなく、特性もあれば欠点もあります。不向きな形状やデザインもわりと多く存在します。

一見なんでも自由な形状が作れます。ですが、複雑化すればするほど、その分大幅にコストがあがります。
大手企業の場合は大量にを作ることで、その分コストをかけてそれらを解決してる場合も少なくないようです。

とはいえハードウェア・スタートアップな仲間を始め個人での製作にはそんなコストはかけられません。
そんなわけで、プラスチックを製品に使用する上で、頭の片隅に入れておいたほうがいいポイントが6つあります。

設計をプラスチックで考えるときのポイント

1・色選びは慎重に

製品の色に真っ白とか真っ黒を選択するのは避けましょう。きれいなその通りの色を出すのは結構なコストが発生します。
そのほかにも車などで汚れが目立ちやすい色はハードルが高いと考えてください。また発色のいい色は退色の問題も含んでいます。極力、色に多少のバラツキがでてもわかりづらい色を選択するのは重要です。

2・シンプルな形状にご注意

垂直とか水平、直交とか狭い面積だったら成功率は上がりますが、面積が広ければ広いほど長ければ長いほど難易度が上がります。
プラスチックは成形時又は整形後に意外と変形します。

3・表面仕上げでの冒険は……

テッカテカの高光沢仕上げや、規則性のあるテクスチャ(これが色々あって目移りするほど)はこだわりたくなるのもうなづけます。
ただ、板キレの状態や単純な円筒形状でもない限りトラブルが起きる可能性は結構高いと考えてください。

4・細い、鋭い形状は結局危ない

鋭利な角(シャープエッジ)はかっこいいけど、ちょっとぶつけたら割れるとか、触れたら怪我をする懸念があります。また成形時にトラブルが起きる可能性も高いので、避けた方が無難でしょう。

5・複雑な嵌合は避けよう

「バンダイのプラモデルとかレゴブロックはきれいに各パーツ同士がはまるじゃん」とおもいますよね。えぇえぇそうですとも、それが製品の生命線ですし、製作者の技術(共に各国内生産)は世界でも屈指です。
そしてそれらの生産数量はとてつもない量なので、ある程度コストをかけることができます。少数ロットでコストをおさえて……という場合にはもちろん不向きです。

6・基本の製造行程は製氷トレイをイメージする

製氷トレイで氷を作ったことはあるでしょうか? 氷ができたらトレイひっくりかえして氷がバラバラ出します。プラスチック成形も基本的にはあのような抜き形状だと考えてください。取り出しはピンで押出したり、型を割ったりと様々です。このような型から抜く際のハードルが上がる=複雑な形であると、さらにコストがかかったり、問題が起きやすくなります。

これらを加味していくとな~んも好きなことできないじゃん……と思われがちですが、実際世に出ている製品見ても上記が当てはまらない場合もあります。それはエンジニアがうまく考えてやってたり、工場によって得意不得意あったりしますので、頑張って付き合ってくれる工場やエンジニア探してしっかり話をすることも大事です。
場合によっては「こうしたいんだけど、どうしたらいいかな?」って聞いてみると解決策を提示してくれたります。

 

身近なものでプラスチック成形にチャレンジしてみよう

ここまではプラスチックの大枠のお話でしたが、実際にプラスチック成形を自分でやってみたらより理解が深まるとおもいます。ということで身近なものでプラスチック成形にチャレンジしてみましょう。

DIYでできるプラスチック成形といえば、カヌーやヘルメット等に使用されるFRPと商品パッケージ等に使用されるバキューム成形がよくあります。今回ホームセンターや100円ショップのものを集めてできるバキューム成形にチャレンジしてみたいと思います。

必要なもの

まずは資材一覧です。

①箱:
A4くらいの大きさと、掃除機のノズル(直径4cm位)が刺さっても余裕がある深さのトレイ状の箱。
今回はホワイトウッド1×6材3フィート材をカットして外枠を作り、5mmのベニヤを底面に貼り掃除機ノズルサイズの穴を開けました。

CA3I0342

バタバタしながら作ったので作り荒いけど大丈夫w


 

②枠:
成形の材料を貼り付けて固定する枠が必要です、100円ショップにある額縁がそのまま使えて簡単です。

CA3I0330


 

③タッカー:
枠に材料を打ち付けて固定するのに使用します。取り外しに手間がかかるので、もっと楽にって人は両面テープでもいいかもしれません。

CA3I0364

タッカー


 

④掃除機:
バキュームするのに掃除機が必要です、家庭用で十分です。

CA3I0332

小型掃除機


 

⑤カセットコンロ:
直火が怖い方は電気コンロでもいいですが、IHでは熱が空気中に出ないので材料が加熱できませんのでコイルの物をチョイスしましょう。

CA3I0333

自宅にあったカセットガスコンロ


 

⑥原型:
これは成形する形状の元になる物です。プラスチック成形というと金型等金属型を思い出しますが、今回はある程度の硬さがあればなんとかなります。今回はコペンのミニ四駆を使うことにしました。フロントガラスがボディと同色で埋まってるのが気に入らないので、これを機にフロントガラスのパーツを作ってみます。

CA3I0323

ミニ四駆コペンのボディです。


 

⑦成形台(パンチングメタル等):
箱上面に蓋をするように設置します。ピッチで穴を開けておりここから吸気されていきます。
今回はピッタリはまるようにレーザーカッターで専用品作っちゃいました。

CA3I0327

成形台


 

⑧:両面テープ、ガムテープ等:
各所接着、固定に使用します。

CA3I0325

CA3I0325


 

⑨成形材料:
今回はPET材の0.5mmを使用しました。ただ、0.5mmってDIYバキュームにはちょっと厚めなようで、もう少し薄いものを選んでいただくとよさそうです。
※ちなみにポリスチレン板は熱を当てると縮んでしまうので使えません。(ごめんなさい、材料の写真撮るの忘れました)

自宅バキューム成形のやり方

これで道具と材料の用意はできたので、いよいよ成形してみましょう。

作業の順番としては、加熱装置ON→材料加熱→材料が柔らかくなったら掃除機スイッチON→材料枠押し付け→各所スイッチOFF、となります。
動画では端折ってますが、1分位は加熱してます、火に近づけすぎると白化したり穴が空いてしまうので注意してください。

バキューム成形の手順

ステップ1
箱の開口部にノズルを固定する、隙間があるとそこから空気が抜けちゃいますので、しっかり穴を塞ぎましょう。

CA3I0344

CA3I0344

ステップ2
箱上部口にパンチングボードを両面テープで取り付けます、こちらも隙間のないように。

CA3I0345

CA3I0345

ステップ3
ノズルに掃除機を取り付けて試運転、パンチングボードの穴からしっかり空気が吸引されているかチェックしましょう。

ステップ4
原型そのままでもできなくはないですが、あとの取り外しが大変になりそうな形状の場合は粘土等で穴を塞いだりしましょう。

CA3I0340

今回は粘土でフェンダーを塞ぎました。

ステップ5
材料を縁にタッカーで打ち付け、しっかり固定します。

CA3I0353

CA3I0353

ステップ6
最後の仕上げです。今回は必要な部分がフロントガラス部だけなので、ここを後ほど切り取って完成です。

CA3I0355

CA3I0355

なんだかお遊び程度の成形のように思えますが、商品パッケージに使用されるブリスターパックなんてのはこれとほぼ同じ原理で成形されています。つまりパッケージ試作なんかはこんな方法でもできるってことですね。
自宅でかんたんにできますので、みなさんもチャレンジしてみてください。

ではまた~

[19日目] 徳で人生を豊かに。ボードゲーム「枯山水」自動得点計算で、めざせ快適徳ライフ!

$
0
0

こんにちは!組込みソフトウェアエンジニアの村田です。今年入社したばかりなのでまだ「これやってます!」みたいなことは言えないのですが、それでも強く生きています。さてTech Blogということで技術情報について何にしようか悩んでたのですが、最近の流行りに乗って機械学習を簡単にやってみるというテーマにしました。キーワードは「枯山水」と「TensorFlow」です。

枯山水とTensorFlowの関係

まずはキーワードである「枯山水」と「TensorFlow」について紹介しましょう。

枯山水のルール

図1. 枯山水(ボードゲーム)のルール

「枯山水」とは”水のない庭のことで、池や遣水などの水を用いずに石や砂などにより山水の風景を表現する庭園様式”(Wikipediaより)のことです。ヘッダーの画像は「京都フリー写真素材」の素材を使わせてもらっています。そして、この枯山水を自分で作るボードゲームがあるのです。ルールは簡単!「砂タイル」と「石」をおいて図1右側にあるような美しい庭を作ります。タイル同士のつながりや石の配置によって得点を計算するのですがこれが手順が多くてめんどくさい。以下に点数計算の手順を列挙します。

 

  1. 砂の基礎点
  2. 苔の基礎点
  3. 対称性ボーナス
  4. 渦ボーナス
  5. 砂紋の評価
  6. 石の基礎点
  7. 石組みの評価
  8. 名庭園

めんどくさくなったら自動化するのがプログラマですよね。というわけで、図1の右側にあるようTensorFlow_logoな庭園画像を画像処理して点数を計算します。ここで登場するのが「TensorFlow」なわけです。これはGoogleが開発している機械学習用のライブラリで、誰でも使うことができます。機械学習とは機械が学習をしてそれをもとになにかをするというものですが、最近では囲碁とか将棋のAIで使われていることがニュースでやっていたりしますよね。あれです。TensorFlowについて詳しく知りたい方はここをご覧ください。

Let’s TensorFlow!

学習モデル

では、さっそくTensorFlowをつかって機械学習していきましょう。TensorFlowを使うにはどういった画像を入力して何を出力してもらうかを決めなければいけません。枯山水の得点計算の方法には以下の2つの手法が考えられます。

<手法1> 入力:庭園画像→出力:点数

図2. 手法1の入力と出力の関係

図2. 手法1の入力と出力の関係

図2を御覧ください。左の??点となっている画像がこれから得点計算をさせたい画像になります。真ん中は入力と似たような画像にラベルと呼ばれるものをセットにしてニューラルネットワークに学習させています。学習データをもとにこの画像が何点っぽいのかという出力が出てきます。

この手法では画像の前処理も後処理も必要なく、ニューラルネットワークの処理のみで構成できるのがいいところです。この場合、学習には完成形の庭の写真とそれに対応する点数をラベルとして用います。入力には画像全体を使うことになるので画素数の設定によっては処理が非常に遅くなってしまうという問題がある一方、枯山水においては取りうる点数が0~100点(実際に取ることになる点数の範囲はもっと狭い)だけなので出力が最大で101個だけで済みます。

この学習方法には一つ問題があります。学習データの用意が非常に手間なのです。この学習に一つの点数あたり100枚ぐらいとりあえず用意すると1万枚のデータが必要になります。枯山水で遊び、ゲームが終わるたびに写真を取って点数ラベルを付ける作業によって4枚の学習セットが得られ、1ゲームあたりにかかる時間は約1時間で、それぞれのゲームで最大4枚の庭が完成します。データ数が10000個なので、2500ゲーム。つまり2500時間。ぶっ通しでやると不眠不休で約104日間枯山水をやらなければいけないのです。

<手法2>入力:タイル画像→出力:タイルの種類

図3. 手法2の入力と出力の関係

図3. 手法2の入力と出力の関係

図3は手法2のデータの流れになります。今度はニューラルネットワークには点数を出すのではなく、タイルの順序をだしてもらおうという手法です。まず、庭園画像を左上から右下へむかって番号をつけ、それぞれのタイルの画像を切り出します。この切り出した画像をおなじようにタイルのみの画像で学習したニューラルネットワークに突っ込んで庭園の何番目のタイルはIDいくつですという結果を出力してもらいます。そしてこの結果をもとに得点計算のプログラムを走らせて結果を得られるのです。

この構成ではまず先程書いたとおり、タイルの識別部分以外をニューラルネットワークとは別に作るということが手法1との違いになります。タイル1枚あたりの画素数は庭園全体に比べて小さくて済むので入力が小さくなり学習が早くできるという利点があります。

学習データはどれくらい集められるのでしょうか。まずはタイルが22種類あります。さらに石が25種類、向きが2種類で合計で1100種類のラベルが存在することになります。1種類の画像を100枚収集するのに10分かかるとすると11000分(約18時間)でデータが集められます。すごく早い!

どちらのモデルがニューラルネットワークとして適切かというと一番目のほうがニューラルネットワークだけで完結するので適切だと僕は思います。しかし、個人の範囲では少々時間がかかりすぎてしまうので今回は二番目の手法でやってみたいと思います。

学習データの集め方

学習データはひたすらタイルの写真を撮り続けました。データを加工しやすいように背景に単色の画用紙を用いるといいです。この次に何をやればいいのかわからない人は「opencv hsv 抽出」と検索してみるとすべてがわかります。

プログラム

ではいよいよTensorFlowです。TensorFlowの公式ホームページにはチュートリアルがあり初心者でもわかるように(わかるとは言っていない)サンプルプログラムといっしょに説明がされています。機械学習ではMNISTとよばれる手書きの0~9の数値が書かれた画像を識別する、プログラムで言うHello World的なものがあります。TensorFlowでもこれのサンプルプログラムをもとに使い方をわかりやすく(わかるとは言っていない)説明してくれているのです。このプログラムをMNIST以外の画像でも使えるようにしました。

https://bitbucket.org/muratatetsuya/kantan_tensorflow

参考にしたサイト

評価

最後に重要なのが作ったプログラムの評価です。表に結果をまとめました。

画像サイズ[px] 学習時正答率[%] 庭園画像正答数[枚] 学習時間[s]
60 x 70 97.6 7 9.32
120 x 140 97.3 9 22.6
240 x 280 98.4 10 90.5
480 x 560 98.4 6 338

まず学習時正答率とは学習データと同じ手法で作られた画像で学習時に使われていない画像で学習した後のニューラルネットワークによりどのタイルであるかを推定した結果になります。画像サイズに関係なく100%に近い正答率が出ています。一方庭園画像正答率というのは完成した庭園画像から15枚のタイル画像を切り出しリサイズしたものを推定したときの正答数になります。いずれも正答率が7割に満たない結果となりました。画像サイズが大きければ大きいほど判断材料が上がり精度が良くなるのかと考えていたのですが、このデータをみるとちょうどいい画像サイズがどこかにあるような感じがします。

では、学習時と使用時で正答率が変化してしまったのはなぜでしょう。一つの原因としては学習用のデータと庭園の画像から切り出されたタイル画像が違うことが考えられます。図3は今回間違いが多かった2つの画像の学習時と庭園の画像を並べたものになります。2つの画像の大きさは一緒なのですが、明るさが違います。これくらいの違いは見分けてもらえないと自動化ができないのですが、このくらいの違いを見分けられるようになるためには学習時の画像にさまざまな状況でのデータが必要となりそうです。

図3. 画像の違い

図3. 画像の違い


今回はTensorFlowを使ったニューラルネットワークのとても簡単なモデルを用いて評価したのでこのような悲惨な結果となってしまいましたが、画像を前処理したり、ニューラルネットワークの構成を変えたりすることでまた違った結果が得られると思います。快適徳ライフへの道はまだまだ長そうです……とりあえず、流行りである機械学習をやったことがあるという事実が大事なのでここらへんにしておきましょう。

最後になりますが、枯山水はとてもおもしろいボードゲームですし、徳が積めるので日頃、徳が足りないなーという方はぜひやってみてください。

それではー。

[20日目] 基板を起こしてモータを動かそう

$
0
0

男の子ならいくつになっても動くオモチャって楽しいですよね。エンジンやモータが好物です。電気エンジニアのべーたです。

今回は簡単にモータを回して遊ぶ方法をご紹介します。
趣味で工作をされる方にはArduinoやmbedで動かしている人が多いので、それらとは違うアプローチで動かしてみます。
 

サーボモータを動かす

ラジコンサーボを動かしてみましょう。ラジコンや工作をする方にはおなじみのアクチュエータですね。こんなやつです。

DSC_0677

MG-90S (Tower Pro 社製)

制御回路やモータドライバ、ギアやポジションセンサがパッケージングされている便利なモータです。

電源と、たった1本の信号線を繋ぐだけで動作させられるので簡単に扱うことができます。サーボモータは目標角度の指令を入力すると出力軸が目標角度まで回転します。ミニ四駆に入っているようなブラシモータとは違って何回転も回すことはできませんが、ある角度の範囲内であれば大きな力で指令の向きまで出力軸の向きを変えてくれます。

どんな信号が必要か

一般的な小型のサーボでは電源電圧に4.8から6Vを与えます。位置指令はパルスの長さで与えます。このとき、パルスの長さが1.5ms(ミリ秒)で中央となり、そこから±0.5ms程度でそれぞれ両端まで動くサーボが多いようです。これについては様々な方が解説してくれているのでそちらへ譲ります(「サーボ 動かし方」などでググって下さい)。

ところで、サーボへ入力するパルスの電圧振幅はどれくらいが良いのでしょうか。一般的には、LレベルはGNDでHレベルはサーボに与えている電源電圧でしょう。

では、ちょっと真面目に考えてみます。サーボモータのトルクを目いっぱい使いたい時には6Vの電源を用意するでしょう。しかし6Vの信号を出力できるマイコンはそうそう無いはずです。逆にマイコンが5Vや3.3Vで動作している場合はサーボの電源も合わせて5Vや3.3Vを供給しなければならないでしょうか?

私が実際にサーボモータに6Vを供給し、マイコンから3.3Vのパルスをサーボに与えてみたところ、正常に動作することを確認しました。手元で1台動いたからと言っても100台で正しく動くでしょうか?1000台では……?設計者がもしもこのままサーボを量産で使ったとしたら歩留まりが気になって眠れなくなってしまいます。実際にはどれくらいの電圧の信号が許容されるのでしょうか?エビデンスを残しましょう。

その答えはサーボモータに内蔵されている制御回路を司るICのデータシートにありました。電気エンジニアにとっては非常にメジャーなICメーカに新日本無線という会社があります。このメーカがサーボに内蔵されている制御用ICを製造しているようです(互換品をルネサスや中国メーカも製造しています。電気的仕様もほぼ同じようです)。

では、NJM2611のデータシートを見てみましょう。注目すべきは「電気的特性」の表です。

電気的特性

NJM2611データシートより

「最小パルス電圧」という項目がありました。所謂「Hレベルの入力電圧VIH」と同様のパラメータでしょう。これによると「最小1.85V」とあります。言い換えると、Hレベルが1.85V以上のパルスを与えれば良いということになります。

これで3.3Vや5V振幅のパルスで問題ないというエビデンスが得られました。すっきりしましたね。(どうやら他メーカのサーボコントローラICも同様の入力特性であり、おおよそTTLレベルと考えて良さそうです)
 

マイコンを動かそう

さて、どのような信号を用意すれば良いのかがわかったので実際に信号を作っていきましょう。マイコンからはパルス幅が最小1ms, 最大2msのワンショットパルスを出力することにします。それをタイマ割り込みで20ms程度毎に出力すれば良いでしょう。こういう場合にトラディショナルなマイコンであれば、

タイマのレジスタを探す → ワンショット動作&ピン出力に設定 → コンペア値をセット

というような手順を踏むかと思います。最近の高級な開発環境であればタイマ周りの設定をするAPIが提供されていて、それを叩く方が多いでしょうか。そこで、今回はモータを回すのが目的なので、面倒な設定を考えずに済むPSoC5LPを使ってみます。PSoC5LPとは、ARM Cortex-M3コアとプログラマブルロジックを搭載したマイコンです。このプログラマブルロジックを使うにはGUIで線を繋いでいくだけできます。ペリフェラルを自由に構成することができるため、PWMをたくさん欲しい時に重宝します。他にどのような活用方法があるのかは拙著のプレゼン資料をご覧いただくか、ちょうど PSoC Advent Calendar 2016 が開催されています。こちらを眺めてみると良いでしょう。私が初めてPSoC5を使った時はマイコンのアーキテクチャを意識せずに扱えるのがとても新鮮だったことを覚えています。

今回はPSoC Creator にて提供されているPWMコンポーネントを使います。ツリーからPWMと出力ピン、クロックを持ってきてこのように繋ぎました。リセットを操作するためにControlRegを接続しました。

コンポーネントの配置と配線

コンポーネントの配置と配線

パルス幅の分解能を10us単位にすると扱いやすそうだったのでクロック入力は100kHzとしました。8bit幅なので0.01msから2.55msまでのパルスを生成できます。続いてPWMコンポーネントをダブルクリックして表示されるダイアログを設定します。

PWMコンポーネントの設定

PWM

PWMコンポーネントの設定

こんな感じにしてみました。

ポイントは Run Mode を “One Shot with Single Trigger” にするところでしょうか。デフォルトの “Continuous” のままでは間髪入れずにパルスが出続けてしまいます。ワンショット動作であれば、Trigger後に1つしかパルスが出ないので、トリガをソフトウェアから適切なタイミングで与えるようにします。
 

基板を作る

サーボを動かせそうな目処が立ったので、せっかくなので基板を起こしてみます。そのほうがたくさんのサーボを接続するのが楽です。

最近は無料でもそれなりの機能をもっていて、回路図から基板ガーバ作成までできるソフトウェアが増えてきました。CircuitMaker(オススメ)KiCAD(日本語文献が豊富)DesignsparkPCBなどが流行っているようです。更に、格安で基板を作れるサービスも増えてきました。スイッチサイエンスPCB(日本語で利用可)やSeeedStudioのFusionPCB(オプション豊富で安い)、ElecrowのPCB Prototyping service(基板だけでなくステンシルも安い)などが非常に安価に利用可能です。5cm角の両面基板なら10枚で10ドル程度から製造してくれます。ユニバーサル基板と変わらない値段ですね。

では、まずは好きなCADを使って回路図を引きます。PSoCはIOピンを非常に自由に割当可能なのでざっくり適当に引きます。

回路図

これを

ここから基板を引きます。モータ用電源はマイコンとは分離してアートワークするのがポイントです。

基板

こうして

こうしてできたデータを今回はElecrowで製造してみました。基板が9.5ドルと送料がOCSで13.23ドルでした。

こうじゃ

こうじゃ

部品をはんだ付けして完成です。

要求電流の見当がつかない上に、電流をたくさん流せるような電源コネクタを用意するのが面倒だったので、横着して圧着端子直付けにしてしまいました。良い子のエンジニアは真似しないでくださいね。これは後々サーボの評価とキャリブレーションに使う予定です。
 

ソースコード

PWMやControlRegはAPIを使って操作します。APIのリファレンスはデータシートを読んでいただくとして、叩く必要のあるAPIは以下で済みそうです。

void PWM_Start(void)

void PWM_WriteCompare(uint8/16 compare)

void ControlReg_Write (uint8 control)

これらを、タイミングよく操作するために一定間隔で割り込みを発生させます。プログラマブルロジックをなるべく消費したくないので、ARM系CPUが必ず持っているSystickと呼ばれるカウンタを使ってみます。設定は以下です。

CyIntSetSysVector(15,<割り込みルーチンへのポインタ>);

SysTick_Config( (<バスクロックの周波数>) / <割り込み周波数>);

これらを使ってサイン波のテーブルを順次読み出すようにしてみました(ソースはこちら)。

動作確認ができました。この基板はサーボをたくさん接続できるようにしたので、せっかくなので繋いでみます。Creator上でコンポーネントを並べます。コピペを多用します。

PWMコンポーネント1つあたり2本のPWMを出せます

PWMコンポーネント1つあたり2本のPWMを出せます

コードも同様にコピペで増やします(ソースはこちら)。

それぞれのサーボが独立して動いているのがおわかりいただけるでしょうか。ハードウェアタイマを使って16本のPWMを出力しています。他のマイコンではなかなかできない芸当ですよね。

この状態でもまだまだ半分以上のリソースが余っているので50本以上のPWMを出力することができそうです。サーボに限らず一般的なDCモータやブラシレスモータも楽に駆動できそうです。
 

たくさんのモータを回しています

という事で、絶賛開発中のタチコマには20を超えるモータが搭載されています。現在は様々なアクションを楽しんでいただけるよう調整を行っています。もちろん、機能はモータだけではないですよ。これからの発表を是非楽しみにしていてください。

ぼくタチコマ

ぼくタチコマ

※写真は開発中のものです。
 

Reference:

Cerevo Blog: 「攻殻機動隊」に登場するタチコマを現実世界に再現するプロジェクトを開始
Engadget Japanese: Cerevo、1/8スケールの『タチコマ』をニコニコ超会議で披露。クラウド経由で学習内容の並列化機能も搭載予定?


[21日目] LiveShell Xに装着できる「角度調整足 兼 microSDカードカバー」の作り方

$
0
0

はじめまして。デザインエンジニアの横田です。最近は、ライブ配信機器「LiveShell X」のデザインとメカを担当しました。そこで、せっかくなので今回のアドベントブログのテーマもLiveShell Xに関係するものにしてみました。

LiveShell Xに見られるネジ穴たち

LiveShell Xの筐体をよく見ると、今までのLiveShellシリーズの筐体と比べるとネジ穴の数が多い事がわかるかと思います。

これは、いままでのシリーズを使われているお客様の貴重なご意見も参考に、リグ、ラックをはじめ、いろいろな場所に取り付けられること等を想定した為です。最終的には「右側面、左側面にそれぞれM4ネジ穴を2つ(合計4つ)」「底面と側面に三脚用のネジ穴を1箇所ずつ(合計2つ)」を搭載することになりました。

そんなネジ穴たちですが、いろんな箇所への取り付けに使えるのはもちろんの事、工夫次第で色々使えそうな気がしてきますよね。そこで、今回は固定以外の使い方の一例として、録画中にうっかりSDカードがはずれないような「角度調整足 兼 microSDカードカバー」になるような部品をレーザーカッターで作ってみました。作り方を簡単に紹介してみたいと思います。

1. 外形図のpdfをダウンロード

LiveShell X公式サイトのSPECのページから、外形図のpdfをダウンロードすることができます。まずはそちらをダウンロードしましょう。

2. 部品のデータを書く

ダウンロードした外形図のpdfをイラストレーターで開き、ネジ穴の位置に合わせ「角度調整足 兼 microSDカードカバー」のデータを作成します。


↑外形図から側面のみを抜き出し、それに合わせて部品データを作成します。


↑レーザーカッターで切り出すために、部品だけのデータにしておきます。

3. レーザーカッターで切り出し

データができたら、アクリル板(厚さ2mm)をレーザーカッターで切り出します。


↑レーザーカッターで切り出し中。


↑切り出された部品。

4. 組み立て

完成した部品を、M4のローレット飾りねじで筐体に取り付けます。

5. 完成

完成状態は下記写真のとおりです。


↑アクリル板部品でmicroSDスロット部分を覆い、直接microSDカードを触れないようにしています。microSDカードが差さっているかどうかが確認出来るように、アクリル板は透明を使用しました。


↑同じ部品を反対側側面にも装着すると、角度調整足にもなります。通常状態から角度調整足状態にするには、ローレットねじを緩め部品を回転させ、くぼみに合わせてネジをとめればOKです。


↑卓上に置いた時に角度がつけられる。

最後に

今回は、LiveShell XのM4ねじ穴の、固定以外の使い方の参考として「角度調整足 兼 microSDカードカバー」の作り方を書いてみました。あくまで一例ですが、参考になれば幸いです。

[22日目] 出張先は展示会ではなく、城塞都市での大規模コスプレイベントだった

$
0
0

またひとつ、素敵な物語が最終回を迎えてしまいました、今一番行きたい場所はバルセロナ大聖堂、谷口です。
普段は調達業務を担当していますが、最近は、海外出張に行かせてもらう機会が増えてきました。先月頭イタリアで行われたイベントのレポートを書いてみたいと思います。

 

イタリアと言えば、ローマ、ミラノ、フィレンツェなど、美味しい食事に綺麗な風景が楽しめ、計画を練ってじっくり巡るもよし、ぶらり街歩きするもよしということで、旅行経験ある方も多いのかなと思います。
けれど、そのなかのルッカという城塞都市で行われる「Lucca comics & Games」というイベントをご存知でしょうか。
とりあえず城塞都市ってこの響き、やばいですよねわくわくしますよね。
ルッカはフィレンツェから北西に車で約1時間、電車でも1.5時間程の距離にある古き良き街並みを残した、普段はとても穏やかな田舎町です。ただし年に1度、このイベントの期間中は35万人(昨年期間合計)もの人が集まり、大通りはある時期の国際展示場並みに混雑します。
今回わたしはそのイベントのJAPAN TOWNと呼ばれるエリアで、ドミネーターの展示・販売をしてきました。日本のアニメグッズ企業さんや、和装小物や浅葱の羽織販売のお店などが集まるエリアです。

Lucca_03
茶色は建物、黄緑は芝生、黄色がブースの特設テントなイメージです。

ゲームやコミックや映画、ジャンルで大まかにエリアが分かれてはいますが、街中の広場や公園にテントを建てているので良くも悪くも点在しています。お目当てを巡りながらお腹が空いたらピザ食べて、ちょっと疲れたらジェラートで回復して、気ままに歩き回れる雰囲気、よかったです。

規模感で言えば世界最大級の集客数を誇る!割に、パリのJapan Expoや、欧米諸国でのコミコンに比べ、あまり日本では情報を見かけないように感じます。正直私も、今回の出張が決まるまでイベントの存在すら知りませんでした。
今回の日程は10/28~11/1の5日間、日ごとに入場券の購入が必要で、平日は€34~、日曜で一番賑わうだろう10/30は€80! にも関わらず、チケットはSold out。

お客さんの一人が、イタリアや近郊諸国ではとても有名なイベントで、この日の為にお金を貯めて年一の楽しみにして来るんだよと話してくれました。華やかなイメージと対照的に、失業率の話題がシビアなイタリアで、その規模を維持しているのは凄いなというか、多くの人に求められてる空間なんだろうなとも感じました。

改めてすごいなと思うのは、石畳に煉瓦の壁にゴシックな教会、中世を感じる街並みでした。雑多なくらいにジャンルが入り混じったコスプレでも、雰囲気があいまって全てにハクもたせてくれるのが、本当にすごい。

Lucca_01

アニメキャラも映画のヒロインも、リビングデッドな仮装も、カップルや友人同士やファミリーも。歩いてるだけ座ってるだけでも鮮やかで、単純に目が楽しかったです。

Lucca04
城壁といえばやっぱり思い出すのはこのアニメ、こう、なんというか、込み上げてくるものがあります……思わず右手胸にあてましたもん……、ショコラティエの前はズルかったなーーー

ある海賊一味が騒ぎながら通り抜けて行ったり、ある自宅警備員さんも海外派遣されていたり。ポーズをとってても自然な表情でも、どこでシャッターを押しても、無機質なものが写り込まないってことが、作品としての物語の背景にすらなってくれてるような存在感でした。

Lucca_02
青空の元、歴史的な建造物の乳白を背景に撮るもよし。並木がちょうど紅葉する時期、城壁の上の遊歩道で夕日をちょっと見下ろすアングルでコントラストつけて撮るもよし、異世界ファンタジーな格好もよし、中世スチームパンクな装いは馴染みすぎてとてもよし。
遊園地のハリボテではない普段は人が生活している空間なのに、こんなにも非日常な風景になるのが冷静になるととても不思議で、でも、半数と言ってもいい位沢山の人がコスプレしている事で説得力が出るのかなと思いました。

アニメ好きさんだけという訳ではなくハロウィンということも相まって、観光客やイタリアの人もお祭り気分で来るようです。おかげで、普段あまり見ていただく機会がなかなか少ない小学生や年配の方々にも触ってもらえました。ドミネーターは元々開発メンバーとして関わってきた製品でもあるので、「Figata!!」って驚く顔やリアクションと、笑顔を沢山見れて、好きや楽しいを共有できるの嬉しいなと素直に感じました。
また製品からアニメ原作に興味持ってくれた方も多かったので、これをきっかけに作品がまた盛り上がってくれるといいなと思いました。

現地では残念ながら写真をあまり撮れなかったので、絵日記風にしてみました。が!機会があったら、ぜひともカメラを持っておめかしして、不思議空間を楽しみに行ってみてください。

[23日目] メカ設計の経験がゼロでも筐体の製造原価を見積もる方法。プラスチック編

$
0
0

~スマホケースでメカ設計・原価計算の基礎をちょっとだけ学ぶ~

こんにちは。
株式会社Cerevoの柴田と申します。以前は某社炊飯器・掃除機の筐体・機構設計に携わっていました。
現在デザインエンジニアとしてスマート・ビンディング「XON SNOW-1」のメカ設計を担当したり、最近ではニッポン放送、グッドスマイルカンパニーとのコラボレーション企画、BLEラジオ「Hint」プロジェクトにて、プロダクトマネージャーを兼任しています。

プロダクトマネージャー(PM)として仕事する機会が増えてきて、仕様が固まる前に製品の見積もりを作ることが度々あります。仕様が固まる前なので、当然のことながらそれぞれの部品は設計前です。経験があれば、「これくらいの製品は、まあこんなもんだろう!」と決めることもできるかとおもいますが、最初の見積もりで製造原価を安くしてしまうと量産するときに製造原価を割ってしまい、利益が出ない製品となってしまうかもしれません。

PMとして、それは絶対に避けるべきであり、ある程度現実的で根拠のある製造原価を概算でもいいから、知る必要性があります。

なにもわからないと設計前の部品をどうやって見積って製造原価をイメージすればいいのか?と悩んでしまうでしょう。
今回は特にプラスチックのメカ部品を設計する前に、どうやって製造原価を見積っているか、スマホケースを例にお話ししたいと思います。メカ設計の経験がないけど、ハードウェアのPMやってみたい!という方は参考にしてみてください。

内容としては、樹脂を使ったメカ設計・原価計算の基礎的なことを掻い摘んで解説したもので、計算結果も概算となります。製造業で同業の人にとっては釈迦に説法となる面も多いですが、あしからず。

 

スマホケースでみる製造原価の見積もり方

①材料の選定、見積もりのための材料の価格決定

まず見積もりを考えるにあたり材料の選定をします。ここについてはズバリ、「黙ってABS」です。ABSとはアクリロニトリル-ブタジエン-スチレンという樹脂の頭文字をとって付けられた名前です。
世の中にあるプラスチック製品、特に身の回りの家電は、かなりこの樹脂が使われています。ちなみに、お掃除ロボット「ルンバ」にも使われています。Amazonの商品説明にも記載されています。
他にもPP(ポリプロピレン)とかPC(ポリカーボネート)とかあるのですが、それはまた別の機会に。

次に、材料の価格です。樹脂はペレットという顆粒の状態で購入するのですが、業者でもないのにわかるわけない……と投げ出してはいけません。
そんなときは、オフィス用品/現場用品のASKUL(アスクル)です。意外かもしれませんがアスクルで樹脂ペレットが売っています。

アスクルで「ABS ペレット」と検索すると実験用の樹脂ペレットがヒットします。製造現場で樹脂のペレットは25kgごと(=1袋)の単位で購入するのが一般的です。アスクルも25kgで購入することができます。
アスクルの価格を使うと1kgあたり約800円となります。正直この数字はちょっと高めです。実際は1kgあたり300~500円くらいですが、今回は800円で進めます。

②スマホケースの重さを求める

プラスチック部品の製造原価を知るために重さは一番重要です。すでに部品のデータが出来ていて3Dプリンターで出力しているのであれば、その重さを測定します。
デザインが出来ていてデータもあるけど3Dプリンターで出力していないという場合は、3D-CAD(モデリングソフト)を使って体積を求めましょう。色々なCADがありますが、測定ツールの中に体積を測定するコマンドがあって、何回かのクリックだけで、体積を測定することができます。体積がわかったらABSの密度を掛け算して、算出することができます。

今回はあくまでもCADを使わずに見積もります。

Photo_16-12-11-03-28-17.004

まず、スマホケースなのでスマホの大きさを測定します。写真のスマホはだいたい縦15cm、横7cmです。これに厚さを決めて体積を求め、密度を掛けて重さを計算します。(スマホの上下・両サイドを覆う箇所は、ややこしくなるため割愛します。)
厚さ、一体どれくらいにすればいいか悩んでしまうかもしれませんが、ここもノウハウ「とりあえず2mm」です。プラスチック部品はどれも1mmから3mmくらいの肉厚です。手近にプラスチック製のコップがあれば見てほしいです。なんとなく1~3mmくらいです。細かい話はあるのですが、それくらいの厚さじゃないと作れないと思っていいです。スマホケースに限らず、樹脂の肉厚でどうすればいいか決まっていないときは、なにも考えずに2mm(0.2cm)と仮定しましょう。

体積=縦 15cm x 横 7cm x 肉厚 0.2cm =21cm³
となります。

これに、密度を掛け算すれば重さがでます。ABSの密度をさっそくググって……もいいですが、覚えておいて損はない(はず?の)うんちくがあります。おおよそ「プラの密度は1(g/cm³)」です。
単位は[グラム パー 立方センチメートル]です。物性によって前後しますが、おおよそ1と考えていいです。プラスチックは1辺1cmの立方体だと約1gということになります。正確な数値は各材料メーカーによって異なりますので、ご確認ください。

重さ=21cm³ x 1 g/cm³ = 21g

よって、重さは21gとなります。

③1個あたりの作業時間と④作業者の人件費

製造原価を決める上で、重さに次いで重要なのが作業時間です。作業時間が長ければ長いほど製造原価が上昇してしまいます。
実際に工場に行ったこと無いし、プラスチック部品がどうやって作られているなんて……と嘆く前に「YouTubeで動画を検索」しましょう。”射出成形 動画”で検索してください。工場に行ったことが無くてもどんな感じか、なんとなくわかります。動画から作業時間を仮定します。注目してほしい動画は時間が短い4分未満の動画です。時間が長い動画は、射出成形(=プラスチック部品を作る工法の名前)の解説動画だったりするので、別途勉強したいときに観てください。
時間が短い動画で、淡々と射出成形の様子が撮影されているものがあるので、その動画の動作を注目してください。

工作機械の中にある金属の塊同士(=金型)が重なって数十秒止まった後に、金型が離れて中からプラスチック部品が出てきます。これが射出成形の動作であり、プラスチック部品が出来上がる1個あたりの作業時間です。
動画では、またすぐに同じものを量産し続けます。動画から1個あたりの作業時間を30秒と仮定します。

作業時間が決まったら、人件費です。YouTubeだとロボットアームが動いていたりしますが、今回はそこまで豪華な設備が無いことを仮定します。工作機械のオペレーターがいて、その人が金型からプラスチック部品を取り出す場合、時給を支払わなくてはいけません。
今回は時給1000円と決め打ち。1秒あたりの費用まで落とし込みます。

1時間あたり1,000円=1分あたり167円=1秒あたり2.8円

時給1,000円は1秒2.8円となります。

○製造原価算出

今までの数字を合算して製造原価を求めます。

①1gあたりのプラスチックの価格 1kgあたり800円。1gあたりだと0.8円
②スマホケースの重さ 21g
③作業時間 30秒
④人件費 1秒あたり2.8円

製造原価 = ①ABS 0.8円/g x ②重さ21g + ③作業時間 30秒 x ④人件費2.8円/秒
=100.2円

ざっくりですが、100.2円となります。この計算から、スマホケースの製造原価は100円くらいだとわかります。
また、① x ②を原価計算の用語で、直接材料費(略して直材費:Direct material cost)、③ x ④を直接労務費(直労費:direct labor cost)と呼んだりします。詳しくは原価計算の本で勉強してください。

今回の仮定はだいぶラフで、高めに算出されています。憶測ですが実際はもっと安いと思います。

◇主な製造原価の低減案

  • 安価な樹脂の選定:今回はアスクルで販売している実験用の樹脂で計算したため割高。
  • 軽量化:厚さを薄くすれば体積が減って安くなる。
  • 金型に同じ部品を複数配置し、複数取りにする。:2個取りにすれば1個を作る時間で2個作ることができる。
  • ロボットアームによる時短:人間よりも無駄な動きがない。作業効率アップ。
  • 人件費が安いところで製造:日本国内ではなく、アジア近隣諸国(中国など)で作る。

逆に、製造原価を上昇させる要素もあります。不良率(100個作った内、何個が不良か?)や工作機械のメンテナンスに使った油の費用(間接材料費)、管理費等などです。ただ、それを加味しても、この計算の数値から大きく外れることはないでしょう。ちなみに、私が持っているスマホケースはポリカーボネート製で14gでした。材質こそ違いますが、そんな感じでしょう。

○まとめ

・製造原価=1gあたりのプラスチックの価格 x 重さ(体積x密度)+作業時間(秒)+人件費

数式は自体は簡単なので、その数式のための仮定がどこまで現実的か、がポイントです。

  • 材料選定迷ったら「黙ってABS」で。
  • 詳細設計してなくても肉厚は「とりあえず2mm」にしよう。
  • 体積わかったら「プラの密度は1(g/cm³)」だから重さもわかる。

慣れてしまえば難しいことはありません。実際には、金型の取り数、成形機の型締力、部品点数や組立工賃など、様々な要素が追加されてメカ全体での製造原価が算出されます。
プラスチック部品の製造原価の算出について、全くピンとこないから不安だ……というときはちょっとでも参考にしていただけたらと思います。

自分があまり詳しくないことでプロジェクトがうまく進まないときは、特に腑に落ちないものです。でも、ちょっとでも知っていれば納得できることもあります。その知識やノウハウは、過去の経験や実績からくるものではなく、やる気を持って、逃げずに・真摯に物事を取り組む姿勢がきっかけとなって、体得できるのだなと、Cerevoで日々痛感しております。

ハードウェアのPMに興味はある、でも経験がないから……と尻込みしているなら、まずは弊社の採用面接を受けてみてはどうでしょうか?プロダクトマネージャー絶賛募集中です!!

 

[24日目] NAT Traversalって知ってますか

$
0
0

Cerevoアドベントカレンダー2016、最終日です。といっても、どうやら大トリは弊社代表が年末までに昨年のネタの更新版を出すようなので、私はトリらしい何かとかでもなく、テックブログらしく技術ネタを書きたいと思います。
まつけんです。CTOをしています。今日はハードはほぼ関係ない、ソフトというかUDP/IP、TCP/IPな世界の話です。IPレイヤーより上でのお話です。

まず、NATと言われて動作を想像できる方どれくらいいるでしょうか。今や、ルータという名でNATが動作する機器は各家庭にほぼ設置されているのではないかと思いますし、携帯向けネットワークも昨今はLarge Scale NATもしくはCarrier Grade NATの導入という形でちょっと話題になったようにNATが導入されています。そんな世界では、グローバルIPが直接振られるのではなく、ルータやキャリア側でローカルIPからグローバルIPへのアドレス変換が行われるのが一般的です。NATと言いますが、今挙げた例は、正確に言えば、IP masquarade(マスカレード)です。NATはNetwork address translationなのでアドレス変換をするというもう少し広い意味で、グローバルIPとローカルIPが1:1で変換されるようなケースも包含されますし、サブネットを分けたローカルネットワークでの1:1や1:Nでの変換などにも利用されることもあります。

今回は、最も一般的な多:1でローカルIPからグローバルIPへとソースアドレスを書き換えて通信を行う(グローバルIPアドレスを共有する典型例)、ほぼどんな環境でも導入されていると言っても過言でなくなった、いわゆるIPマスカレードされている環境でのP2Pでの通信を実現する、NAT Traversalのお話です。

NAT Traversalとは

まず、NAT Traversal、日本語で言うと、NAT越え(NAT超えかもしれません。ここでは越えで統一します。)はなぜ必要なのか。IPv4アドレスが世に溢れ、すべてのデバイスにグローバルIPが割り当てられている状態であればそもそもNAT越えは必要ないわけですが、現実にはIPv4アドレスは足りないし、ルータ下にいない直接グローバルIPをデバイスがもつというのはセキュリティ的にも推奨されない(デバイス自身がbindしているポートへの通信をローカルネットワーク内のパケットに限定でき、脅威となるデバイスやサーバが容易に直接のアクセスがしづらい)のが現実です。そんなNATがあふれる世界でもP2P通信をしたい、という需要を満たすためにNAT Traversalという技術(というか、手法でしょうか)が考えだされるわけです。これはもうかなり昔からあるもので、様々な資料がネット上にもありますが、一度、自分の整理のためにこの記事を書いてみている次第です。

ルータの下にいるデバイス同士が直接するのはなぜそんなに難しいのでしょうか。まず簡単な通信の流れを下記図を見ながら説明します。もっとも一般的な構成として、ルータ下のネットワークをローカルネットワーク、ルータの外に存在するネットワークをグローバルネットワークとして考えます。そのときに、ルータ下のデバイスがグローバルネットワークと通信とパケットをルータの外のネットワークにあるアドレスに送ります。そのローカルネットワークの内からNATを通して外へという形で出て行く分にはルータがアドレス変換をよしなに行います。これがIPマスカレードです。やることはそんなに難しくなく、TCPの場合、ソースになったIPアドレスとポート(つまり、デバイスのIPとポート)と、宛先になるIPアドレスとポート、ソースアドレス書換後のルータ自身のグローバルネットワーク側のアドレスとポートを、最初にデバイスからパケットが来た時に組み合わせで覚えます。その上で、ソースアドレスをNATが動作しているルータ自身のIPとポートに書き換え、宛先にパケットを投げる、宛先からパケットが返ってくれば覚えてるマップにしたがって、その返信パケットの宛先をローカルネットワークにいる通信元のデバイスに書き換えてパケットを送信します。こうすることで、デバイスはソースアドレス変換が行われたことを知ることなく、外のインターネットな世界と通信ができるわけです。

oneNAT
ここでNAT越えの話に戻ります。でも、宛先はあくまでグローバルIPでなければ(ルータを通してNATを通じて書き換えが行われなければ)、ルータは宛先を書き換える機能を発揮できません(通信双方のアドレスやポートを覚えて変換と転送ができません)。では、相手もNAT下にいる場合、そのローカルアドレスを指定するわけにもいきませんし(ローカルネットワークのアドレスなわけで別ネットワークにいるので届くわけはありません)、グローバルIPはルータがもっているわけなので、ルータ下に居るデバイスと通信するというのは極めて困難なわけです。

NATを越えてデバイス同士が直接通信するには

これの安直な解決方法のひとつがサーバーリレーです。要はデバイス同士が同じサーバに接続をして(この場合、サーバがグローバルIPを持っているのでどちらもルータ下のローカルネットワークから容易に接続ができる)その後の通信はサーバが介在して両者で通信を行います。ただ、この方式、TCPレベルで解決するには宛先を別途アプリレイヤーで指定する必要がありますし、なによりも、トラフィックがすべてサーバを経由するので、サーバの通信量が2倍、そして、サーバを経由するため経路としてはあきらかに冗長に長くなりレイテンシが悪化します。これは、P2Pでの典型的な例である、ビデオチャットやゲーム対戦の特性に対してあまりマッチしません。

ここまで前提を並べてきて、やっと本題にたどり着きました。それぞれのデバイスがルータの下にいたとしても直接パケットをどうにかして届かせたいという必要性が出てきます、それがNAT越えです。ここからはNAT越えを単純な手法から順に説明していきましょう。まずは極めて単純なUDP hole punchingです。これはあとから紹介しますが、特定の動作をするNATでしか通用しません。ここから、NATの種別ごとにどういう形で対応を増やしていくか、というのがこのNAT越えの議論のおもしろいところです。

fullconeNAT
UDP hole punchingは上記の図の通り、cone NATが対象である限り、NATのグローバル側のIPとポートさえわかれば、そして、それをサーバで観測すれば、その後はサーバからIPとポートをそれぞれが教えてもらい、そこに対して、UDPパケットを投げ込めば到達できるわけです。
ここで、唐突にでてきたcone NATを含め、NATの動作によって分類をまず行いましょう。
  • full cone NAT
  • address restricted cone NAT
  • port restricted cone NAT
  • sequential port smmetric NAT
  • random port symmetric NAT

というふうに考えると、NAT越えの方法と特性が分類されます。まずはconeとsymmetricの差を考えてみましょう。

cone NATはシンプルな動作です。ルータ下のデバイスがグローバルアドレスに対して通信を開始し、パケットを送信したとき、ルータはソースになるIPとポートを覚えるのみです。それにしたがって、ルータのグローバル側のIPとポートをマップします。つまり、グローバル側のIPとポートに対して、グローバル側にいるデバイスであれば誰でもパケットを送信し、それはルータ下のデバイスにパケットはアドレスを書き換え転送されます。したがって、下記のような流れを経れば、UDPによるP2P通信が可能になるわけです。

  • ローカルネットワークAに存在するデバイスをαとし、ローカルネットワークBにいるデバイスをβとします。αとβが互いにUDPパケットを直接送受信できるのが最終目標です。
  • αとβを仲介するサーバをSとします。まず、P2P通信を開始したいという意思をαとβで共有します。そして、通信を開始するぞとなるタイミングをSから受け取ります。
  • すると、αとβはまず、サーバSに対して、UDPパケットを送信します。すると、パケットはαとβそれぞれのNATされたグローバルのIPとポートを観測することができます(ソースアドレスはNATされたルータのものが見えます)
  • それをαの情報はβへ、βの情報はαへと、サーバから通知を行います。(たとえば、P2P通信開始処理の間は、サーバとの間にTCPがはられていてここでやりとりするとかです。)
  • αはβのルータのグローバルのIPとポートに対して、UDPパケットを投げます。βも同様です。
  • cone NATであるため、ソースアドレスやポートに制限はありませんから、それぞれのUDPパケットは無事、それぞれのデバイスに届くことになります。

さて、cone NATの場合、こういったサーバが介在してアドレスとポートを伝えるという処理はあるものの、まだまだ単純な処理で終わります。次はaddress restricted cone NATとport restricted cone NATを攻略していきましょう。

address restricted cone NAT, port restricted cone NATはそれぞれfull cone NATに比べて制限が増えます。マッピングするときに、ソースのIP、ポート以外に、宛先のアドレスを覚えるのがaddress restricted cone NAT、ポート番号までも覚えるのがport restricted cone NATです。それぞれ攻略をしていきましょう。

address restricted cone NATは割りと簡単です。要は送った宛先のIPからのパケットでないと受け取りません。でも、サーバに送ってしまえば宛先はサーバになるわけでサーバからのパケットしか受けないことになります。では、αからβに送ったパケットはどうしてもNATに阻まれるはずです。でも、ここでcone NATのもう一つの特徴が際立ってきます。
cone NATの定義のひとつに、NATの外側のポートはソースアドレスになるデバイスのポートに従います。すなわち、αがport 30000をbindしてパケットを送ったとしたら、基本的には、NATもport 30000を利用するのがcone NATです。ここからが実際のNAT越えの方法をまた流れに沿って説明しましょう。

α、βそれぞれがサーバに向かってUDPパケットを投げ、サーバはそのIPアドレスとポートを観測します。そして、それをαとβに伝える。
すると、βはαのIPアドレスとポートに対して、UDPパケットを投げます。ここで重要なのは、βはbindするポートをサーバにUDPパケットを送ったときと同じポートを使います。このとき、NATはfull cone NATであれば通りますが、address restricted portやport restricted portでは、サーバとIPアドレスもポートも違う訳ですから通りません。が、β側のNATにはαのIPアドレスとポートへのパケットが記録され、βのIPアドレスとポートは維持されるわけです。ここで、αがβのIPドレスとポートに対してパケットを投げたとします、そうすると、βはさきほどのパケットはNATに阻まれたとはいえ、NATのマッピングができあがっているため、αからのパケットはβに到達します。また、このパケットでも、αはサーバへのUDPパケットを送ったポートをbindしていればNATには同様のマッピングがβのIPアドレスとポートに対してできあがるわけです。これで、αとβはそれぞれのNATを越えて通信ができるようになりました。

ここまで、cone NATの場合のNAT越えを説明してきました。実はこれはすでによくある方式として、STUNという形で標準化されています。実際はユーザ認証なども含みますが、P2Pの経路開通を行う方式はまさにいままでの説明通りです。いくつかのアプリケーションではSTUNが実装されているので参考にしてみてください。

ここからが、難しく解決できない問題に対して考えて行く形になります。
Symmetric NATです。これはcone NATと違い、ポート番号が再利用されません。つまり、ソースとなるデバイスでポートを固定したとしても宛先によって、別ポートが割り当てられることになります。そのため、サーバで観測したとしても、そのポートを再利用する方法がないのです。

さて、この場合、どういった方法でSymmetric NATを攻略するかを考えます。Symmetricの何がツライかというと、NATの外側のポートを観測してもそれを利用できないことです。いや、それは本当でしょうか。観測できることではなく、NATでどのポートが利用されるかと言い換えられるわけで、つまるところ、NATのポートは当たるなら予測でも良いわけです。では、予測可能か、が重要になります。Symmetric NATと言われるのもを更に分類しましょう。といっても、NATの内(ソースとなるデバイスのポートは固定)から外への通信が起こった際に、ポートがシーケンシャルに変化するか、ランダムに変化するか、です。

つまるところ、方法としては、例えばこうです。ソースとなるデバイスからサーバに対して、複数のパケットを打ちます。その際、bindするポートを固定します。そして、サーバの受けるポートはパケット数分変化させます。ここでは3発のパケットをサーバに対して投げてみます。そして、サーバからポートを観測します。このとき、ポートがどう変化するかです。例えば、+1されていく、+2されていく、-3されていく、ランダムに変化する、様々なパターンが見えるはずです。ランダムに変化する場合を除いて、NATの特性を予測するわけです。+1される場合はどうするか、もう分かりますね。NAT下のデバイスが1つしかなく、ほかの通信がないと仮定すれば、αからβへの通信を同じポートをbindした上でパケットを投げます。サーバで観測されたポート番号+1されたβはパケットを投げ込みます。そうすることで、NATのグローバル側のポートは予測され、そこにパケットを投げ込めば、おそらくは疎通するはずです。

ここからが考えどころです。実際にはNAT下のデバイスは複数あって他のUDPパケットが送られてポート番号はずれるかもしれません。もしくは、同じbindしたポートから通信しても、宛先のアドレスが違えば外側のポートが変わるかもしれません。前者はリトライでカバーするか、複数のポートをつかってα、βから送ってどれかが疎通したらその後はそれを使うかなどいくつかの方法が考えられますね。宛先のアドレスが違えば届かないことを考えると、サーバも複数のIPアドレスを持ち、それぞれに対しておくったときのポート変化も観測する必要があります。このあたりから観測の方法がどんどんと複雑化していくため、これに対して、どう対処していくかがNAT越えの最大の難所です。いままで、cone NAT, SymmetricNATという類型で説明してきましたが、昨今、この類型に意味がないと言われる所以がこのあたりから始まります。(とはいえ、NAT Traversalという技術を理解するにはこの類型も私は有用だと思っています。)

とはいえ、越えられないひとつに、ランダムにポートが割り当てられるSymmetric NATは対処のしようがなさそうです。この場合のみサーバーリレーを行うというのが疎通する確率を100%にする一つの方法です。そうではなく、ランダムにポートを開けるNATに対するポート予測方法をなんらか確立できる手法もあるかもしれません。もし、すでに公知だよという場合はぜひ情報へのポインタを教えてください。

ここまでで、UDP hole punchingのなんとなくの基本を学んできました。cone NATへの対処はSTUNの仕様、規格を読んでみてください。たぶん、この文章よりはよっぽど分かりやすいです、ここまで読んでいただく方にそう言うのもアレですが。また、実際、Symmetric NATの場合の方法としては、 https://tools.ietf.org/html/draft-takeda-symmetric-nat-traversal-00 を読むのがおそらく一番詳しく丁寧です。そういった意味でも、ここでの解説は初歩の初歩です、じゃあどう実装するんだというのから、サーバで何を観測するのか、そもそもNATが複数段あったらこの手法は果たして通用するのか。観測を複雑にしていけばいくほど、開通までの時間がかかります、それは本当にターゲットのアプリケーションにとって許容できるのか。Large Scale NATではこの穴開けが通用するのか、キープアライブはどうするか、セキュリティ的に必要な相手のパケットだけを見分けられるのか、認証はどうするか等、現実世界では、この抜け穴のような手法に対しての課題は山盛りです。そんなところの実地調査として、UDP hole punching自体はあまり表に見えない手法ではありますが意外なところで結構導入されていたりしますので、とあるゲーム機なんかで、P2Pで対戦通信しているな?とおもったときに、パケットキャプチャしてみるのもオススメです。

さて、最後に、いままでは、UDP hole punchingをベースに説明をしてきましたが、ではTCPの場合はどうなるでしょうか。まず、TCPにはcone NATという概念はまずあり得ません。それは、宛先との通信はステートをもって(つまりシーケンス番号を使って)通信されるため、宛先を限定しないポートマッピングというのはほぼ意味がありませんし、ほかのパケットを転送するというのはただのセキュリティホールです。なので、通常は、上記類型で言えば、Symmetric NATしか存在しません。また、さらに面倒くさいところが、TCPの通信シーケンスの始め方です。接続元はSYNパケットを送り、接続先はSYN、ACKをセットにして送ります、そして、接続元からACKが送られて、はじめてTCPでの通信は始まります。つまり、UDP hole punchingのように最初の一発のパケットはなかったことにするわけにはいきません。あくまで、SYNパケットは両者に届かないわけにはいかないのです。この通信開始の流れを3-handshakeと呼びます。

でも、それでもTCPでNATを越たい、という人にはヒントはあります。まず、TCPでの仕様では、3-handshakeだけでなく、4-handshakeでも問題なく通信は開始できます。つまり、αからSYN、βからもSYN、その後、双方からACKが送信されるようなケースです。ここから見えてくるのは、要はSYNをUDP hole punchingの最初のパケットとしてつかって複数送ったとしてもひとつだけ届けば通信は確立されるということです。これは、どこかで少し話題になりましたが、TCPの仕様に実際、TCP Simultaneous Openという名前で記載があります。ここまでくればあとの考えは分かりますね。これで、Symmetric NATと同じ手法でNAT越えはおそらく可能になります(これは私は実際に実装したことはないので、たぶん)

さて、というわけで……。ざっと、通常言われるNAT Traversalの手法の入り口を紹介してきました。STUN以上のもので簡単な実装を見られるものはいくつかあります。また、Symmetric NATへの対処の実装も、いくつかGitHubを漁ればでてきます。 https://github.com/zerotier/ZeroTierOne など。

とはいえ、NATの越方は様々、この上でどういう通信をするかも様々です。UDPでしか通信できない経路ではアプリケーションでは使い勝手が悪い場合もあります。そういう場合には、TCP over UDPを実装してあげてVPN的に使うのもよいかもしれません(OpenVPNが使っているようなTUN/TAPデバイスという仮想トンネルデバイスはLinuxではよく使われますね)また、NATに関わらず通信するためのサーバリレーの方法としてはメジャーなのがTURNを使った実装でしょうか。越えられなかったらTURNをつかってサーバリレーをするというところまでフローを実装するとより使いやすくなります。また、今回は出てきませんでしたが、ルータに実装されているUPnP実装では静的なポートマッピングが可能なものが多く存在します。UDP hole punchingとは別の方法で、NATの外→内の通信を可能にできる方法なので、こちらも組み合わせるとより多くのNATに対応できるはずです。でも、この場合も複数段NATがある場合はじゃあどうする、みたいなことがなかなかに難しいポイントです。まずは、ローカルネットワークとグローバルネットワークを見分けるような方法を実装しなければなりません。方法はいくつかありそうですが、ICMPでTTLを変化させて使うとできそうな気もします。要はtracerouteですね。

昨今、IPv6も徐々に普及し始め、NAT Traversalは不要になるかと思っていましたが、NATはIPマスカレードではなく、1:1のアドレス変換として生き残る雰囲気も少しだけ感じます。そんな中で、意外にNAT Traversalは必要とされる技術なのかもしれません。WebRTCは特性上、P2P通信ができれば好ましく、NAT TraversalもSTUNなどを使って行われるケースもあるようです、同時にTURNも使われる例の最たるものとしても。

今後どうなっていくか

さて、最後に、将来はというところを少し。これまでは、UDP/TCPの話をしてきました、それ以外もあります。SCTPが一番最有力なのではないかと思います。現状、メジャーではないものの、すでに実装はLinuxではしっかり入っていますし、途中経路のルータさえしっかり対応すれば(これが一番大変なんですが)、様々な課題を解決しています。ここから、SCTPを解説しはじめると、この記事はいつになっても終わらない形になってしまいますので、NAT Traversalにまつわるアレコレはここまでで一度締めさせていただきます。年末年始の空いた時間でSCTPを調べていただくときっと楽しいのではと思ったりしています。

最後に

この記事が果たしてアドベントカレンダーの最後に相応しかったかどうかはよくわかりませんが、NAT Traversalという古くからあるけれどマイナーな、でも、結構有用だと思っている技術の導入となる方がいたりすると幸いです。
途中から図がなくなったのは気力が間に合わなかったので、後で追加できたらしたいなと思っています。

文系新卒でもIoTに入門できるのか?! 改造ミニ四駆製作キット「MKZ4」に挑戦

$
0
0

こんにちは。中村です。

私はCerevoの中でも数少ない新卒のうちの、さらに希少種である文系出身です。「IoT」というバズワードが発する芳ばしい香りに誘われて2016年4月から事務系職として働いています。

さて、文系出身者である私は「IoT」のInternetもThingsもこれまで対して勉強したことがありません。しかし徐々に社外の方と交流する機会も増え、IoTについて質問をされることがよくあります。最初はそれっぽい適当な返答でごまかしたり、抽象度を引き上げて煙に巻いたりと、のらりくらりかわし続けてきたのですが、それにも限界があると感じ、いよいよ本格的にIoTについて勉強しなければならないと思い始めました。

しかしながら、世に出回っている「IoTがわかる!」系の本を何冊か手に取ってみたものの読んでもよくわかりません。人工知能とか自動運転とかが書いてあっても、それをどう実現するのかは書いてありません。

「これは困ったぞ……理系でなければIoTを扱うことはできないのではないか……」と思っていたそんな折、なんと弊社からIoTが学べる学習キットが発売されました。

今回のエントリでは、私が実際にこのIoT学習キットである『MKZ4』の組み立て行い、その体験を通じてIoTって実際に何をするものなのかをお伝えできればと考えています。

まだIoTとはなんじゃらほいという方も、是非このブログを参考に、『MKZ4』にトライしてみてください。

それでは早速行ってみましょう!

準備編

s-P_20161216_154057

  • MKZ4
  • MKZ4WK
  • ワイルドミニ四駆
  • MKZ4ガイドブック(Kindle版)

準備するものはこの四つです。

今ならなんと「MKZ4」「MKZ4WK」「ワイルドミニ四駆」をセットにしてギフトラッピングに対応した数量限定スペシャルモデルがCerevo official storeで販売されています。

また、MKZ4ガイドブックは腕に自信がある方はなくても構いませんが、電子工作が初心者という方は無いと厳しいです。付属のマニュアルだけでは落とし穴があります。Kindle Unlimitedでも読むことが可能ですので、ぜひ用意して臨むことをお勧めします。

電気編

準備が整ったらいよいよ開始しましょう。

s-P_20161216_154648

MKZ4を開封するとこんな感じです。

s-P_20161216_154812

こんなに小さなパーツもあるのでなくさないように注意しましょう(※これは振りです)。

s-P_20161216_154944

まずは電子部品から基板の上に載せていきます。ちなみに「基盤」ではなく「基板」です。これは入社してから何度も注意されますので、覚えておくとCerevoに入社しても困りません。

s-P_20161216_155211

はじめの一歩は抵抗です。3種類あります。パーツの色をよく見て間違えないように乗せていきます。s-P_20161216_155333

根元からガッツリ曲げないとこんな感じで浮きます。浮いても大丈夫ですが不格好なのでなるべく基板にぺったりくっつくようにします。

s-P_20161216_155444

こんな感じ。

s-P_20161216_155451

裏側です。

さて、ここまでできましたら、いよいよ半田付けを行っていきます。半田付けを行ったのは、中学3年生の時に手回しラジオキットを授業で作成たのが最初ですが、Cerevoに来てちょくちょく触らせてもらっていたためちょっと自信があります。

s-P_20161216_155635

機材はこちら。製品の基板は顕微鏡ないと厳しいですが、今回はなくて問題ありません。

s-P_20161216_155910

こんな感じでランドを熱し、左サイドから半田を付けます。

s-P_20161216_160029

1個付きました。

s-P_20161216_160131

反対側も半田付けします。

s-P_20161216_160449

基板を覗いてみて、穴が開いていなければしっかり半田が盛られています。穴が開いていると取れやすく、不具合の原因になるのでたっぷり盛っておきましょう。

s-P_20161216_160527

余った線はニッパーで切り取ります。

s-P_20161216_160146

最初の1つが乗りました!

s-P_20161216_161521

次々に抵抗を乗せていきます。

s-P_20161216_161817

セラミックコンデンサも乗せていきます。

s-P_20161216_161851

裏側です。半田付けするところがたくさんありますが、まだ序の口です。

s-P_20161216_162209

サイドから見て半田の盛り方がおかしいと感じたらその都度直します。

s-P_20161216_162556

お次にピンヘッダ。

s-P_20161216_162635

手で割ります。

s-P_20161216_162724

基板に置いて、

s-P_20161216_163142

マスキングテープで固定します。

s-P_20161216_163337

こうしておくことで裏返してもぐらつきません。

s-P_20161216_163709

半田付けし、おかしそうな箇所は修正します。

s-P_20161216_164001

ついでにL字ピンヘッダもつけてしまいました。

s-P_20161216_164124

LEDライトと電解コンデンサー。これらは取り付けの向きが決まっているので注意が必要です。

s-P_20161216_165315

さて、最初の難関のチップ抵抗まで来ました。すこぶる小さいです。鼻息で飛んでいくので扱いに注意が必要です。

s-P_20161216_165553

もはやフィルムをはがすところから苦戦。

やっと剥せたところで撮影するための席から半田席へもどろうとしたところ……

s-P_20161216_165731

落としました……。

あれだけ気をつけたのに、ピンセットで持ち運びをした結果がこれです。完全に迷彩になっています……。(ちなみに右上の白い点がそれで、探すのにとても苦労しました)
みなさんも本当に気をつけてください。

s-P_20161216_165842

気を取り直していきます。基板のランドの片側に「予備半田」とよばれる半田をあらかじめおいておきます。

s-P_20161216_170029

ピンセットで位置を合わせ、半田を溶かして乗せます。

s-P_20161216_170143

右側にも半田を置いて完成です。右側は上から半田を置いただけなので、若干不安です。しかしここは後々エラーが出たらその時に考えることにして先に進みます。

s-P_20161216_170326

電気編のクライマックスが早くも登場です。

s-P_20161216_171815

動かないよう台座に固定して、フラックスという秘密兵器を使います。これを塗ると半田付けが非常にしやすくなります。

s-P_20161216_172409

まず、最端の一個内側の4ヶ所を半田付けし、ESP8266を基板に固定します。端のピンはGNDにつながっているので半田付けに時間がかかり難易度が上がります。そのために内側のピンから半田付けを行います。

s-P_20161216_173444

非常に苦労しましたが、押切先生のご指導の下、すべてのピンの半田付けが完了しました。このESP8266の半田付けの解説はこちらの記事を参照してください。動画付きで非常にわかりやすく解説されています。

s-P_20161216_174124

山を越えたので後は一直線です。残りのコンデンサーをおいていきます。一つは後でモーターにつけるのでこの時点で余っていても問題ありません。

s-P_20161216_174911

モータードライバモジュールもつけ、終わりが近づいてきました。

s-P_20161216_175128

ワイルドミニ四駆の方からモーターを取り出し、余っているコンデンサーを付けます。

s-P_20161216_175439

この時忘れないようにピニオンギアをつけましょう。後から付けようとすると基板ごと動かす必要があり面倒です。

s-P_20161216_175507

電池ボックスを用意し、赤と黒の線をモーター接続用に切り離します。60mmです! ここで私は適当に半分くらいに切ったために後で電池ボックスの収納に苦労しました……。

s-P_20161216_175825

モーター。

s-P_20161216_175903

基板取り付けのため導線の被覆を向きます。オフィスにはそれ用のこんな便利なペンチがあります。

s-P_20161216_175918

つるん。

s-P_20161216_180551

途中、ブリッジしてしまったところの半田を吸い取ります。

s-P_20161216_181734

取り付けが完了しました。

これでMKZ4基板は完成です!

MKZ4WKを準備する

さて、お次はMKZ4WKです。
MKZ4WKとは、MKZ4にプログラムを書き込むのに必要なものです。

s-P_20161216_182017

これを、

s-P_20161216_182826

こうして、

s-P_20161216_185553

完成です!(特に難しい点はないので三分クッキングスタイルで行きます)

PCと接続して青いLEDが光ればOKです。

MKZ4基板にプログラムを書き込む

次からはMKZ4にMKZ4WKを通してプログラムを書き込んでいきます。

s-P_20161216_190126

MKZ4のジャンパーがD側になっていることを確認してMKZ4WKをMKZ4に接続します。

s-P_20161216_190115

MKZ4WKの接続する向きに注意しましょう。

ソフトウェア編

ソフト側の準備として、Arduinoのインストールが必要です。ここからダウンロードしておきましょう。以降ではインストールが済んでいることを前提に進みます。

arduino01

まず環境設定から、

arduino02

ボードマネージャーのURLを追加します。

arduino03

ボードマネージャーから、

arduino04

esp8266 by ESP8266 Communityのバージョン2.2.0をインストールします。

次にMKZ4のスケッチ(ソースコード)をここからダウンロードし展開しておきます。

arduino05

展開したファイルをダブルクリック。

arduino06

ボードマネージャーから該当のものを選択。

arduino07

コンパイルし、

arduino09

完了したらOKです。

arduino10

シリアルポートが表示されていればそれを選択します。

arduino11

マイコンボード(MKZ4)に書き込みます。

arduino12

書き込みが完了しました!

s-P_20161216_190531

ジャンパーをB側に移して、電池ボックスの電源をONし、赤色LEDが点灯すれば書き込みが無事できています。

ここまでで電気とソフトウェアは終了です。

メカ編

さて次に、ワイルドミニ四駆の組み立てに移ります。

s-P_20161216_193656

右上がMKZ4付属の特製パーツで、他はワイルドミニ四駆となります。

s-P_20161216_194628

前輪のパーツを切っていきます。

s-P_20161216_194733

二か所に切り込みを入れると、あとは力技で割れます。

s-P_20161216_194940

本体シャーシも前輪部分を切っていきます。

s-P_20161216_195332

ザクザク切ります。

s-P_20161216_195825

前輪部分がカットできればOKです。手が疲れるので適宜休憩しながら行いましょう。

s-P_20161216_200124

ギアをはめます。前輪部分は一つ使いません。

s-P_20161216_200607

カバーをパチリ。

s-P_20161216_200854

シャーシに穴をあける準備として、シールを張ります。

s-P_20161216_201752

穴をあけるには3mmのピンバイスが必要ですが、あいにく壊れたドライバーしかオフィスにありませんでした。良いのです。ドライバーが必要なのではなく穴が必要なのですから。

s-P_20161216_202303

こんな感じで二か所に穴をあければシャーシ側はOKです。

s-P_20161216_202650

ホイールの加工をします。ギア部分をカット。

s-P_20161216_203117

ドリルで六角の穴を丸くします。前輪について二つのホイールを加工します。ここで前輪に該当するホイールを誤ってしまうと完成しません。穴をあける前によく確認してください。なお、私はギアがついているホイールを両方とも前輪と勘違いしたため、とんでもないことになりました(後述)。

s-P_20161216_203635

タイヤを装着。

s-P_20161216_204110

黒いパーツを埋め込みます。

s-P_20161216_204434

この辺りは説明書通りなのでサクサク進みます。(※実はここで映っているタイヤは本来前輪ではありません。その事実にこの時点で私はまだ気づいていません……)

s-P_20161216_204545

今回のキモのサーボです。サーボホーンの先端を合わせます。

s-P_20161216_205013

ネジを留めていきますが、複数あるので注意が必要です。

s-P_20161216_204833

まずはサーボ本体を取り付けます。

s-P_20161216_210131

このように、先にサーボホーンに穴をあけましょう。

s-P_20161216_210727

s-P_20161216_210938

どんどんねじ留め。

s-P_20161216_211144

前輪部分を本体シャーシに合体します。

s-P_20161216_212059

前輪を取り付け……と行きたいところですがここで問題発生です。

なんと、前輪と後輪の組み合わせを間違えていました。

s-P_20161216_212113

正しくはこちらです。

左後輪はギアがないとモーターの動力を受けることができません。わたしはこのギアがあるタイヤを前輪と勘違いしていたため、誤ってホイールの穴をドリル丸くしてしまいました。押切先生に懇願してタイヤを譲ってもらったのですが、交換用がない場合は新しいワイルドミニ四駆を準備する必要があります。大出費になってしまうので、くれぐれもドリルで穴をあける前にはどれが前輪でどれが後輪か注意して行ってください。

s-P_20161216_213119

タイヤを取り付けます。

s-P_20161216_213536

モーターをパチリ。

s-P_20161216_213932

MKZ4基板を両面テープでくっつけます。

s-P_20161216_213937

上から見た図。

s-P_20161216_215519

電池ボックスも本体シャーシに両面テープで固定します。私は導線を測らずに切ってしまったため短くなりすぎ、中央に固定することができませんでした。中央に固定しないと重心が左右に偏ってしまいますので、導線はきちんと測って切りましょう。

s-P_20161216_214626

s-P_20161216_214705

s-P_20161216_215019

後輪も組み立て、取り付けます。

s-P_20161216_215947

上側を留め具で留めます。

s-P_20161216_220129

最後に後輪の軸の保護パーツを取り付けます。

メカはこれで完了です。

個人的に鬼門だったのはサーボホーンの穴あけです。ネジがうまく回らずに時間がかかりました。タッピングネジには先が尖っているものと丸いものがありますが、尖っているものを用いることで穴を拡大しながらネジ締めを行うことができます。サーボホーンの穴あけには先が尖っているものを用いましょう。

動作確認編

電気とメカが完成しました!

いよいよお待ちかねの動作確認です。テスタでの測定もかっ飛ばして先に進めることだけに注力していたので、内心ビクビクです。

s-P_20161216_220141

電池ボックスに単四電池を三本入れ、電源をONにします。すると中の基板の赤LEDが点灯します。

mkz401

スマートフォンのWi-Fiから、「MKZ4」を選びます。パスワードを入力する必要はありません。

接続が完了したら192.168.4.1にブラウザからアクセスします。

Screenshot_2016-12-16-22-02-56

接続が確立すると、「CONNECTED」と表示されます。うまくいっているようです。

Screenshot_2016-12-16-22-05-04

フリックで操作します。

s-P_20161216_220455

おお! サーボが反応して前輪を左に傾けています!

s-P_20161216_220518

勢い余って段ボールに激突してしまいました。

かなり急ぎ足で組み立てたため、まっすぐ走らせようとしても左に曲がっていきます。逆に右に曲がりません。これはサーボの中心位置がずれているため起こっていそうです。修正が必要なところですが、ひとまず動いたことに満足して、今回はここまでにしたいと思います。

終わりに

いかがだったでしょうか。

初めての『MKZ4』組み立てでしたが、私は4, 5時間はかかったと思います。これは日ごろ半田付けを訓練していたので、チップ抵抗やESP8266も問題なく、また基板の半田付けでエラーが生じずにストレートに動作確認までこぎつけられたからでしょう(ある意味エラーがなかったため起伏の乏しい記事になってしまったことは反省です)。半田付けも初めてという方は、この2倍程度の時間を想定されると良いかもしれません。

丸1日、日ごろの雑事を忘れて童心に帰るというのは楽しいですよ!

是非みなさんもトライしてみてください。

Viewing all 63 articles
Browse latest View live