Upgrade to Pro — share decks privately, control downloads, hide ads and more …

いにしえの呪文

 いにしえの呪文

【増席!】M5Stackユーザーミーティング vol.2 の登壇資料です。
https://m5stack.connpass.com/event/90997/

sapi_kawahara

July 03, 2018
Tweet

More Decks by sapi_kawahara

Other Decks in Business

Transcript

  1. これから話す内容は、初心者向
    けです!

    View Slide

  2. いにしえの呪文
    川原 英明
    Facebook: kawahara.hideaki.0204
    Twitter: @sapi_kawahara
    Blog: https://kawahara-ci.hatenablog.com/

    View Slide

  3. 自己紹介
    • 川原 英明
    • 埼玉県川越市在住
    • 使用言語は、アセンブラ、C言語、C++、Perl、PHP、Java、Ruby、
    Python、JavaScript(jQuery、Vuejs)と、何でもやる人です。
    • 現在、Webエンジニアなので、C言語系は、コンシューマーゲーム機
    での開発を、プレイステーション2を最後に、15年ぶりです。
    • そう、M5StackはC++が開発言語なのです!

    View Slide

  4. いにしえの呪文 その1

    View Slide

  5. C言語が、いにしえの呪文

    View Slide

  6. ディスってません!
    • #includeを久しぶりに使った。
    • ポインターを久しぶりに使った。
    • voidを久しぶりに使った。
    • 構造体を久しぶりに使った。
    • uint8_tのような無符号整数を久しぶりに使った。
    • プロトタイプ宣言を久しぶりに使った。
    • 呼び出すメソッドを、ファイルの後ろの方に書くとコンパイルエラーに
    なる。
    • 少々、変わっているクラス定義。

    View Slide

  7. いやいや、クラス定義について
    PHPerやPerl Mongerには言わ
    れたくない!

    View Slide

  8. なにせ15年ぶりなので!
    • クラス定義の最後は
    }; です!
    • 変数やメソッド毎に、アクセス修飾子(public,private,protected)を書く
    のでは無く、セクション毎に書く。(public: とか書いて、その後にまと
    めて書く)
    • 使わないけど、デストラクターはクラス名の前に ~ を付けた名前のメ
    ソッドで定義する。
    • そして、とにかく、クラスはファイルの前の方に書く!

    View Slide

  9. 恥ずかしながら・・・
    • Web系エンジニアのみの方は、C++をやるときに、この辺りに、ひっか
    かる可能性があります。
    • というか、自分がひっかかりました、30分ぐらい悩みました。
    • この辺りは、C++ クラス とかで検索すれば、解決します。

    View Slide

  10. ところで

    View Slide

  11. M5Stackの話を、
    全然してない!!

    View Slide

  12. いにしえの呪文 その2

    View Slide

  13. M5Stackのtoneで音を鳴らして
    たとき、音の感じが、とても懐か
    しく感じました!

    View Slide

  14. 懐かしく感じた物
    • ガラケーの着信音

    View Slide

  15. いにしえのガラケー
    • Webサイトは、基本的にメニューから行く。
    • 画面はcHTMLというので作った、しょぼい画面です。
    • 音は単音か3重和音だけど、音色は無く矩形波ぐらい。
    • その当時、ガラケーで流行った物があります。
    • 着メロ本です。

    View Slide

  16. 着メロ本とは?
    • 昔、着信音は手で入力してました。
    • 本屋に沢山置いてありました。
    • 数字の羅列です。

    View Slide

  17. M5Stackで再現
    • やっている事は、しょぼいです。
    • スマホでbluetoothで接続し着メロデータを送信してます。
    • M5Stackはデータを受け取り、着メロデータをtoneの形式に変換して鳴ら
    しているだけです。
    • bluetooth関連はサンプルからコピペしました。
    • M5Stackのbluetoothを有効にして、getValueすると、std::string形式で取得
    できます。
    • それを、toneで使える形に変換して、配列(std::vector)に入れます。
    • あとは、配列を読んで、toneで鳴らすだけです。
    • bluetooth関連は、意外と簡単に実装できます。

    View Slide

  18. 着メロのルールはタイプA
    • 休符 0
    • ド 1
    • レ 2
    • ミ 3
    • ファ 4
    • ソ 5
    • ラ 6
    • シ 7
    • ド 8
    • 二回は#
    • 三回は♭
    • データは、こちらです。
    • 5 3 3 4 2 2 1 2 3 4 5 5 5 0 5 3 3 3 4 2 2 2 1 3 5 5 3 3 3 0

    View Slide

  19. 苦労した点
    • メソッドやクラスはファイルの前の方に書くなどC言語の特性に少々
    悩んだ。
    • このMacBook Proは少々古く、対応しているbluetoothは2.1だったの
    で、作ったのはいいが確認する方法に悩む。
    • 結果として、iPhoneと汎用的なbluetoothアプリを入れて確認しました。
    •M5Stackの音がうるさい!

    View Slide

  20. あんまり、
    M5Stackの話をしてませんが、
    清聴ありがとうございました!

    View Slide