Недавно я разрабатывал пользовательские блоки для MIT's Scratch для управления оборудованием на основе Arduino.MIT's Scratch также основан на JavaScript.Поэтому, чтобы создать свой собственный блок, вам нужно написать внутренний файл пользовательского блока в JavaScript.
Пакет, который я использую для управления Arduino, называется Johnny-Five, и пока я могу запуститьуправляющий JS-файл Arduino через CommandWindow (cmd).Но я не могу добавить тот же JS-код управления Arduino в конец внутреннего кода JS моего Scratch-блока.Для этого я использовал пример кода расширения Scratch из GitHub здесь и упомянул имя пакета "Johnny-Five" в начале.(Если это не правильно, это потому, что я новичок в JavaScript) Позже в коде функции ext.wait_random = function(callback) {
я разместил свой собственный код вместо кода random wait
.Но, в конце концов, это, похоже, не работает.
Любая помощь будет очень признательна.
Опять же, цель этой работы - управлять пользовательским оборудованием на базе Arduino с помощью Scratch.блоки.
Вот мой код.Вы можете проверить код расширения в ScratchX.Описание упоминается в ссылке GitHub, которую я упоминал ранее.
tension demonstrating a blocking command block */
/* Sayamindu Dasgupta <sayamindu@media.mit.edu>, May 2014 */
var five = require("johnny-five");
new (function() {
var ext = this;
// Cleanup function when the extension is unloaded
ext._shutdown = function() {};
// Status reporting code
// Use this to report missing hardware, plugin or unsupported browser
ext._getStatus = function() {
return {status: 2, msg: 'Ready'};
};
// Functions for block with type 'w' will get a callback function as the
// final argument. This should be called to indicate that the block can
// stop waiting.
ext.wait_random = function(callback) {
var board = new five.Board();
board.on("ready", function() {
console.log("Ready!");
var led = new five.Led(13);
led.blink(500);
});
};
// Block and block menu descriptions
var descriptor = {
blocks: [
['w', 'wait for random time', 'wait_random'],
]
};
// Register the extension
ScratchExtensions.register('Random wait extension', descriptor, ext);
})();