スマホでロボットアームを動かす
続き
良い情報を見つけました。
ロボットアームのコネクターが富士通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);でタイミングなんかも変えれる。
これで動くか試して見ようと言う算段です。
また、更新します。