読者です 読者をやめる 読者になる 読者になる

もじずり技術会

Since:2011.07.04 連絡先:info@mojizuri.jp

2017年にやりたいこと

「一年の計は元旦にあり」と言うことで、
興味を持っている技術ネタ(今年やってみたいこと)についてざっくばらんに書いてみます。
※内容はアイデアスケッチレベルとなります。

 

1.ToF (Time-of-Flight) で何か作りたい。

 2015~16年頃にSTMicro社製VL6180Xに出会った時に「光学式距離センサでここまでの絶対精度・安定性が出せるのか!」という衝撃を受けました。
VL6180Xでは、明るい環境下では測れる距離が短くなってしまうためアウトプットをだせないまま時間が経過し・・・後継モデルとしてVL53L0Xが発売されました。

www.st.com

 秋月電子通称様での取り扱いも始まり入手性がグッと良くなったことから当サークルでもこれを「複数使った何か」を作りたいと思っております。

 下図のようなデバイスを、椅子のひじかけ部分に取り付けて、手首から先だけのジェスチャーコントロールでテレビやエアコンを操作できるリモコンを作ったら面白いかなぁ、と。(ごろ寝マウスに近い発想かもしれません)

f:id:shukukei:20170109184701p:plain

 ※Leap MotionやKinectとの差別化をどうするのか?といったところも課題の一つであると考えています。

 VL53L0Xを複数使う上での課題は、
相互干渉しないように測距するタイミングをズラして(時分割)あげる必要有無の確認して、もしもズラす必要があるならばサンプリングレートの問題も出てくること、インタフェースがI2Cであることや、電源電圧が推奨2.8V最大3.5Vであり少し使いづらこと。

 いっそのことコンパニオンチップのような物をPICマイコンで自作してみようかと考えております。
イメージとしてはデータは単線シリアル通信(UART)で行い、測距開始命令用のGO端子(High→Lowで測距開始)と測距中を表すBUSY端子(オープンコレクタ出力、測距中はLowを出力)とを備えている。

 複数枚使用時は、Serial, BUSY, +5V, GNDは共用(パラレル)でGOは占有で使用する。

 GO/SELECT端子として、Serial経由で基板IDを発行したり測距モードを変更したり・・・といったコンフィギュレーションを出来るようにしたほうが面白いかもしれないですね。

f:id:shukukei:20170109184833p:plain



2.Nutubeで何か作りたい。

 21世紀の真空管ことNutubeで何かを作ってみたい・・・と発表直後からずっと思っており、最近では作例も見かけることが増えてきましたのでそろそろ自分でも作ってみたい。

korgnutube.com 

 せっかく作るのであれば普段使い出来るものを・・・ということで。
スマートホン(Android)とカスタムIEM(低インピーダンス)に特化したポータブルオーディオ装置を考えています。

 自分でデバイスドライバを書けるほどソフトウェアに通じていないのと、USBインタフェースを持っているICの入手性を考えるとPCM2704シリーズですね。

 

f:id:shukukei:20170109190525p:plain

「電源はUSBバスパワーを前提に、PCM2707Cを載せてI2S出力→SRC4192でアップサンプリング→PCM1794AでD/A変換→Nutubeで真空管味付け→±12V 低インピーダンス出力」と、なんだかてんこ盛りですが・・・アナログ回路初心者に完成させられるのでしょうか--;

 もう一つ「面白くする」とすれば以下のようなデジアナ完全分離する構成もアリなのかなぁとも思っています。

f:id:shukukei:20170109192412p:plain

 

 

3.モータドライバを作りたい。

 おもちゃにも搭載できるような小規模な回路でラフにDCブラシモータの回転数検出を行って、回転数フィードバックをかけたり過負荷から保護したりしてみたいです。
具体的にはモータ両端の電圧変動をACカップリングしてコンパレータに入れると回転数×極数に比例したパルスが観測できるので、その現象をうまく活用したいと考えています。

f:id:shukukei:20170109192802p:plain

 去年まではH-bridge部分をFull N-ch MOSFET化しようとして躓いていましたが最近は非常に便利なIPDが出てきているようですのでこちらを使って超小型のモータドライバを作ってみたいと考えています。

 

 

4.透明スクリーンへの投影をやってみたい。

 具体的な用途を思いついているわけではないのですが、DLP技術の発展の結果、短焦点のポータブルプロジェクタの入手性も良くなってきましたしいろいろな場所で見かけるようになってきたので一度自作しておきたいかなと思っています。

f:id:shukukei:20170109193305p:plain

ToFと組み合わせるのも面白いかもしれませんね。

f:id:shukukei:20170109193327p:plain

 

 

5.RTOS (Real Time Operating System)に触れてみたい。

 リアルタイムOSというものに触れておいたほうが良いのかな、と思っていたところに「TOPPERS/R2CA」というプロジェクトを知り、即日Arduino M0 Proを購入しました。

 https://dev.toppers.jp/trac_user/contrib/wiki/rtos_arduino

 ロボット制御用のメイン基板に採用してみたいと思っています。

f:id:shukukei:20170109193827p:plain

 

 

6.単線シリアル通信を作ってみたい。

 一度はシリアル通信を自分で作ってみたいと思っています。
実は学生時代に作ったことはあるのですが、その後もずーっと構想を温め続けているので、そろそろ世の中に送り出したいです。
物理層としては入手性の良いLINに準じる形を考えています。
エラー検出はCRC-8、加えてハミング符号を付与することでエラー訂正能力を持たせる。

f:id:shukukei:20170109194132p:plain

 

 

7.オーディオ信号単方向シリアル通信を作ってみたい。

 実はこちらも10年くらい構想を温めている間に多数の作例が公開されてしまいましたので、オリジナリティをどうしようかなぁ、と検討中です。

f:id:shukukei:20170109194937p:plain

単方向通信のため再送要求が出来ません・・・エラー訂正技術は必須となると考えていますので以下のようなフレーム構成を想定。
 制御データ長:8bits
 制御データ長に対するハミング符号長:5bits
 実データ長:16bits
 データに対するハミング符号長:10bits
=>データ長:39bits

 

通信速度を稼ぐために多値FSKにすることを検討。
 人間の可聴域=20Hz~15kHz,20kHz程度
 予備実験結果=8kHz~16kHzまでは正常に出力可能。

⇒最高周波数は15kHz or 14kHzとする。

 

受信方法は一定周期でカウンタに溜まっているパルスの数を取り出すことによるとして、仮に10ms間隔サンプリングすると
 1kHz = 010 pulses
 5kHz = 050 pulses
 10kHz = 100 pulses
 15kHz = 150 pulses
 20kHz = 200 pulses

スマートホンや携帯電話のクロック精度によって、1音の長さは変動する可能性があるため同期信号を送るわけにはいかない・・・(周波数の絶対精度は先頭に周波数同期用の信号を一定時間入れることで補正をかけることができる)
ここで、周波数が変わったタイミングが信号の切り替わりタイミングとすれば、1音の長さを長くすることでこのようなスマートホンに対応できると考えられる。(通信ボーレートを可変、オートボーレート出来るようにする)
ただし同じ音が連続する場合は区切りを表す信号を送らないといけないので仮に17値FSKにすると、1音で4bit伝送できる。

ノイズ等を受けた場合隣り合う周波数にズレる可能性が高いと考えられるため、確実にエラー訂正・検出できるように、隣り合う周波数のハミング距離を1とするようにデータを割り付けると以下のようになる。

 周波数:カウント値※:データ
 1.0 kHz : 10 : 0000
 1.8 kHz : 18 : 0001
 2.6 kHz : 26 : 0011
 3.4 kHz : 34 : 1011
 4.2 kHz : 42 : 1001
 5.0 kHz : 50 : 1101
 5.8 kHz : 58 : 1111
 6.6 kHz : 66 : 1110
 7.4 kHz : 74 : 1100
 8.2 kHz : 82 : 1000
 9.0 kHz : 90 : 1010
 9.8 kHz : 98 : 0010
 10.6 kHz : 106 : 0110
 11.4 kHz : 114 : 0100
 12.2 kHz : 122 : 0101
 13.0 kHz : 130 : 0111
 13.8 kHz : 138 : セパレータ
 ※10ms周期でサンプリングした場合

 

 

8.PICマイコン用の基礎ソフトを作成したい

 実は、「PICのFlashROM部分にシステムソフトを入れておき、EEPROM部分にユーザソフトを入れて、スマートフォンのイヤホン端子経由でユーザソフトを書き換える」という構想から始まって前述の音声信号通信を考えるに至ったという経緯があります。
目的は電子工作(プログラミング)のハードルを下げること。
※2005年頃~構想に着手したため、まさしくArduinoと同じくらいのスタートですね。

 それらを支える技術として、以下のようなものを同時に考えていました。
  ・自作アセンブラ言語(EEPROMの容量上、長いオペコードを入れるわけにはいかない)
  ・EEPROM管理ライブラリ(もちろんハミング符号によるエラー訂正付き)
  ・生焼け検出機能(PICのFlashROM最後尾に0xAAのような値を入れておき、起動時にその値を読むことで「最後まで焼かれたか」を見ることができる)

 このうちのEEPROM管理ライブラリは作り上げておきたいと思っています。
具体的にはEEPROMの各アドレスを以下のように管理し、「ログ先行書き込み」による保護をイメージしています。
 0x00:PF_MasterManageArea (PF_DataDistrust, PF_WALDistrust, Usr_Lock, Reserved(1), Length[4bits])
 0x01:Usr_DataArea0 (Data0)
 0x02:Usr_DataArea0 (Data1)
 0x03:Usr_DataArea0 (Length0,Length1)
  ・
  ・
  ・
 0xF7:Usr_DataArea82 (Data0)
 0xF8:Usr_DataArea82 (Data1)
 0xF9:Usr_DataArea82 (Length0,Length1)
 0xFA:PF_JournalArea(Address(0~81))
 0xFB:PF_JournalArea(LengthAddress)
 0xFC:PF_JournalArea(Data0)
 0xFD:PF_JournalArea(Data1)
 0xFE:PF_JournalArea(Length0,Length1)
 0xFF:PF_SlaveManageArea (PF_DataDistrust, PF_WALDistrust, Usr_Lock, Reserved(1), Length[4bits])

ハミング符号の生成効率を考慮すると2バイトを1ブロックとして扱った方が良いと考えたため2バイト×82ブロックの164バイト/256バイト≒64%の利用効率となりました。

 

 

9.自動温調式リフロー炉を作りたい。

 手はんだでは実装できない部品が増えてきており、ホットプレートによるリフローを行っておりますがカンとコツ頼みの温度管理のため温度に厳しい部品(例えばチップヒューズ等)が実装の過程で熱ダメージを負ってしまい壊れてしまうという現象が発生しております・・・
熱容量の大きな部品もきれいに実装できないといったトラブルも起きていますのではんだ付け条件をしっかりするためにもリフロー炉がほしいです。

ウェブ検索を行っていたところでは、以下の作例が気になっています。

mag.switch-science.com

 

 

 

2017年に何をどこまで取り組めるのかわかりませんが・・・できる限りで何かを作って発信したいと思っておりますので。
末筆ではございますが、本年もよろしくお願いいたします。

田村ゆかり LoveLive2015 Summer Side Lily 松戸公演物販&会場推し

松戸に行ってきたよ。ゆかりんには会えなかったけど新しい体験が多かった。

f:id:yoshihiro_6144:20160610011212j:plain

 

希少価値の高い松戸公演、自分モFC先行アニメロ先行一般先行一般と全部外して、でもワンチャンあるんじゃないか(当日になって連番者が風邪ひくパターン)と思って現地まで行ってみた。結果はダメだったんだけどね。

続きを読む

本日から追加された新プラン「さくらのVPS(v4) SSD 512 TK02」をとりあえず3台契約してみた。

本日から追加された新プランを3台契約してみました。

f:id:shukukei:20170327110206p:plain

申込み台数が1台から増やせなかったので、連続で3回申込み手続きを行いましたが・・・結構IPアドレス離れていますね?

さくらのVPSは使いやすい&お値段以上の快適性(特にディスクやネットワークが速いイメージ)&地味に嬉しい無料ネームサーバなので、じ~っくりと冬休みに弄り倒したいと思います!

MNLF2014 シンガポール公演のLVに行ってきたなど

TLから強力なシンガポール力を感じたので衝動的に行きたくなった。

近所の映画館で、空席があるのを発見して即購入。空いてたので最前列をチョイス。

楽しかったけど、リアルで周りに人がいない最前列だったので変に緊張したそんな人生初ライブビューイング。