2025年12月14日日曜日

hstp37/dolittle//xcratch/mitapp(other page) on windows with arduino

 hsp37ではarduino.asが同梱されておりstandardfirmata.inoでうごく

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

xcratchはstandardfirmata.inoでうごく

 !が出ている場合はcomを選択してopen!  でないとgpioが制御できない

-----------------------ドリトル通信は--firmataでない--------------------------------------------------

WebAPI 完動:getでjsonを返すサーバを書けばいいだけ

  • WebAPIサーバにアクセスして情報を取得するためのオブジェクトです。
  • GETでのリクエストに対応しています。
  • オンライン版では利用できません。
  • 作る: WebAPIオブジェクトを作成します。
    • (例)waという名前でWebAPIオブジェクトを生成します。
 wa=WebAPI!作る。
  • 読む: Webクライアントオブジェクトを作成します。
    • オブジェクトのプロパティでURLとパラメータを設定します。urlの設定は必須です。
    • 取得データはJSON形式に対応しています。取得したデータをプロパティと配列の構造に変換したオブジェクトを返します。
    • (例)wという名前でWebクライアントオブジェクトを生成します。
 wa=webapi!作る。
 wa:url="https://zip-cloud.appspot.com/api/search"。
 wa:zipcode="0790177"。
 ret=wa!読む。
 フィールド!(ret:results_1:address3)作る。

https://dolittle.eplang.jp/doku.php?id=ch_arduino 

で勉強 linux/raspberry piはうまくいかん なんでやろ? (xcratchも同様。。。)

以下で通信する(firmata的)

void setup(){
  Serial.begin(9600);
  Serial.write(' ');
}
void loop(){
  int wait=5;
  if (Serial.available() > 0) {
    byte in = Serial.read();
    byte cmd = in & 0xe0;
    byte port = in & 0x1f;

    switch (cmd) {
    case 0x40: // pinMode(Dout)
      pinMode(port ,OUTPUT);
      delay(wait);
      break;
    case 0x60: // pinMode(Din)
      pinMode(port ,INPUT);
      delay(wait);
      break;
    case 0x80: // Dout
      delay(wait);
      if (Serial.read() == 1) { digitalWrite(port, HIGH); } else { digitalWrite(port, LOW); }
      break;
    case 0xA0: // Din
      Serial.write(digitalRead(port));
      break;
    case 0xC0: // Aout
      delay(wait);
      analogWrite(port, Serial.read());
      break;
    case 0xE0: // Ain
      Serial.write(analogRead(port)/4);
      break;

    default :
      break;
    }
  }
}

0 件のコメント:

コメントを投稿