2023-03-27

Pythonで開発するレゴSPIKE Primeと、JS2Pyを使って、JavaScriptで開発可能にしました。 こちら、左右モーターでかわいく動くJavaScriptのプログラムのメイン。 for (;;) { forward(300); wait(500); right(300); wait(500); left(300); wait(1000); } 下記がこのコードを動かすための準備プログラム。HubのマトリクスLEDを光らせるおまけ付き。 import { PrimeHub } from "pybricks/hubs.js"; import { Motor, ColorSensor, UltrasonicSensor, ForceSensor } from "pybricks/pupdevices.js"; import { Button, Color, Direction, Port, Side, Stop } from "pybricks/parameters.js"; import { DriveBase } from "pybricks/robotics.js"; import { wait, StopWatch } from "pybricks/tools.js"; import { Matrix } from "pybricks/geometry.js"; import { randint } from "urandom.js"; const hub = PrimeHub(); const X = 100; const field = [ [0, X, 0, 0, 0], [0, 0, 0, X, X], [0, X, 0, X, 0], [0, X, 0, 0, X], [X, X, 0, X, X], ]; hub.display.icon(field) const m1 = Motor(Port.A); const m2 = Motor(Port.B); function forward(n) { print("forward"); m1.run(n); m2.run(-n); } function right(n) { print("right"); m1.run(n); m2.stop(); } function left(n) { print("left"); m2.stop(); m1.run(-n); } print関数を使うと、Bluetoothを通じてリアルタイムにブラウザ画面に表示してくれて、デバッグに便利です。


こちら動かした様子。JavaScriptのプログラムをJS2Pyで、Python化して書き込み実行します。 ロボは、Matz葉がにロボコンの時に作ったものを組み換えて使用。


「PybricksHub test in JS」
src on GitHub
Python版テストに、JS2Pyを加えて無事動作!エラーが起きた時のわかりにくさは課題です。ひとまず開発者コンソールを見て修正ください。

links
- レゴSPIKEプライムをJavaScriptで開発 on Web
- レゴ SPIKE プライムをC言語で開発 on Mac

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS