gokkunhebi

昔とった杵柄を若い世代につなぐ活動で地域貢献しています。 といえばかっこいいですが、定…

gokkunhebi

昔とった杵柄を若い世代につなぐ活動で地域貢献しています。 といえばかっこいいですが、定年後の「毎日が日曜日」が怖いのと、脳内にあるせっかくの「杵柄」を忘れていくのが悔しくて、プログラムと電子工作を始めたというのが本音です。

最近の記事

プログラムと電子工作・ラジコンカーをスマホで操作

自宅でおそらく10年以上眠っていたタミヤのおもちゃ「壁づたいねずみ」を発見したとき閃きました。「これを M5StickC Plus で操ればラジコンマウスが作れる!」ちなみにこのシリーズ、今でも販売されていますね。 左右の車輪をそれぞれ独立したモーターで駆動する構造です。左右同じ回転数で駆動すれば直進し、差をつければ右や左に旋回します。回転数は Pulse Width Modulation(PWM)で変えればいいはず。 M5StickC Plus とスマートフォンは Wi

    • プログラムと電子工作・M5StickC Plus2が来た!

      M5StickC Plus2今さらですが、M5StickC Plus2 を買いました。 M5StickC Plus と何が変わったのかは、スイッチサイエンスの Webサイトに説明があります。ケースの色は明らかに異なりますね。 M5StickC(無印)、Plus、Plus2 のそれぞれでスケッチを書き換えるのは面倒です。スケッチを共通化できるのか調べてみました。 Arduino-IDE の準備Arduino-IDE のメニュー「ツール」→ライブラリを管理… で、M5Uni

      • プログラムと電子工作・楽曲演奏(5)SpeakerHATへPWM出力2

        楽曲演奏(2)では、五線譜の音符を一つひとつ鳴らして曲を奏でました。音階に対応する周波数を Pulse Width Modulation(PWM)出力機能を使用して出力しました。 楽曲演奏(3)では、WAVE形式の音楽ファイルのデータをデジタル・アナログ変換(DAC)して出力しました。 今回の楽曲演奏(5)では、WAVE形式の音楽ファイルのデータを Pulse Width Modulation(PWM)変換して出力します。M5StickC の PWM出力は、符号なし 8ビ

        • プログラムと電子工作・楽曲演奏(4)割込み処理でDAC出力

          楽曲演奏(3)では、楽曲データを平場(loop() 関数内)でデジタル・アナログ変換(DAC)して出力しました。この方法では演奏速度が CPUクロック周波数によって変化します。 今回の楽曲演奏(4)では、DACの周期をタイマ割込みで発生し、割込み処理で DAC出力します。この方法では演奏速度が CPUクロック周波数などの処理系に依存しません。その他は、楽曲演奏(3)と同様です。 割込み処理とは、人の仕事を例に取ると、書類を作成中に電話がかかってきた時、書類作成を一時中断し

        プログラムと電子工作・ラジコンカーをスマホで操作

          プログラムと電子工作・開発ツール wav2h.py

          「プログラムと電子工作・楽曲演奏(3)SpeakerHATへDAC出力」編で、WAVE形式の音楽ファイルのデータを const uint8_t wav[] = "・・・"; として埋め込みました。.wavファイルから .hファイルへの変換は python で行っています。 作業手順音楽ファイルは、著作権、著作隣接権ともに切れていると説明のある下記の Webサイト https://classix.sitefactory.info/ からダウンロードします。例では、ヴィヴァルデ

          プログラムと電子工作・開発ツール wav2h.py

          プログラムと電子工作・楽曲演奏(3)SpeakerHATへDAC出力

          楽曲演奏(2)では、五線譜の音符を一つひとつ鳴らして曲を奏でました。音階に対応する周波数を Pulse Width Modulation(PWM)出力機能を使用して出力しました。 今回の楽曲演奏(3)では、WAVE形式の音楽ファイルのデータをデジタル・アナログ変換(DAC)して出力します。M5StickC の DAC出力は、符号なし 8ビット整数を 0~3.3Vの電圧に変換します。 WAVE形式のファイルの構造は、「waveファイル 構造」でググって調べてください。ここで

          プログラムと電子工作・楽曲演奏(3)SpeakerHATへDAC出力

          プログラムと電子工作・楽曲演奏(2)SpeakerHATへPWM出力

          M5StickC(Plusなし)には、内蔵スピーカーがないので、音を鳴らすには SpeakerHAT を外部接続します。M5StickC Plus につないでもいいです。 とりあえず、内蔵スピーカーと SpeakerHAT でどのくらい異なるのか、やってみたいと思います。Pulse Width Modulation(PWM)出力を使用して、「どんぐりころころ」と「チューリップ」を演奏します。 目標外部接続した SpeakerHAT で音を鳴らします。 「どんぐりころころ

          プログラムと電子工作・楽曲演奏(2)SpeakerHATへPWM出力

          プログラムと電子工作・楽曲演奏(1)内蔵スピーカー

          M5StickC Plus の内蔵スピーカーを使用して、楽曲を演奏します。M5StickC Plus で音を出す方法はいくつかありますが、五線譜の音符を一つひとつ鳴らして曲を奏でます。 曲は「どんぐりころころ」と「チューリップ」です。譜面があれば演奏できると思いますが、音量が変えられないので無味乾燥な演奏になります。また内蔵スピーカーの音量はそんなに大きくないです。 この方式は、チャイムやブザーなどの用途向き、楽曲を演奏するには不向きです。 目標M5StickC Plu

          プログラムと電子工作・楽曲演奏(1)内蔵スピーカー

          プログラムと電子工作・目覚まし時計

          M5StickC Plus で時刻や日付を管理したいアプリケーションがあります。 例えば、歩数計。一日あたり何歩歩いたのか。例えば、自転車のスピードメーター。時速やペダルの回転数(ケイデンス)をリアルタイムに表示する。 最もシンプルなのは、目覚まし時計ですね。 M5StickC Plus のアラーム音は音量が小さいので実際には役者不足です。 目標M5StickC Plus の時刻は、Network Time Protocol(NTP)で取得します。 日付、時刻を M5S

          プログラムと電子工作・目覚まし時計

          プログラムと電子工作・再コンパイルなしでWiFi接続

          M5StickC Plus は標準で WiFi に接続する機能が搭載されています。SSID、パスワードをソースコードに埋め込むと、初めての WiFi 環境で使用するときには、コード変更と再コンパイルが必要となります。つまり PC が必須となります。 そこで初めての WiFi 環境で簡単に WiFi 接続できる機能を実装しました。 2つの機能に対応します。 WiFi ルータの WPS を使用する。 スマートフォンから SSID、パスワードを設定する。 おおよその処理手

          プログラムと電子工作・再コンパイルなしでWiFi接続

          プログラムと電子工作・LINEに通知

          M5StickC Plus は IoT と整合性が非常に高いです。何らかの事象が発生したときスマートフォンに通知できれば、様々な応用が考えられます。 例えば、人が入室したときに通知する、温室の気温が高くなりすぎたら通知するなど、様々なリモートセンシングに活用できます。 今回は、M5StickC Plus に Web クライアントを実装します。M5StickC Plus のボタンを押したことを、Web クライアントで LINE に通知します。LINE が提供する LINE

          プログラムと電子工作・LINEに通知

          プログラムと電子工作・不揮発性メモリ

          不揮発性メモリは、M5StickC の電源をオフしても値を保持するメモリ領域です。 プログラムのパラメータなど、多数の小さな値を保存する場合は Preferences オブジェクトを使用すると便利です。 目標不揮発性メモリの初期化と終了、値を読み出し/書き込みします。 不揮発性メモリの値を全部消去します。 部品・機材使用する部品は次のとおりです。「Hello, World!」と全く同じです。 電子部品 M5StickC Plus 1台 開発用機材 PC(Win

          プログラムと電子工作・不揮発性メモリ

          プログラムと電子工作・開発ツール html2h.py

          「プログラムと電子工作・Webサーバ」編で、index.html のソース HTML を const char index_html[] = "・・・"; として埋め込みました。実は index.html から index_html.h への変換は、python で行っています。 Windows のコマンドプロンプト > python3 html2h.py index.html > index_html.h html2h.py import sysimport ioi

          プログラムと電子工作・開発ツール html2h.py

          プログラムと電子工作・Webサーバ

          M5StickC Plus を Webサーバにします。これによりブラウザから M5StickC Plus に指示を送り、内部変数を設定したり、制御したりできます。 Webサーバを利用すれば、小さな液晶ディスプレイと押しボタン 2個しかない M5StickC Plus のユーザインターフェースを使いやすく拡張することができます。 目標M5StackC Plus で Webサーバを動作させます。 PC のブラウザから Webサーバに文字列を送信し、M5StickC Plus

          プログラムと電子工作・Webサーバ

          プログラムと電子工作・Lチカ+ボタン

          「Lチカ」の状態をボタンで制御します。「ステートマシン」の使用方法を覚えましょう。 目標ブレッドボード上に LED を外付けする回路を配線します。 上ボタン(押しボタンA)を押すごとに、M5StickC Plus に外付けした LED の状態を消灯、点灯、点滅と変化させます。 液晶ディスプレイに LED のの状態をそれぞれ「LED OFF」/「LED ON」/「LED BLINK」と表示します。 部品・機材使用する部品は次のとおりです。「Lチカ」と全く同じです。 [

          プログラムと電子工作・Lチカ+ボタン

          プログラムと電子工作・ボタン

          「Hello, World!」「Lチカ」は、M5StickC Plus の出力を制御するスケッチでした。今度は、上ボタン(押しボタンA)を検出する方法を理解しましょう。 目標液晶ディスプレイの初期状態の色は黒です。上ボタン(押しボタンA)を押すごとに、液晶の色が黄、赤、緑、黒と変化します。 部品・機材使用する部品は次のとおりです。「Hello, World!」と全く同じです。 電子部品 M5StickC Plus 1台 開発用機材 PC(Windows10 または

          プログラムと電子工作・ボタン