2016年10月19日水曜日

秋の夜長の電子工作 - ミンティア デジタルカメラ





















○パーツリスト
1
カメラモジュール
1
1
1
1
1
10kΩ抵抗
1
1列ピンソケット4P
1
ミンティアドライハードのケース
1

 カメラモジュールは、SymaのマルチコプターX5シリーズに付いているカメラの中身を使用しました。
 ミンティアのケースは、各モジュールのLEDが確認できるように、透過率が比較的高いドライハードのケースを使用しました。

○回路図
 

○レイアウト・配線
 

  TP4056 充電器モジュールの改造手順は、こちらを参考にしてください。


○ファームウェア(Arduinoスケッチ)

 プッシュボタンを短めに押すと写真を撮影、長押しでビデオ撮影開始、ビデオ撮影を停止するには、もう一度ボタンを押す。


2016年10月14日金曜日

秋の夜長の電子工作 - bluetooth通信で制御するMP3プレーヤー


 














○パーツリスト
1
bluetoothモジュール(HC06など)
1
1
1
1
抵抗20kΩ
1
M2タッピングネジ
2

その他、配線用ワイヤー、ホットボンドなど。

○回路図

○配線・レイアウト


bluetoothモジュールはMP3モジュールの下にあります。

TP4056 充電器モジュールの改造手順は、こちらを参考にしてください。

○制御用プログラム

・Androidアプリ
 こちらから、apkファイルをダウンロードして、インストールしてください。
 

 MIT App Inventorのプロジェクトファイルは、こちらからダウンロードできます。

・PC(Node.js)
  必要モジュール soket.io、serialport
 次のHTMLとJavaScriptコードを入力し、作業用フォルダに保存します。
 COMポートには、bluetoothモジュールのCOMポートを指定(コード中では「COM6」を設定しています)してください。
 PC(Windows)とbluetoothモジュールのペアリング、COMポートの確認方法は、「IchigoJamとPCの通信をBluetoothで無線化する」を参照してください。

 以下の手順で動作を確認します。
①コマンドプロンプトを起動し、作業用フォルダに移動します。
②「node mp3.js」と入力します。
③ブラウザで「http://localhost:3000」にアクセスします。
④各ボタンをクリックし、動作を確認します。

○参考
 ケースの3Dプリントのデータは、こちらからダウンロードできます。

秋の夜長の電子工作 - ミンティアブリーズ MP3プレーヤー V2

ミンティアブリーズ MP3プレーヤーを少し改良してみました。

○変更点
・充電器モジュールをミニUSBタイプからマイクロUSBタイプに変更
・lipoバッテリーを120mAhに変更
・プッシュボタンの接続端子を変更
・リピート機能、リピートのLEDインジケータを追加
・レイアウトを変更

 befor 













 After
 

○回路図

○ファームウェア(Arduinoスケッチ)


・中央:プレイ/ポーズ、長押しで現在の曲をリピート(リピートLED点灯)
・左 :ボリュームダウン、長押しで前の曲へ
・右 :ボリュームダウン、長押しで次の曲へ

 今回は、MP3のライブラリは使用していません。





秋の夜長の電子工作 - ミンティアブリーズ FMラジオ

 




その他、配線用ワイヤー、ホットボンドなど。

○回路図
 

 音声出力のカップリングコンデンサ(4.7μF)は無くても良いですが、5段プラグのヘッドフォンなどを使用した場合、接触不良で出力が発振する場合があるので、念のため入れています。

○実装・配線
 

TP4056 充電器モジュールの改造手順は、こちらを参考にしてください。


○ファームウェア(Arduinoプログラム)
・必要ライブラリ Adafruit_SSD1306Radio


・上ボタンでボリュームアップ、長押しでシークアップ
・下ボタンでボリュームダウン、長押しでシークダウン
・中央ボタンでメモリーした周波数(既定は81.8MHz)で選局、規定の周波数は、FIX_STATIONで設定
・中央ボタン長押しで現在の周波数をメモリー

2016年10月3日月曜日

IchigoJamをスマホ(Android)で制御する

 Androidのプログラムは、パーミッションがどうだとか、インテントがどうだとか、いろいろと作法があり、簡単なことを簡単に実現できません。また、開発環境の構築も、そこそこ面倒です。
 そんな面倒なことを省いて、Androidアプリを開発できるのがMITの「App Inventor」です。
 

 今回は、この「App Inventor」を使って、スマホ(Android端末)でIchigoJamを制御するアプリを作成してみました。

○IchigoJamの準備
 「IchigoJamとPCの通信をBluetoothで無線化する」の手順で、IchigoJamにBluetoothモジュールを接続します。

○アプリのインストール
 こちらから、APKファイルをダウンロードしてインストールしてください。
※提供元不明のアプリのインストールを許可してから、インストールしてくだしさい。

○使い方
①アプリを起動する前にあらかじめ、Bluetoothモジュールとスマホをペアリングしておきます。
②アプリを起動し、「ペアリングBluetoothデバイス」をタッチします。
 

②接続するBluetoothデバイス(この例では「RNBT-DE41」)をタッチして選択します。
※接続が完了するまで少し時間がかかります。接続エラーが発生した場合は、アプリを再起動してください。
③接続されると次の画面になります。
 
・[LED ON][LED OFF]ボタンで、ビルトインLEDの点灯/消灯
・テキストボックスにBASICのコマンド入力し、[送信]ボタンでコマンドを送信
・行番号を付けて送信すれば、プログラムとして入力される
 
・[音声認識]ボタンで、音声入力開始、認識されたテキストはテキストボックスに入力される


 アプリのプロジェクトファイル(.aia)は、こちらからダウンロードできます。
 プロジェクトファイル(.aia)は、「App Inventor」の[Projects]メニューの[Import project(.aia) from my computer]でインポートできます。

2016年9月18日日曜日

Windows 10 IoT Core Blocklyで遊んでみる

 Windows 10 IoT CoreにBlockly(Googleが提供するビジュアルプログラミング言語)のサンプルが追加されていたので、遊んでみました。
 
 Windows 10 IoT Coreのインストール手順については、以下のページなどを参照してください。

 https://developer.microsoft.com/en-us/windows/iot/GetStarted


必要なもの
Raspberry Pi
Sence HAT


○IoT Core Blocklyyの展開と実行
 IoT Core Dashboardの「サンプルを試す」から、「IoT Core Blocklyy」を展開します。



○サンプルの実行
 メニューからサンプルを選択し、[Run]をクリックします。[Stop]で停止します。続けて別のサンプルを実行する場合は、[Stop]で止めてから、しばらく時間を置かないと上手く動かない場合があります。時間を置いても動かない場合は、ページをリロードして、、[Run]をクリックしてみてください。

・Hartbert


 ジョイスティックを動かうと、「Hello from IoT Core」という文字列がスクロール表示されいます。


・Random bars



・Gravity ball


 重力の方向にボールを移動します。


・Sensor

 温度、コンパス、湿度、圧力センサーの取得値をスクロールで表示します。

・Pong


 ジョイスティックでラケットを移動し、ボールを打ち返すゲームです。


○GIPOの制御
 IoT Core Blocklyyの「Pins」には、GIPOを制御するための「digital write」ブロックがありますが、現状では、動作しないようです。


○補足
 IoT Core Blocklyyは、一度展開すると、スタートアップで自動的に起動されます。Windows 10 IoT Coreを再起動後にブロックエディタを表示するには、ブラウザから「http://your-rpi-name:8000」(your-rpi-nameはIPアドレスでも良い)にアクセスします。
 ただし、ブロックエディタが正しく表示されない場合があります。この場合は、「Device Portal」を開き、「Apps」メニューから「IoTBlocklyBackgroundApp」を削除し、再度、IoT Core DashboardからIoT Core Blocklyyを展開します。

 

2016年9月6日火曜日

DigisparkとPCのシリアル通信

DigisparkPC間でシリアル通信を行うには、DigiUSBライブラリを使います。

ライブラリのインクルード
#include <DigiUSB.h>

DigiUSBライブラリの関数は、次のとおりです。

DigiUSB.begin()
 シリアル通信を初期化します。

DigiUSB.available()
シリアルバッファにあるデータのバイト数を返します。

DigiUSB.read()
 受信データを読み込みます。

DigiUSB.write(byte)
 指定した1バイトのデータを送信します。

DigiUSB.refresh()
 受信バッファをクリアします。

DigiUSB.delay(ms)
 指定時間後に受信バッファをクリアします。

DigiUSB.println(string)
 改行コードを付けて指定した文字列を出力します。

DigiUSB.print(string)
 指定した文字列を出力します。

 DigiUSBライブラリの使用例は、サンプル([ファイル][スケッチの例][DigisparkUSB
])を参照してください。


PC側でデータを送受信するには、DigisparkExampleProgramsに含まれツールを使います。Windowsでは以下のツールを使用できます。

monitor
データの送受信とモニターするためのGUIツール

通信例(サンプルプログラム「Echo)
 

digiscope
 DigisparkからのデータをプロットするGUIツール

 プロットの例(サンプルプログラム「DigiScope)
 
 ※サンプルプログラム中の「float value = analogRead(1);」の記述をfloat value = analogRead(0);」に変更して実行しています。

read
 Digisparkからのデータを受信するコマンドラインツール

write
 Digisparkにデータを送信するコマンドラインツール

receive
 Digisparkからのデータを1度だけ受信するコマンドラインツール

send
 Digisparkにデータを1度だけ送信するコマンドラインツール