スマホでロボットアームを動かす

スマホでロボットアームを動かす

 

続き

良い情報を見つけました。

ロボットアームのコネクター富士通FCN-365Pらしいと言うことです。

 

画像からネットで探していたら似ているのを見つけてメーカーのホームページでpdfの詳細を確認。 間違いない様です。

注文済み

 

届いたら直ぐにでも試してみたいので、ソフト側も急がないと。

 

 

ESP32で信号のやり取りが出来るようにプログラムして見ました。

スマホとの接続は無しでESP32単体で動作確認できる様に、ボタン操作で”C”、”F”が送れるようにしました。

データをセットしてクロックを送るプログラム、そしてその様子をLEDで確認も出来ます。

今のところ予測でプログラムしているだけで実際のところ、動くかは分かりません。

 

"F"ハンドオープン

LEDが揃ってないので見にくいですが 01100100 "F" です。

 

"C"ハンドクローズ

LEDが揃ってないので見にくいですが 00110100 "C" です。

この信号をセットしてストローブ信号を送るつもりです。

 

チュートリアル「Chapter 3 LED Bar」を基に作ったプログラム

byte ledPins[] = {15, 2, 0, 4, 5, 18, 19, 21};
int ledCounts;
boolean strobe_flag = false;

void setup() {
 ledCounts = sizeof(ledPins);
 for (int i = 0; i < ledCounts; i++) {
  pinMode(ledPins[i], OUTPUT);
 }
 pinMode(22, OUTPUT);
 pinMode(23, INPUT);
 pinMode(34, INPUT);
 pinMode(35, INPUT);
 digitalWrite(22, HIGH);
}

void loop() {
 if (digitalRead(34) == LOW) {
  digitalWrite(ledPins[0], LOW);
  digitalWrite(ledPins[1], LOW);
  digitalWrite(ledPins[2], HIGH);
  digitalWrite(ledPins[3], LOW);
  digitalWrite(ledPins[4], LOW);
  digitalWrite(ledPins[5], HIGH);
  digitalWrite(ledPins[6], HIGH);
  digitalWrite(ledPins[7], LOW);
  delay(100);
  strobe();
 }
 else if (digitalRead(35) == LOW) {
  digitalWrite(ledPins[0], LOW);
  digitalWrite(ledPins[1], LOW);
  digitalWrite(ledPins[2], HIGH);
  digitalWrite(ledPins[3], LOW);
  digitalWrite(ledPins[4], HIGH);
  digitalWrite(ledPins[5], HIGH);
  digitalWrite(ledPins[6], LOW);
  digitalWrite(ledPins[7], LOW);
  delay(100);
  strobe();
 }
 else
  all_off();
}

void all_off() {
 for (int i = 0; i < ledCounts; i++) {
  digitalWrite(ledPins[i], LOW);
 }
 strobe_flag = false;
}

void strobe() {
  if (strobe_flag) 
   return;
  strobe_flag = true;
  digitalWrite(22, LOW);
  delay(100);
  digitalWrite(22, HIGH);
}

ボタンを押すたびにデータをセットしてストローブ信号を送る

delay(100);でタイミングなんかも変えれる。

 

これで動くか試して見ようと言う算段です。

 

また、更新します。

 

mckeechan.hatenadiary.jp