2017年5月21日日曜日

バックアップのためにコピーした「*** - コピー.ino」で宣言重複エラー

なぜか変数、定数が重複してるよ!っていうエラーが消えなくてハマってました。
原因分かったので残しておきます。

NG事象①

ソース
#define LED_PWM_PIN 0     // 照明用PWMピン
エラー
LED_Light:4: error: expected unqualified-id before numeric constant
 #define LED_PWM_PIN 0     // 辣ァ譏守畑PWM繝斐Φ
                     ^
C:\Users\admin\Documents\arduino\LED_Light\LED_Light - 繧ウ繝斐?シ.ino:14:5: note: in expansion of macro 'LED_PWM_PIN'
意訳:
expected unqualified-id before numeric constant
数値は再定義できないよー。
('LED_PWM_PIN'が0で定義済みのため。「#define 0 0」で認識している。)

in expansion of macro 'LED_PWM_PIN'
LED_PWM_PINは定義済みだよー。

NG事象②

定数駄目なら、変数にしてみた。

ソース
int LED_PWM_PIN = 0;     // 照明用PWMピン

エラー
C:\Users\admin\Documents\arduino\LED_Light\LED_Light - 繧ウ繝斐?シ.ino:14:5: error: redefinition of 'int LED_PWM_PIN'
LED_Light:4: error: 'int LED_PWM_PIN' previously defined here
 int LED_PWM_PIN = 0;     // 辣ァ譏守畑PWM繝斐Φ
redefinition of 'int LED_PWM_PIN'

再定義だよー。


原因:

バックアップ用にコピーしたファイルもArduino IDEが読み込んで、一緒にコンパイルしていたため、変数重複のエラーが発生していた。
「 - コピー」が文字化けして、気づきにくい!

NG時のフォルダ構成:
LED_Light
├LED_Light.ino
└LED_Light - コピー.ino

対策:

フォルダ作成して、その中に入れれば解決しました。
LED_Light
├LED_Light.ino
└bk
 └LED_Light - コピー.ino



2017年4月12日水曜日

SourceTreeからBitbucketにログインできなくなった(ユーザ名でのログイン禁止になった)

前までログインできてた、SourceTreeでBitbucketにログインできない!
WinでもMacでもNG。

Authenticate
Login required for:bitbucket.org
User:***
Password:
というダイアログが出て、パスワード入力を促されます。

試しにWebのBitbucketにログインしようとしたら、
ユーザー名でログインすることはできなくなりました。代わりに Atlassian アカウントのメール アドレスをご利用ください。
とエラーメッセージが。
原因はこれですね。

SorceTreeのメニュー>ツール>オプション>認証>保存されたパスワード
からbitbucketを削除してSourceTreeを再起動。

フェッチで動作確認。
あれれ、前のユーザ名が残ってるな。

これかな?
メニュー>リポジトリ>リポジトリ設定>選択して編集
URL/パス のusername@を削除。
一番下のユーザ名のテキストボックスをメールアドレスに変更。

フェッチで動作確認。
Authenticateが出るので、Usernameにメールアドレス入れて、Password入れてLoginをポチ。

OK!解決!




2017年4月9日日曜日

moosoftさんのROBOBA048とROBOBA049でLチカとDF Playerで曲再生


初級者向けにPDFの補足をまとめてみました。
ご参考に。


■全体の流れ

PDF ESP-WROOM-02(ESP-8266EX) & DFPlayer Mini (MP3 再生モジュール) P4でファーム更新 P5でArduino IDE設定 スケッチ書込み Wifiでアクセス

■手順補足

①解凍パスワード間違い(2017/4/9時点)

P4 <ファームウエア更新> ツール Flash_tool_2.4.zip の解凍パスワード 誤:electrrodragon 正:electrodragon

②USBドライバ

Win10の場合。 デバイスマネージャから 他のデバイス>「FT231X USB UART」を右クリック ドライバーソフトウェアの更新>ドライバーソフトウェアの最新版を自動検索します。 でドライバ更新できた。
ポート(COMとLPT)に 「USB Serial Port(COM*)」と表示されればOK。(*は数字)

③SDKダウンロード

PDFのP4に記載のSDKのページへ。
http://espressif.com/en/products/hardware/esp8266ex/resources



③Download Path Config

pdfの画像の通りになればOK。 左のチェックをオン。 ...でエクスプローラで選択か、パスを入力。 「C:\Users\admin\Downloads\」の部分は、ダウンロードしたパスを指定。 C:\Users\admin\Downloads\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin\esp_init_data_default.bin 0x00000 C:\Users\admin\Downloads\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin\at\512+512\user1.1024.new.2.bin 0x01000 C:\Users\admin\Downloads\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin\blank.bin 0x7e000 C:\Users\admin\Downloads\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin\blank.bin 0xfe000 C:\Users\admin\Downloads\esp8266_nonos_sdk_v2.0.0_16_08_10\ESP8266_NONOS_SDK\bin\esp_init_data_default.bin 0xfc000 pdfの手順で書き込みの箇所でツールの「start」ボタンを押す。 「FINISH完成」が表示されれば書き込み完了。

④IDEの設定

メニュー>ファイル>環境設定>追加のボードマネージャのURL に以下を入力し、OKを押す。 http://arduino.esp8266.com/stable/package_esp8266com_index.json ツール>ボード>ボードマネージャ ESP8266で検索し、ESP8266をインストール。

⑤DFPlayer-Mini-mp3ライブラリ追加

https://github.com/DFRobot/DFPlayer-Mini-mp3

⑥スケッチ書き込み

名前がかぶらないように、70行目のSSIDを変更。 const char *ssid = "ESP-Moo"; ↓ const char *ssid = "ESP-Moo-Hoge"; ディップスイッチをDLにして書き込み。完了したら戻す。

⑦Wifiアクセス

スマホから⑥で設定したWifiに接続。 ブラウザで「192.168.4.1」にアクセスする。

■資料

その他のサンプル http://moosoft.jp/index.php?option=com_content&view=article&id=108&Itemid=144 DFPlayer Mini サンプルアプリ http://moosoft.jp/index.php?option=com_content&view=article&id=110:roboba048roboba049-&catid=55:wi-fi-&Itemid=130

2017年3月16日木曜日

「スペース・デジミン」Arduinoと赤外線センサーを使ったテルミンデバイス

ソフトウエアエンジニアが、ハードの世界に飛び込んで、頑張って作った1作目。
16年2月頃にArduinoの存在を知って、4月~7月の約3カ月で作成しました。
せっかくなので、記録を残しておきます。

NT京都に出展します!ぜひ演奏しにきてください!




動画

テスト演奏

ジミーペイジとセッション


■テーマ

  • なめらかな音程変化
  • 本物のテルミン同様の操作性(右手で音程、左手で音量)
  • スペーシーなディレイ!!

■材料

ハード


ソフト


■頑張りポイント

コード最適化

赤外線センサ2つの値を読んで、MOZZIで音作って、SRAMでディレイ処理してってやると、処理が追い付かずノイジーになってしまいました。
analogRead()や、Sramのライブラリを最適化しました。
インライン関数化や、ビットシフトで計算等でミリミリした改善。

センサ安定化

赤外線センサの値が安定しないので、別電源にしてみたり調べまっくたり実験しまくって、100ufのコンデンサを付けると安定することがわかりました。

センサ値を音程に変換する数式


こんな感じで試行錯誤して決めました。

その他

ケースの加工が大変だった!何とかうまい具合にケースに収まった!

■今後の予定

時間に余裕が出来れば、機能追加したいなー。
  • 音階表示
  • カリブレーション
  • 16bit

■参考サイト

Qiita Arduino UNOで SPI接続のSRAM(23LC1024)を使ってみる