AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
UIAPduino をブラウザから動かすページ集。ブロック・Ruby・C++ のどれでも書けて、WebHID でつながります。インストール不要。
Loading the full README.
Read the full README ↗UIAPduino(HID ProMicro CH32V003)をブラウザから動かすページ集です。 インストールもアカウントも要りません。Chrome か Edge で開くだけです。
🌐 サイト URL: https://tarosay.github.io/uiap-hid-web/
ブロックで動かす方法はもう一つあって、トップページから Xcratch + UIAPduino にも行けます(リポジトリ)。
ブラウザとマイコンは WebHID API でドライバなしに直接やり取りします。 GitHub Pages で公開しているので、インストールは要りません。
| ページ | スケッチ例 | 状態 |
|---|---|---|
| HID Console | HidPrint.ino | ✅ 公開中 |
| HID Graph | HidGraph.ino | ✅ 公開中(実機確認済み) |
| HID-Serial Bridge | HidMonitorTest.ino / HidBridgeTest.ino | ✅ 公開中 |
| HID 接続チェック | スケッチ不要 | ✅ 公開中 |
| ページ | スケッチ例 | 状態 |
|---|---|---|
| SD Filemanager | WebHID_SD.ino | ✅ 公開中 |
| MIDI → MIDB Converter | MidbPlayer.ino | ✅ 公開中 |
| ページ | スケッチ例 | 状態 |
|---|---|---|
| URB Lab | ブラウザ内で生成(コンポーネント選択式) | ✅ 公開中 |
| URB EE Lab | ブラウザ内で生成/ビルド済みファームを直接書き込み | ✅ 公開中(24FC256 / CAT24M01WI で実機確認済み) |
| URB Block Lab | 同梱ファーム 1 本(⚙ 準備 から書き込み) | ✅ 公開中(CAT24M01WI / 24FC256 で実機確認済み) |
Wakayama.rb コミュニティが開発した、Ruby 構文で UIAPduino を制御できる組み込み Ruby 環境です。 mruby のビルドでは rake が必要な mrbgems の取捨選択と統合を、URB Lab はすべてブラウザ内で行います。 PC に Ruby・クロスコンパイラ等のビルド環境を整える必要はありません。
.urb)にコンパイルmain.urb という名前で SD に保存すると、電源投入時に自動実行Tm(絶対周期) — every_ms 100 do … end は「前回から 100ms」ではなく
開始からの絶対時刻で起こすので、何周回しても周期がずれません。Timer で
区間の実測(ms / µs)もできます。SD 版・EE 版の両方で使えますPp(疑似並列処理) — Thread.new do … end で、本体とは別の流れを 2 本まで動かせます。
一度に動くのは 1 本だけで、sleep / wait_ms で待つあいだに、ほかの流れへ切り替わります(疑似マルチタスク)。
「ずっと」で NeoPixel のパターンを動かしながら、LED の明暗や音階を独立して続けられます。
th = Thread.new do … end と名前を付けると、外側の流れから th.pause(止める)・
th.resume(再開する)・th.restart(最初から動かす)が使えます。同じピンを外側だけで使いたいときに、
その流れを止めておけます(止めたあとの PWM や音は、そのときの状態のまま)。
Thread.new はプログラムのいちばん外側にだけ書け、2 本なら続けて書きます
(pause などが指す流れを、書いた順に決めるため)。
EE 版と URB Block Lab で使えます(SD 版には入れていません)pwm.melody("C4:4 D4 E4 C4", 120) で曲を鳴らせます(Pw)。 曲の文字の書き方は
MakeCode・Xcratch と同じです(音名 C〜B・後ろの数字はオクターブで省くと 4・# / b で半音・
- / R で休符・:数字 で長さ、単位は 16 分音符)。コンパイラが書き込む前に
周波数・duty・待ちの命令へ展開するので、ファームは変えていません。
1 音の終わりに 40 ms の無音を入れ、同じ高さの音が続いても分かれて聞こえるようにしています。
曲の文字はリテラルだけ、テンポは数字だけで 20〜500(省くと 120)。
EE 版と URB Block Lab で使えます(SD 版のコンパイラには入れていません)URB EE Lab は、SD カードの代わりに
I2C EEPROM(24FC256 32KB / CAT24M01WI 128KB)にプログラムと $変数 を保存する版です。
CAT24M01WI は A1 の配線でスレーブアドレスを 0x50/0x51 と 0x52/0x53 のどちらにもできます
(24FC256 と同じバスに載せるときは 0x52 側)。
SD カードを使わないぶん SPI が丸ごと空き、その上に載る機能が増えます。
UIAPrubyVm 12,504 B → UIAPrubyEeVm 9,144 B)。
コンポーネントに使える余地が約 1.9 倍になり、Q1 + Se + Np + Ec が同時に載るNp / Nr(NeoPixel) — SPI1 が空いたことで初めて可能になった。DIN はピン 8 固定Se(UART) — GPS 受信やマイコン間通信に使える。ピン 15/16Ev / Ec(EEPROM 変数) — SD 版の Ve / Sv に相当。ファイル操作が
アドレス計算 1 回になり、数値変数は約半分(+1,512 B → +820 B)$変数 の現在値を読み出せる(読み取り専用)。画面に出ている数値配列を CSV で保存できる(添字で揃えて縦に並べる)。
配列の「全部読む」は、途中で読み込みエラーが出ても読めた要素を残して止まった要素から読み直す。
同じ位置で 10 回続けて失敗したら止まり、もう一度押すと続きから読み足すコンポーネントを選んで .ino を生成し Arduino IDE で書き込む道に加えて、
ビルド済みのファームをブラウザから流し込む道を用意しました。
rv003usb ブートローダ(1209:B803)へ WebHID で書き込みます。
| 選ぶもの | 中身 |
|---|---|
| サーボ版(既定) | Pw + Q1 Ad Se Np Us Rn Ec |
| ブザー版 | Tn + Q1 Ad Se Np Us Rn Ec |
| 自分で選ぶ | 従来どおり。コンポーネントを選んで .ino をビルド |
Tn(ブザー)と Pw(サーボ)は同じタイマーの分周器を共有するため同時に選べません。
選ぶのは「ブザーか、サーボか」だけで、ほかは全部入りです。
ファームはページに base64 で埋め込んであり、焼く前に**生成される .ino の SHA-256 を
その場で計算して突き合わせます。**食い違えば書き込まずに止まるので、
「ページだけ新しくてファームが古い」状態で焼くことがありません。
✅ 24FC256(32KB)と CAT24M01WI(128KB)の両方で実機確認済みです (プログラム転送・自動実行・
$変数と配列の読み出し・ブラウザからのファーム書き込み・NeoPixel の動作)。 CAT24M01WI は 64KB 境界(0x10000)をまたぐ読み書きも確認しました。 ピン 6 の ADC / PWM も確認しました(PWM は URB Block Lab の基板で)。 電源を切ってからの永続と、Seのマイコン間通信はこれからです。
✅ CAT24M01WI(0x50/0x51)を載せた基板で実機確認済みです。 同じロットの 2 枚で、ギャラリーの「LED 点滅」「ボタンで LED ON」を書き込んで動くことを確かめました。 ✅ 24FC256(0x50)でも実機確認済みです(ブレッドボード。変数 7 個・記録・配列の読み書き・ 配列の上限 5,410 個・大きすぎる配列と範囲外の番号のエラー)。 24FC512 は見分ける仕組みだけ入れてあり、石が手元に無いので未確認です。
This is the beginning of the README. Read the rest at the original. Read the full README ↗