2026年6月27日土曜日

mmbasic on linux

 https://qiita.com/ksakabe/items/f14c89bdbeeadb3848ea でmmbasic on linux記事あり

edit終了はctlC,picocom 終了はctla+ctlx

-------------------------------------------------------

sudo picocom -b 115200 --omap delbs /dev/ttyACM0

これでeditでバックスペースが効くようになる

picocomでローカルエコーを外す(無効にする)には、オプションを何も付けずに起動するか、明示的に無効化するキー操作を行います。

実は picocom標準(デフォルト)でローカルエコーが「オフ」になっています。そのため、起動コマンドに --echo を付けなければ自動的にオフになります。
1. コマンドで外す方法(標準状態)
何もオプションを付けずに起動します。
bash
sudo picocom -b 115200 /dev/ttyACM0
コードは注意してご使用ください。
2. 起動中にキー操作で切り替える方法
すでに接続している画面の中で、ローカルエコーのオン/オフをリアルタイムに切り替えることができます。
  1. Ctrl + A を押します(picocomのコマンドモードに入ります)。
  2. その後に Ctrl + C を押します。
画面に [local echo is commands/off] のように表示され、ローカルエコーが切り替わります。入力した文字が2重に表示される場合は、このキー操作を一度試してみてください。
3. それでも2重に入力される場合
もし picocom のローカルエコーをオフにしても文字が2重に表示される場合は、MMBasic(デバイス)側が入力された文字をそのまま送り返して(エコーバックして)いる状態です。
その場合は、MMBasicのプロンプトで以下のコマンドを実行して、デバイス側のエコー設定を変更してください。
basic
OPTION ECHO OFF
コードは注意してご使用ください。
これらを実行しても入力がうまくいかない、または画面が崩れてしまうなど、現在の具体的な症状(文字が2重になる、何も表示されない、など)を教えていただけますか?状況に合わせた解決策をご案内します。
あなたが話した内容: editでバックスペースがききません
MMBasicの内蔵エディタ(EDITコマンド)でバックスペースキーが効かない原因は、Linuxのターミナルが送信しているキーコード(DEL / 0x7f)と、MMBasicが期待しているコード(BS / 0x08)が一致していないためです。 [1, 2]
以下のいずれかの方法で解決できます。最も手軽な 対処法1(オプション追加) をまずお試しください。

2026年6月19日金曜日

raspberry pi pico/w , esp8266,esp32 by arduinoIDE using freertos

port uf2boardとなるようにブートモードでrapsicoをつなぐがportが出てこん場合は

以下の設定変更を実施する必要あり

[ツール]→[Upload Method]の設定値 default uf2とする

[ツール]→[Operating system]の設定値 freeRTOS SMPとする

以下が書き込み成功したらserial monitorのportをCOMnにすると

どんな表示スピードでもOKとなる なんでやろ?

#define __FREERTOS 1
#include <FreeRTOS.h>
#include <task.h>

// タスク1:Lチカを行う処理
void taskBlink(void *pvParameters) {
  pinMode(LED_BUILTIN, OUTPUT);
  while(1) {
    digitalWrite(LED_BUILTIN, HIGH);
    vTaskDelay(pdMS_TO_TICKS(500)); // 500ms待機
    digitalWrite(LED_BUILTIN, LOW);
    vTaskDelay(pdMS_TO_TICKS(500));
  }
}

// タスク2:シリアル通信でメッセージを出力
void taskPrint(void *pvParameters) {
  while(1) {
    Serial.println("Task 2 is running...");
    vTaskDelay(pdMS_TO_TICKS(1000)); // 1000ms待機
  }
}

void setup() {
  Serial.begin(115200);

  // タスク1の生成 (タスク関数, タスク名, スタックサイズ, パラメータ, 優先度, ハンドル)
  xTaskCreate(taskBlink, "BlinkTask", 128, NULL, 1, NULL);

  // タスク2の生成
  xTaskCreate(taskPrint, "PrintTask", 128, NULL, 1, NULL);

  // vTaskStartScheduler() は自動的に呼ばれるためsetup内に記述不要
}

void loop() {
  // FreeRTOSを使用している場合、loop関数は使用しないか、
  // 最低でも vTaskDelay などの待機処理を組み込む必要があります。
}

2026年6月7日日曜日

tinygo-wioterminal(button-int-with-chatteringOK)

// チャタリング対策ずみコード チャット君に聞いた 

package main

import (

"machine"

"time"

)


func main() {

button1 := machine.BUTTON_1

button1.Configure(machine.PinConfig{

Mode: machine.PinInput,

})


led := machine.LED

led.Configure(machine.PinConfig{

Mode: machine.PinOutput,

})


var changed bool


button1.SetInterrupt(machine.PinToggle, func(machine.Pin) {

changed = true

})


for {

if changed {

// チャタリングが収まるまで待つ

time.Sleep(30 * time.Millisecond)


led.Set(button1.Get())


changed = false

}


time.Sleep(1 * time.Millisecond)

}

}

2026年6月5日金曜日

esp8266 async server not OK / esp32 async server OK

 lion(wmos)d1 esp w-room-02でいけた.asyncはだめのようだ。。。。チャットくんによるとRAMがたりんげな

esp32 dev module(devkit-c中華パチもん)でasyncばっちりでした

xiao rp2040 & microblocks 最高

 arduinoIDEめちゃ遅い、platformIOうごかん、micropython,ardupy,circuitpython全滅

しかしhttps://wiki.seeedstudio.com/ja/xiao_rp2040_microblocks/ microblocks偉大なり

2026年6月3日水曜日

mmbasic on raspberry pi pico/w(ドラフト)

 https://qiita.com/ksakabe/items/3d8f97e6fe8b1122da72 イントロサイト

https://qiita.com/ksakabe/items/f14c89bdbeeadb3848ea にあるファームウエア群は

https://geoffg.net/picomite.html にある 

https://qiita.com/ksakabe/items/f14c89bdbeeadb3848eaで各々の比較がある

とりあへずPicoMiteRP2040をいれてみた

teratermは115200baudにして、受信をauto、送信をcr+lfにした

フルスクリーンエディタの起動と操作手順
  1. エディタの起動
    コマンドプロンプト(>)の状態で、以下のいずれかを入力・実行します。
    • EDIT と入力して Enter キーを押す
    • または、キーボードの F4 キー を押す
  2. プログラムの入力
    画面全体がエディタに切り替わります。キーボードで自由にBASICのコードを入力・編集してください。
  3. 保存してエディタを閉じる
    入力が終わったら、キーボードの F2 キー を押すと、プログラムを保存して元のコマンドプロンプト画面に戻ります。
  4. プログラムの実行
    プロンプトに戻ったら RUN と入力して Enter キーを押すことで、作成したプログラムを実行できます。
    [1, 2]

エディタ内の便利な機能(ショートカットキー)
エディタ起動中、画面の一番下の行にファンクションキーの機能が表示されます。主なショートカットキーは以下の通りです: [1]

  • F2 キー:プログラムを保存してエディタを終了する
  • F4 キー:変更を破棄して(保存せずに)エディタを終了する
  • F7 キー:行のコピー
  • F8 キー:行の切り取り(カット)
  • F9 キー:行の貼り付け(ペースト)
  • F10 キー:検索と置換 [1]
ーーーーーーーーーーーーーーーーーーーーーーー
Dim Float t, h 
Dim Integer pin = 22 ' 使用するピン番号 
 Print "DHT温湿度センサーの測定を開始します..." 
 Pause 1000 ' センサーの起動待ち
Do ' DHTタイプの指定 (DHT11またはDHT22をコメントアウトで切り替え) 
 DHT pin, DHT22, t, h 
' DHT pin, DHT11, t, h 
' エラーチェック 
 If t = -999.0 Then Print "センサーの読み取りに失敗しました" 
 Else Print "温度: "; Str$(t, 3, 1); " °C" Print "湿度: "; Str$(h, 3, 1); " %" 
 EndIf ' 2秒間隔で測定 (DHTの仕様上、最低でも2秒の間隔をあけてください) 
 Pause 2000 
Loop 上記はうごくかどうか不明

チャット君によれば以下の通りでうごいた
MMBASICの HUMID コマンドは、デフォルトで上位モデルの「DHT22(AM2302)」を読み取る設定になっています。DHT11を使用する場合は、コマンドの末尾に 1(または , 1, DHT11)という引数を明示的に追加する必要があります。 [1, 2]
DHT11に対してDHT22用のデータ解析を行うと、データの桁(ビット配置)が異なるため、湿度が 1000%100% といった異常値として表示されてしまいます。
修正コード
Device HUMID GP28, temp, humidity の行の末尾に、DHT11を意味する引数「1」を追加してください。 [1, 2]
basic
' DHT11 センサー読み取りサンプル(修正版)

Dim FLOAT temp, humidity

Do
  ' ★ 末尾に「, 1」を足してDHT11モードに指定します
  Device HUMID GP28, temp, humidity, 1
  
  Print "Temperature: "; temp; " C"
  Print "Humidity:    "; humidity; " %"
  Print "-------------------------"
  
  ' DHT11は連続読み取りに弱いため、少し長め(2秒)に待つのが確実です
  Pause 2000
Loop

うごいた!

そのほかhttp://blog.livedoor.jp/yokoshima_m/tag/MMBASICも参考になりそう。。。