mirror of
https://github.com/ocogeclub/ocoge.git
synced 2024-11-21 15:19:48 +00:00
990 lines
34 KiB
HTML
990 lines
34 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
|
|
<link rel="stylesheet" href="./node_modules/dracula-prism/dist/css/dracula-prism.min.css">
|
|
</link>
|
|
<link rel="stylesheet" href="./node_modules/prismjs/plugins/line-numbers/prism-line-numbers.min.css">
|
|
</link>
|
|
<link rel="stylesheet" href="./fonts/css/all.min.css">
|
|
</link>
|
|
<link rel="stylesheet" href="./index.css">
|
|
</link>
|
|
<link rel="shortcut icon" type="image/png" href="https://ocoge.club/assets/img/favicon.png">
|
|
<meta property="og:url" content="https://ocoge.club/demo/" />
|
|
<meta property="og:title" content="『オコゲ』Web 体験版" />
|
|
<meta property="og:description" content="ブロックプログラミングを体験してみましょう" />
|
|
<meta property="og:site_name" content="『オコゲ』Web 体験版" />
|
|
<meta property="og:image" content="https://ocoge.club/assets/img/mimmy_360.webp" />
|
|
</head>
|
|
|
|
<body>
|
|
<!-- コードダイアログ -->
|
|
<dialog id="codeDlg">
|
|
<div id="dlgTitle">Source Code:</div>
|
|
<pre id="dlgContent" class="line-numbers"><code id="code"></code></pre>
|
|
<button id="dlgClose" title="このダイアログを閉じます。">閉じる</button>
|
|
<button id="dlgExport" title="ソースコードを保存します。">保存</button>
|
|
</dialog>
|
|
|
|
|
|
<!-- ツールバー(左) -->
|
|
<div class="oc_toolbar">
|
|
<div class="toolbar-left">
|
|
<span class="appTitle" title="ocoge: code generator" onclick="testfunc()"><span class="o">お</span><span
|
|
class="co">こ</span><span class="ge">げ</span></span>
|
|
</div>
|
|
|
|
<!-- ツールバー(右) -->
|
|
<div class="toolbar-right" id="toolbar-right">
|
|
<button class="toolbarButton" title="JavaScriptのプログラムコードを表示・保存します。" onclick="ugj_showCode()"><i
|
|
class="fas fa-code"></i> CODE</button>
|
|
<button class="toolbarButton" title="ワークスペースや設定を削除して最初から始めます。" onclick="ugj_newWorkspace()"><i
|
|
class="fas fa-file"></i> 新規</button>
|
|
<button onclick="ugj_loadWorkspaceFromFile()" class="toolbarButton"
|
|
title="ファイルに保存したブロックプログラムを読み込みます。既にワークスペースにあるブロックは削除されません。"><i class="fas fa-folder-open"></i> 開く</button>
|
|
<button onclick="ugj_saveWorkspaceToFile()" class="toolbarButton" title="ワークスペースのブロックプログラムをファイルに保存します。"><i
|
|
class="fas fa-save"></i> 保存</button>
|
|
<button class="toolbarButton" title="ワークスペースのブロックプログラムを別名でファイルに保存します。" onclick="ugj_saveWorkspaceAs()"><i
|
|
class="fas fa-clone"></i> 別名</button>
|
|
<button class="toolbarButton" title="ブロックプログラムを実行します。" onclick="ugj_runCode()" id="runbtn"><i
|
|
class="fas fa-play-circle"></i> 実行</button>
|
|
<button class="iconbutton redo" title="アプリを再読み込みします。" onclick="location.reload()"><i
|
|
class="fas fa-redo-alt"></i></button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Blockly -->
|
|
<div id="blocklyArea"></div>
|
|
<div id="blocklyDiv" style="position: absolute"></div>
|
|
|
|
<!-- ディスプレイカラム(ビデオ・ターミナル表示) -->
|
|
<div class="rightPane" id="dispColumn">
|
|
<div id="display_area"><canvas id="canvas_bg" class="display" width="480" height="360"></canvas><canvas id="canvas"
|
|
class="display" width="480" height="360"></canvas><canvas id="gcanvas" class="display" width="480"
|
|
height="360"></canvas><video id="maindisplay" class="display" width="480" height="360" autoplay
|
|
muted></video><video id="subdisplay" class="subdisplay" width="160" height="120" autoplay muted></video></div>
|
|
<pre id="blackboard" disabled></pre>
|
|
<form name="inputForm" onsubmit="return false" autocomplete="off" id="inputForm">
|
|
<div class="inputDiv"><input type="text" id="inputBox">
|
|
<div class="inputBtnDiv"><input type="submit" value="" class="inputBtn fas"></div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- ツールボックス定義 -->
|
|
<xml xmlns="https://developers.google.com/blockly/xml" id="toolbox" style="display: none">
|
|
<category name="論理" css-icon="customIcon fas fa-random" categorystyle="logic_category">
|
|
<block type="controls_if"></block>
|
|
<block type="logic_compare">
|
|
<field name="OP">EQ</field>
|
|
</block>
|
|
<block type="logic_operation">
|
|
<field name="OP">AND</field>
|
|
</block>
|
|
<block type="logic_negate"></block>
|
|
<block type="logic_boolean">
|
|
<field name="BOOL">TRUE</field>
|
|
</block>
|
|
<block type="logic_null"></block>
|
|
<block type="logic_ternary"></block>
|
|
</category>
|
|
<category name="ループ" css-icon="customIcon fas fa-redo-alt" categorystyle="loop_category">
|
|
<block type="controls_repeat_ext">
|
|
<value name="TIMES">
|
|
<shadow type="math_number">
|
|
<field name="NUM">10</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="controls_whileUntil">
|
|
<field name="MODE">WHILE</field>
|
|
</block>
|
|
<block type="controls_for">
|
|
<field name="VAR" iid="oFFZ#D{*XbIVL=!W~X]w">番号</field>
|
|
<value name="FROM">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="TO">
|
|
<shadow type="math_number">
|
|
<field name="NUM">10</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="BY">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="controls_forEach">
|
|
<field name="VAR" iid="k4+0elF%?J]_)8fo((-m">項目</field>
|
|
</block>
|
|
<block type="controls_flow_statements">
|
|
<field name="FLOW">BREAK</field>
|
|
</block>
|
|
</category>
|
|
<category name="数・計算" css-icon="customIcon fas fa-calculator" categorystyle="math_category">
|
|
<block type="math_number">
|
|
<field name="NUM">0</field>
|
|
</block>
|
|
<block type="math_arithmetic">
|
|
<field name="OP">ADD</field>
|
|
<value name="A">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="B">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="math_round">
|
|
<field name="OP">ROUND</field>
|
|
<value name="NUM">
|
|
<shadow type="math_number">
|
|
<field name="NUM">3.1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="math_single">
|
|
<field name="OP">ROOT</field>
|
|
<value name="NUM">
|
|
<shadow type="math_number">
|
|
<field name="NUM">9</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="math_modulo">
|
|
<value name="DIVIDEND">
|
|
<shadow type="math_number">
|
|
<field name="NUM">64</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="DIVISOR">
|
|
<shadow type="math_number">
|
|
<field name="NUM">10</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="math_random_int">
|
|
<value name="FROM">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="TO">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="math_random_float"></block>
|
|
<block type="ugj_bintodec">
|
|
<value name="bin">
|
|
<shadow type="text">
|
|
<field name="TEXT">0000</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_hextodec">
|
|
<value name="hex">
|
|
<shadow type="text">
|
|
<field name="TEXT">ff</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_dectohex">
|
|
<value name="dec">
|
|
<shadow type="math_number">
|
|
<field name="NUM">255</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_text_to_number">
|
|
<value name="text">
|
|
<shadow type="text">
|
|
<field name="TEXT">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
</category>
|
|
<category name="テキスト" css-icon="customIcon fas fa-font" categorystyle="text_category">
|
|
<block type="text">
|
|
<field name="TEXT"></field>
|
|
</block>
|
|
<block type="text_print">
|
|
<value name="TEXT">
|
|
<shadow type="text">
|
|
<field name="TEXT">こんにちは!</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="text_join">
|
|
<mutation items="2"></mutation>
|
|
</block>
|
|
<block type="text_length">
|
|
<value name="VALUE">
|
|
<shadow type="text">
|
|
<field name="TEXT">abc</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="text_indexOf">
|
|
<value name="VALUE">
|
|
<block type="variables_get">
|
|
<field name="VAR">text</field>
|
|
</block>
|
|
</value>
|
|
<value name="FIND">
|
|
<shadow type="text">
|
|
<field name="TEXT">abc</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="text_charAt">
|
|
<value name="VALUE">
|
|
<block type="variables_get">
|
|
<field name="VAR">text</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="text_getSubstring">
|
|
<value name="STRING">
|
|
<block type="variables_get">
|
|
<field name="VAR">text</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_charcode">
|
|
<value name="char">
|
|
<shadow type="text">
|
|
<field name="TEXT">a</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_codechar">
|
|
<value name="code">
|
|
<shadow type="math_number">
|
|
<field name="NUM">97</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
</category>
|
|
<category name="リスト" css-icon="customIcon fas fa-list-ol" categorystyle="list_category">
|
|
<block type="lists_create_with">
|
|
<mutation items="2"></mutation>
|
|
</block>
|
|
<block type="lists_length"></block>
|
|
<block type="lists_isEmpty"></block>
|
|
<block type="lists_indexOf">
|
|
<field name="END">FIRST</field>
|
|
<value name="VALUE">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="lists_getIndex">
|
|
<mutation statement="false" at="true"></mutation>
|
|
<field name="MODE">GET</field>
|
|
<field name="WHERE">FROM_START</field>
|
|
<value name="VALUE">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="lists_setIndex">
|
|
<mutation at="true"></mutation>
|
|
<field name="MODE">SET</field>
|
|
<field name="WHERE">FROM_START</field>
|
|
<value name="LIST">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="lists_split">
|
|
<mutation mode="SPLIT"></mutation>
|
|
<field name="MODE">SPLIT</field>
|
|
<value name="DELIM">
|
|
<shadow type="text">
|
|
<field name="TEXT">,</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="lists_sort">
|
|
<field name="TYPE">NUMERIC</field>
|
|
<field name="DIRECTION">1</field>
|
|
</block>
|
|
</category>
|
|
<category name="変数" css-icon="customIcon fas fa-bars" categorystyle="variable_category" custom="VARIABLE">
|
|
</category>
|
|
<category name="関数" css-icon="customIcon fas fa-yin-yang" categorystyle="procedure_category" custom="PROCEDURE">
|
|
</category>
|
|
<sep></sep>
|
|
<category name="GPIO" css-icon="customIcon fab fa-raspberry-pi" categorystyle="gpio_category">
|
|
<label text="基本"></label>
|
|
<block type="ugj_gpio_open"></block>
|
|
<block type="ugj_gpio_close"></block>
|
|
<block type="oc_gpio_set_output">
|
|
<value name="ugpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">5</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_gpio_write">
|
|
<value name="gpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">5</field>
|
|
</shadow>
|
|
</value>
|
|
<field name="level">1</field>
|
|
</block>
|
|
<block type="oc_gpio_set_input">
|
|
<field name="lflag">SET_PULL_NONE</field>
|
|
<value name="ugpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">6</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_gpio_read">
|
|
<value name="gpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">6</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_breakout">
|
|
<field name="gpio">35</field>
|
|
</block>
|
|
<label text="I2C" web-line="4.0" web-line-width="200"></label>
|
|
<block type="oc_i2c_open">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="addr">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_i2c_close">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
</block>
|
|
<block type="oc_i2c_write_byte">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="byte_val">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_i2c_write_byte_data">
|
|
<value name="reg">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="byte_val">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_i2c_read_byte_data">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="reg">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_i2c_read_word_data">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="reg">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_i2c_write_i2c_block_data">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="reg">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="data">
|
|
<shadow type="text">
|
|
<field name="TEXT">abc</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_i2c_read_device">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="count">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_i2c_write_device">
|
|
<field name="i2c_hand">I2Cデバイス</field>
|
|
<value name="data">
|
|
<shadow type="text_join">
|
|
<mutation items="2"></mutation>
|
|
<value name="ADD0">
|
|
<shadow type="text">
|
|
<field name="TEXT">ohayo-.</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="ADD1">
|
|
<shadow type="ugj_text_cr"></shadow>
|
|
</value>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="シリアル" web-line="4.0" web-line-width="200"></label>
|
|
<block type="oc_serial_open">
|
|
<field name="ser_hand">シリアルデバイス</field>
|
|
<field name="baud">9600</field>
|
|
<value name="port">
|
|
<shadow type="text">
|
|
<field name="TEXT">/dev/ttyACM0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_serial_close">
|
|
<field name="ser_hand">シリアルデバイス</field>
|
|
</block>
|
|
<block type="oc_serial_read">
|
|
<field name="ser_hand">シリアルデバイス</field>
|
|
<value name="count">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_serial_write">
|
|
<field name="ser_hand">シリアルデバイス</field>
|
|
<value name="data">
|
|
<shadow type="text">
|
|
<field name="TEXT">hello</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="Extra" web-line="4.0" web-line-width="200"></label>
|
|
<label text="_" web-line="4.0" web-line-width="200"></label>
|
|
</category>
|
|
<category toolboxitemid="category_sensors" name="モジュール" css-icon="customIcon fas fa-microchip"
|
|
categorystyle="sensor_category">
|
|
</category>
|
|
<category name="マルチメディア" css-icon="customIcon fas fa-gamepad" categorystyle="multimedia_category">
|
|
<label text="キャンバス" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_canvas_init"></block>
|
|
<block type="ugj_canvas_clearrect">
|
|
<value name="x">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="y">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="w">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="h">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_canvas_width"></block>
|
|
<block type="ugj_canvas_height"></block>
|
|
<block type="ugj_canvas_drawcircle">
|
|
<value name="x">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="y">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="r">
|
|
<shadow type="math_number">
|
|
<field name="NUM">10</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="color">
|
|
<shadow type="colour_picker">
|
|
<field name="COLOUR">#9999ff</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_canvas_drawrect">
|
|
<value name="x">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="y">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="w">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="h">
|
|
<shadow type="math_number">
|
|
<field name="NUM">100</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="color">
|
|
<shadow type="colour_picker">
|
|
<field name="COLOUR">#ff0000</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_canvas_loadimg">
|
|
<value name="imgfilename">
|
|
<shadow type="text">
|
|
<field name="TEXT">photo.jpg</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_canvas_finalize"></block>
|
|
<label text="色" web-line="4.0" web-line-width="200"></label>
|
|
<block type="colour_picker">
|
|
</block>
|
|
<block type="coupycolor_picker">
|
|
</block>
|
|
<label text="サウンド" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_sound_play">
|
|
<field name="sound">meow</field>
|
|
</block>
|
|
<label text="イベント" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_event_key">
|
|
<field name="updown">keydown</field>
|
|
<value name="key">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="Tf-2_OhUEAcOe;U}wu%I">キー</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<label text="顔認識" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_face_init"></block>
|
|
<block type="ugj_face_display"></block>
|
|
<block type="ugj_face_detect">
|
|
<value name="preditions">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="TLZRpW`yXuYE3Z31)B=2">検出結果</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_face_location">
|
|
<field name="member">topLeft[0]</field>
|
|
<value name="prediction">
|
|
<block type="lists_getIndex">
|
|
<mutation statement="false" at="true"></mutation>
|
|
<field name="MODE">GET</field>
|
|
<field name="WHERE">FROM_START</field>
|
|
<value name="VALUE">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="_W]y2e!_~suF]yM;LQ1~">検出結果</field>
|
|
</block>
|
|
</value>
|
|
<value name="AT">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_face_draw">
|
|
<field name="with_landmark">TRUE</field>
|
|
<value name="prediction">
|
|
<block type="lists_getIndex">
|
|
<mutation statement="false" at="true"></mutation>
|
|
<field name="MODE">GET</field>
|
|
<field name="WHERE">FROM_START</field>
|
|
<value name="VALUE">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="E-Bsl~,RZG]E)v`k![_p">検出結果</field>
|
|
</block>
|
|
</value>
|
|
<value name="AT">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<label text="音声コマンド認識" web-line="4.0" web-line-width="200"></label>
|
|
<block type="oc_speechcommands_init">
|
|
<field name="classlabels">ラベル</field>
|
|
<value name="custom_model">
|
|
<shadow type="text">
|
|
<field name="TEXT"></field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_speechcommand_listen">
|
|
<field name="scores">スコア</field>
|
|
</block>
|
|
<label text="_" web-line="4.0" web-line-width="200"></label>
|
|
</category>
|
|
|
|
<category name="ネットワーク" css-icon="customIcon fas fa-wifi" categorystyle="network_category">
|
|
<label text="基本" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_network_axios_geturl">
|
|
<value name="url">
|
|
<shadow type="text">
|
|
<field name="TEXT">http://www.yahoo.co.jp/</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_network_sendmail">
|
|
<value name="to">
|
|
<shadow type="text">
|
|
<field name="TEXT">to@example.com</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="subject">
|
|
<shadow type="text">
|
|
<field name="TEXT">おはよう</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="text">
|
|
<shadow type="text">
|
|
<field name="TEXT">朝ですよ</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="サーバー" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_network_httpserver">
|
|
<value name="url">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="b`}7sB~6O9+IKJ!vJzA`">URL</field>
|
|
</block>
|
|
</value>
|
|
<value name="response">
|
|
<shadow type="text">
|
|
<field name="TEXT">オコゲ</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="ウェブチャット" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_library_load">
|
|
<value name="lib">
|
|
<shadow type="ugj_library_skyway"></shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_webchat"></block>
|
|
<block type="ugj_getusermedia"></block>
|
|
<block type="ugj_skyway_newpeer">
|
|
<value name="my_id">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="P$},PvZ}j#)8lw++|u7h">自分のID</field>
|
|
</block>
|
|
</value>
|
|
<value name="apikey">
|
|
<shadow type="text">
|
|
<field name="TEXT"></field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_skyway_called"></block>
|
|
<block type="ugj_skyway_events">
|
|
<value name="remote_id">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="lN*;t*HFF;@[)a_m3#F8">相手のID</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_skyway_eventopen"></block>
|
|
<block type="ugj_skyway_eventdata">
|
|
<value name="data">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="l[-u+nGf?P~Zu?k(bgP)">発言</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_skyway_eventsend">
|
|
<value name="data">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="NbC3[s+Uilk#moos+bn8">内容</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<label text="_" web-line="4.0" web-line-width="200"></label>
|
|
</category>
|
|
<category name="特殊" css-icon="customIcon fas fa-plug" categorystyle="special_category">
|
|
<label text="制御" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_sleep">
|
|
<value name="sec">
|
|
<shadow type="math_number">
|
|
<field name="NUM">1</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_async_iife"></block>
|
|
<label text="出入力" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_canvas_say">
|
|
<value name="say">
|
|
<shadow type="text">
|
|
<field name="TEXT">コンニチワ!</field>
|
|
</shadow>
|
|
</value>
|
|
<field name="sec">2</field>
|
|
</block>
|
|
<block type="ugj_event_answer">
|
|
<value name="question">
|
|
<shadow type="text">
|
|
<field name="TEXT">お名前は?</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="answer">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid=":w)sl|yxx4k^W-~-VM#,">答え</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_blackboard_show"></block>
|
|
<block type="ugj_blackboard_write">
|
|
<field name="style">normal</field>
|
|
<field name="line">new</field>
|
|
<value name="text">
|
|
<shadow type="text">
|
|
<field name="TEXT">コンニチワ!</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="color">
|
|
<shadow type="colour_picker">
|
|
<field name="COLOUR">#ccffff</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_blackboard_content"></block>
|
|
<block type="ugj_clearblackboard"></block>
|
|
<block type="ugj_control_button">
|
|
<value name="label">
|
|
<shadow type="text">
|
|
<field name="TEXT">ボタン1</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="textcolor">
|
|
<shadow type="colour_picker">
|
|
<field name="COLOUR">#ffffff</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="bgcolor">
|
|
<shadow type="colour_picker">
|
|
<field name="COLOUR">#999999</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="title">
|
|
<shadow type="text">
|
|
<field name="TEXT">ここをクリック</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_localstorage_save">
|
|
<value name="keyValue">
|
|
<shadow type="text">
|
|
<field name="TEXT">abc</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="keyName">
|
|
<shadow type="text">
|
|
<field name="TEXT">storage</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_localstorage_load">
|
|
<value name="keyName">
|
|
<shadow type="text">
|
|
<field name="TEXT">storage</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_localstorage_remove">
|
|
<value name="key">
|
|
<shadow type="text">
|
|
<field name="TEXT">storage</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="外部アプリ連携" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_spawnsync">
|
|
<value name="data">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid="9z28J37fMu2VaWhbd4*=">実行結果</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_spawn">
|
|
<value name="data">
|
|
<block type="variables_get">
|
|
<field name="VAR" iid=";i*e;NG!%_g}7}wTeaQc">データストリーム</field>
|
|
</block>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_child_julius"></block>
|
|
<block type="aquestalk_pi">
|
|
<value name="talk">
|
|
<shadow type="text">
|
|
<field name="TEXT">おはようございます。</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_child_fswebcam">
|
|
<value name="filename">
|
|
<shadow type="text">
|
|
<field name="TEXT">photo.jpg</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_child_pyscript">
|
|
<value name="script_path">
|
|
<shadow type="text">
|
|
<field name="TEXT">test.py</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="特殊記号" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_text_cr"></block>
|
|
<block type="ugj_text_lf"></block>
|
|
<block type="ugj_text_cursor"></block>
|
|
<label text="特殊" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_socket">
|
|
<field name="data" iid="Y^@?sd}wN]H+nmK=[{wL" variabletype="">受信データ</field>
|
|
<value name="host">
|
|
<shadow type="text">
|
|
<field name="TEXT">localhost</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="port">
|
|
<shadow type="math_number">
|
|
<field name="NUM">23</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_socket_write">
|
|
<value name="cmd">
|
|
<shadow type="text">
|
|
<field name="TEXT">Hello</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="ugj_file_readsync">
|
|
<field name="encoding">utf8</field>
|
|
<value name="filename">
|
|
<shadow type="text">
|
|
<field name="TEXT">example.txt</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<label text="_" web-line="4.0" web-line-width="200"></label>
|
|
</category>
|
|
<category name="RP2 専用" css-icon="customIcon fab fa-python" categorystyle="rp2_category">
|
|
<label text="テキスト" web-line="4.0" web-line-width="200"></label>
|
|
<block type="oc_rp2_print">
|
|
<value name="text">
|
|
<shadow type="text">
|
|
<field name="TEXT"></field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_rp2_input"></block>
|
|
<label text="JSON" web-line="4.0" web-line-width="200"></label>
|
|
<block type="oc_rp2_ujson_dumps"></block>
|
|
<block type="oc_rp2_ujson_loads"></block>
|
|
<label text="パルス" web-line="4.0" web-line-width="200"></label>
|
|
<block type="ugj_pwm">
|
|
<value name="gpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">29</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="pwm_frequency">
|
|
<shadow type="math_number">
|
|
<field name="NUM">50</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_pwm_duty">
|
|
<value name="gpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">29</field>
|
|
</shadow>
|
|
</value>
|
|
<value name="duty">
|
|
<shadow type="math_number">
|
|
<field name="NUM">0</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_rp2_ir_rx">
|
|
<value name="gpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">26</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_rp2_ir_record">
|
|
<value name="timeout">
|
|
<shadow type="math_number">
|
|
<field name="NUM">3</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_rp2_ir_tx">
|
|
<value name="gpio">
|
|
<shadow type="math_number">
|
|
<field name="NUM">27</field>
|
|
</shadow>
|
|
</value>
|
|
</block>
|
|
<block type="oc_rp2_ir_transmit"></block>
|
|
</category>
|
|
</xml>
|
|
<script src="./node_modules/blockly/blockly_compressed.js"></script>
|
|
<script src="./node_modules/blockly/javascript_compressed.js"></script>
|
|
<script src="./node_modules/blockly/python_compressed.js"></script>
|
|
<script src="./node_modules/blockly/blocks_compressed.js"></script>
|
|
<script src="./node_modules/blockly/msg/ja.js"></script>
|
|
<script src="./node_modules/@blockly/field-colour/dist/index.js"></script>
|
|
<script src="./node_modules/@blockly/field-slider/dist/index.js"></script>
|
|
<script src="./lib/custom-dialog.js"></script>
|
|
<script src="./apptool.js"></script>
|
|
<script src="./index.js"></script>
|
|
<script src="./blocks/blocks.js"></script>
|
|
<script src="./blocks/index.js"></script>
|
|
<script src="./node_modules/js-beautify/js/lib/beautify.js"></script>
|
|
<script src="./node_modules/prismjs/prism.js"></script>
|
|
<script src="./node_modules/prismjs/components/prism-python.js"></script>
|
|
<script src="./node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js"></script>
|
|
<script src="./node_modules/prismjs/plugins/toolbar/prism-toolbar.js"></script>
|
|
<script src="./node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js"></script>
|
|
</body>
|
|
|
|
</html> |