2018-12-08

OSCでESP32を制御

OSCの信号をESP32で受信する事が出来ました。
まだ信号が途切れたり色々問題があるのですが・・・
試行錯誤して最終的には曲に合わせて踊らせたい!!

___


__
Ableton毎回合わせないといけない(汗)
OSCSendの設定
HOST 192.168.4.1
Port 8889
ここのOSC Sendを使用するとアドレスも保存される


色々ご教授頂きました、Fさんありがとうございます。

____

告知!!

12/15-16アビオシティ加賀で開催されるnt加賀に参加します。
15日12時から起動実験を行います。
来まっし☆

http://kaga-iotac.org/ntkaga2018/

ポスターに載っとる〜

一緒に石川県をもっと楽しく、もっと面白くしませんか??
パイロット、ダンサー、助手、プログラマー、デザイナー、クリエイター、スポンサー募集中☆

2018-07-11

NT金沢2018起動実験

2018.07/7-07/08
金沢駅もてなしドームにて開催されたNT金沢2018にて起動実験を行いました。
前骨格ロボットさん、パフォーマンズプロジェクトさんとコラボも出来て
貴重なデータが取れました。
楽しかった〜ありがとうございました☆










2018-07-05

ESP32からOSCでAbletonへ行けました。

ESP32からOSCでAbletonへ行けました。
備忘録
いろいろ参考にさせて頂きました、ありがとうございます。
間違いあるかもしれませんが・・・・一先ず前に進みます。
____



____
180704_ESP32_OSC_test11_ableton.ino
_____
#include <WiFi.h>
#include <WiFiUdp.h>
#include <OSCMessage.h>

const char ssid[] = "○○○○○○; // SSID
const char pass[] = "○○○○○○○○";  // password
IPAddress ip(○○○, ○○○, ○○,○○);      //  Dongbeino の固定アドレス
IPAddress ipGateway(○○○, ○○○, ○○, ○○);     //  ゲートウェイ(上と同値)
IPAddress subnet(255, 255, 255, 0);      //  サブネットマスク
IPAddress ipClient(○○○, ○○○, ○○, ○○);     //  クライアント(PC)の固定アドレス

WiFiUDP udp;
const unsigned int port_out = ○○○○;      //  送信先ポート番号
const unsigned int port_in  = ○○○○;      //  受信用ポート番号

void setup() {
  //  ツマミ入力
  pinMode(36, INPUT_PULLUP);
  //  シリアルモニタ(動作ログ)
  Serial.begin(115200); delay(100);
  //  アクセスポイントの構成(固定アドレス)
  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, pass);
  WiFi.softAPConfig(ip, ipGateway, subnet);
  Serial.print("network: "); Serial.println(ssid);
  Serial.print("address: "); Serial.println(WiFi.softAPIP());
  Serial.print("client : "); Serial.println(ipClient);
}
void loop() {

  // Give ADC (analog to digital converter) some time to settle down.
  delay(20);

  //  PC への送信(ツマミ入力)
  int state = analogRead(36);
  OSCMessage mess("/ana36");
  // As a value, add the current value of analog 0 input.
  mess.add(analogRead(36)/32);
  udp.beginPacket(ipClient, port_out);
  mess.send(udp);
  udp.endPacket();
  mess.empty();
      Serial.println(analogRead(36)/32);
  //  つぎへ
  delay(30);                 //  少し待つ(通信速度の調整)
}
______
参考
OSC で ESP と PC を無線でつなぐ
CONTROLLING A MIDI CC IN ABLETON LIVE WITH AN ARDUINO UNO

2018-07-03

ESP32を無線で繋げたい01

BLE接続を試みる
第70回 ESP-WROOM-32をArduinoで触ってみよう(Bluetooth-BLE接続編)
ESP32_BLE_Arduinoをインストール
ArduinoIDEを再起動すると下記が追加される

BLE_clientを書き込むがBluetoothデバイスが表示されず・・断念(汗)
____

SimpleBleDebeviceを書き込んでみるがこれもまたBluetoothデバイスが表示されず・・断念(涙)
___
wifi接続の記事を見つけ試してみる
ESP32がwifiで繋がりました☆

180702_ESP32_wifi_test01

192.168.20.2でhello!と表示

さて次はAbletonからOSCでESP32を制御出来るか??



参考
第70回 ESP-WROOM-32をArduinoで触ってみよう(Bluetooth-BLE接続編)
ESP32の開発ボード(DOIT ESP32 Development Board)をArduino IDEで使ってみる
【備忘録】ESP-32 DevKitCでのWiFi接続方法(APモード)
ESP32 で無線LANを使う
OSC で ESP と PC を無線でつなぐ

ESP32でメカノイドのモーター制御したい01

ESP32でモーターを制御したいと思います。

曖昧な部分が多々ありますが一応動きました。
間違いなどありましたらご指摘くださいませ。

___
使用部品
  • モータードライバー:L293D
  • ESP32
  • メカノイドのモーター
___
配線
bibouroku 
基本下記を参考にしました。

meccanoidのサンプルのanalogWriteはESP32では使用出来ず
色々やってみましたがPWMでの制御がよくわからず
High/LOWのみで制御するように書き換えました
180629_ESP_meccanoids_Motor_test06.ino


※analogWriteはledcWriteに変えてゴチョゴチョすれば出来そう
http://rikoubou.hatenablog.com/entry/2017/06/05/172953

前進、後退、左右転回は出来るようになったので
次はいよいよ無線に挑戦。
___
不明点
一応動くけど電圧とかどうなのか??

__
参考
Arduino と L293D で DC モーターを制御する方法
これはいるのかな??
  • 10kΩ 抵抗 2個
  • 0.1μF セラミックコンデンサ 1個
  • 1 μF アルミ電解コンデンサ
[Arduino] Contrôler des moteurs DC avec le composant L293D
Arduino DC motor speed and direction control with L293D
ESP32-DevKitCを使ってみた〜環境構築からタッチセンサによるLチカまで〜(図あり)
ESP-WROOM-32 に関する記事です。(詳細)
ソースに絡まるエスカルゴ
LED_PWMの実験(ESP-WROOM-32)
(Image from https://garretlab.web.fc2.com/arduino/lab/esp32_ledc/index.html)

2018-06-18

ESP32でメカノイドのサーボ制御したい03(ツマミ)

前回、無事サーボが動いたので次はツマミでサーボを制御したいと思います。
使用するツマミは10kΩの可変抵抗(Bカーブ)

__
ツマミからのデータを36pin(A0)に入力

void loop() {


  int hy01_val;
  hy01_val = analogRead(36); //ツマミからのデータを36pin(A0)に入力

  Serial.print("HEAD_YAW ="); //文字を送信
  Serial.println(hy01_val/16); //値を送信maxが4096なので16で割って大体255にする

  setJoint(HEAD_YAW, hy01_val/16);//36pin(A0)に入力された値をHEAD_YAWに代入
  delay(20);


___


___

◆不明点

  • 挙動がイマイチ(値が上手く取れてない?)
  • 回転が反対なのでプラスとマイナスを逆にした(プログラム上で値を反転できる?)
  • 0〜4096を0〜255にするには?

___ 

◆資料

ADCに使えるピン
定数GPIOピン
A036
A339
A432
A533
A634
A735
A104
A110
A122
A1315
A1413
A1512
A1614
A1727
A1825
A1926
A1,A2は定義されていない。
GPIO0、2は書き込みモードの制御
GPIO15,12も他の機能で使われることがある
___
◆参考
ESP-WROOM-32に関するTIPS

ESP32でメカノイドのサーボ制御したい02

さて今度は本題のESP32でサーボを動かしてみたいと思います。

改めてESP-WROOM-32とは・・・
WifiとBluetoothが扱えるモジュールで
ArduinoIDEで開発ができるがanalogWriteはなく
動作電圧は3.3Vなどいろいろ違いがあるらしい。

導入方法・Lチカの記事(ESP-WROOM-32を使ってみる)

いろいろ調べてみるとESP-WROOM-32単体の動作電圧は3.3Vだが
今回使用するESP32-DevKitC開発ボードにはNCP1117というレギュレーター(調節装置)が搭載されているので5Vで動かしても良い(多分)
回路図

いつも使っているブレッドボードでは穴が足らなくなるので2個をまたいで使用

___
さて・・・どう繋げる??
ピンマップ
こんな感じで
___
試しに前回のプログラムMeccanoid_Servo_test_3.inoのpinを25に変更して
コンパイルしたらエラー(analogWriteはダメ?)

___
analogWriteをledcWriteに変更
エラーが消える
___
サーボ動きました☆
180618_ESP_meccanoids_Servo_test02.ino



___
ヒント
ピン設定をArduinoとESP32で切替たい時は
#ifdefで設定しておくと楽


___
参考
ESP-WROOM-32を使ってみる
【ESP32】PWMでモーターを制御する方法
analogWrite(pin, value)
【ESP32】5Vピンについて
Wi-Fi+BLE無線モジュールESP-WROOM-32搭載開発ボード【ESP32-DEVKITC】