index2.html 87 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>Python Blockly</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <meta http-equiv="Content-Type" content="text/html; scharset=UTF-8">
  8. <meta name="theme-color" content="#2C4FCD">
  9. <link rel="apple-touch-icon" sizes="57x57" href="img/apple-icon-57x57.png">
  10. <link rel="apple-touch-icon" sizes="60x60" href="img/apple-icon-60x60.png">
  11. <link rel="apple-touch-icon" sizes="72x72" href="img/apple-icon-72x72.png">
  12. <link rel="apple-touch-icon" sizes="76x76" href="img/apple-icon-76x76.png">
  13. <link rel="apple-touch-icon" sizes="114x114" href="img/apple-icon-114x114.png">
  14. <link rel="apple-touch-icon" sizes="120x120" href="img/apple-icon-120x120.png">
  15. <link rel="apple-touch-icon" sizes="144x144" href="img/apple-icon-144x144.png">
  16. <link rel="apple-touch-icon" sizes="152x152" href="img/apple-icon-152x152.png">
  17. <link rel="apple-touch-icon" sizes="180x180" href="img/apple-icon-180x180.png">
  18. <link rel="icon" type="image/png" sizes="192x192" href="img/android-icon-192x192.png">
  19. <link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png">
  20. <link rel="icon" type="image/png" sizes="96x96" href="img/favicon-96x96.png">
  21. <link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16x16.png">
  22. <link rel="manifest" href="img/manifest.json">
  23. <meta name="msapplication-TileColor" content="#ffffff">
  24. <meta name="msapplication-TileImage" content="img/ms-icon-144x144.png">
  25. <title class="translatable_title">CocoBlockly Pi | Design, Create, Inspire</title>
  26. <!-- Materialize, Prettify, Slick, and Ardublockly CSS -->
  27. <link rel="stylesheet" href="materialize/css/materialize.css" media="screen,projection">
  28. <link rel="stylesheet" href="prettify/arduino.css">
  29. <link rel="stylesheet" href="slick/slick.css">
  30. <link rel="stylesheet" type="text/css" href="./slick/slick-theme.css">
  31. <link rel="stylesheet" href="ardublockly.css" media="screen,projection">
  32. <link rel="stylesheet" href="cocoblockly.css">
  33. <!-- JQuery, D3, Math.js, Bootstrap -->
  34. <!-- <script type="text/javascript" src="libs/jquery.js"></script> -->
  35. <script type="text/javascript" src="libs/jquery-3.3.1.min.js"></script>
  36. <script type="text/javascript" src="libs/jquery-ui.min.js"></script>
  37. <script type="text/javascript" src="libs/jquery.hotkeys.js"></script>
  38. <script type="text/javascript" src="libs/jquery.multi-select.js"></script>
  39. <script type="text/javascript" src="libs/materialize.min.js"></script>
  40. <script type="text/javascript" src="libs/d3.min.js"></script>
  41. <script type="text/javascript" src="libs/math.0.19.0.min.js"></script>
  42. <!-- <script type="text/javascript" src="libs/bootstrap.min.js"></script>
  43. <script type="text/javascript" src="libs/bootstrap-wysiwyg.js"></script> -->
  44. <script type="text/javascript" src="libs/mindmup-editabletable.js"></script>
  45. <script type="text/javascript" src="libs/codemirror/codemirror.js"></script>
  46. <script type="text/javascript" src="libs/codemirror/python.js"></script>
  47. <script type="text/javascript" src="libs/codemirror/htmlmixed.js"></script>
  48. <script type="text/javascript" src="libs/codemirror/xml.js"></script>
  49. <script type="text/javascript" src="libs/knockout-3.4.0.js"></script>
  50. <script type="text/javascript" src="libs/stringify.js"></script>
  51. <!-- Summernote, a rich text editor -->
  52. <script type="text/javascript" src="libs/summernote/summernote.min.js"></script>
  53. <script type="text/javascript" src="libs/summernote/summernote-ext-hint.js"></script>
  54. <script type="text/javascript" src="libs/summernote/summernote-ext-video.js"></script>
  55. <!-- Blockly -->
  56. <script type="text/javascript" src="blockly/blockly_uncompressed.js"></script>
  57. <script type="text/javascript" src="blockly/blocks_compressed.js"></script>
  58. <script type="text/javascript" src="blockly/python_compressed.js"></script>
  59. <script type="text/javascript" src="blockly/pseudo_compressed.js"></script>
  60. <script type="text/javascript" src="blockly/javascript_compressed.js"></script>
  61. <script type="text/javascript" src="blockly/msg/js/en.js"></script>
  62. <!-- Skulpt -->
  63. <script type="text/javascript" src="skulpt/dist/skulpt.min.js"></script>
  64. <script type="text/javascript" src="skulpt/dist/skulpt-stdlib.js"></script>
  65. <!-- Source Code -->
  66. <script type="text/javascript" src="src/utilities.js"></script>
  67. <script type="text/javascript" src="src/python_errors.js"></script>
  68. <script type="text/javascript" src="src/ast_node_visitor.js"></script>
  69. <script type="text/javascript" src="src/abstract_interpreter.js"></script>
  70. <script type="text/javascript" src="src/pytifa.js"></script>
  71. <script type="text/javascript" src="src/abstract_interpreter_definitions.js"></script>
  72. <script type="text/javascript" src="src/python_to_blockly.js"></script>
  73. <script type="text/javascript" src="src/imported.js"></script>
  74. <script type="text/javascript" src="src/blockly_blocks/class.js"></script>
  75. <script type="text/javascript" src="src/blockly_blocks/comment.js"></script>
  76. <script type="text/javascript" src="src/blockly_blocks/comprehensions.js"></script>
  77. <script type="text/javascript" src="src/blockly_blocks/dict.js"></script>
  78. <script type="text/javascript" src="src/blockly_blocks/if.js"></script>
  79. <script type="text/javascript" src="src/blockly_blocks/io.js"></script>
  80. <script type="text/javascript" src="src/blockly_blocks/lists.js"></script>
  81. <script type="text/javascript" src="src/blockly_blocks/sets.js"></script>
  82. <script type="text/javascript" src="src/blockly_blocks/loops.js"></script>
  83. <script type="text/javascript" src="src/blockly_blocks/parking.js"></script>
  84. <script type="text/javascript" src="src/blockly_blocks/tuple.js"></script>
  85. <script type="text/javascript" src="src/blockly_blocks/turtles.js"></script>
  86. <script type="text/javascript" src="src/blockly_blocks/text.js"></script>
  87. <script type="text/javascript" src="src/blockly_blocks/plots.js"></script>
  88. <script type="text/javascript" src="src/dialog.js"></script>
  89. <script type="text/javascript" src="src/storage.js"></script>
  90. <script type="text/javascript" src="src/printer.js"></script>
  91. <script type="text/javascript" src="src/interface.js"></script>
  92. <script type="text/javascript" src="src/server.js"></script>
  93. <script type="text/javascript" src="src/english.js"></script>
  94. <script type="text/javascript" src="src/corgis.js"></script>
  95. <script type="text/javascript" src="src/history.js"></script>
  96. <script type="text/javascript" src="src/presentation.js"></script>
  97. <script type="text/javascript" src="src/editor.js"></script>
  98. <script type="text/javascript" src="src/feedback.js"></script>
  99. <script type="text/javascript" src="src/toolbar.js"></script>
  100. <script type="text/javascript" src="src/sk_mod_instructor_extended.js"></script>
  101. <script type="text/javascript" src="src/sk_mod_instructor.js"></script>
  102. <script type="text/javascript" src="src/engine.js"></script>
  103. <script type="text/javascript" src="src/main.js"></script>
  104. <script>
  105. $(document).ready(function() {
  106. $('.dropdown-trigger').dropdown();
  107. setTimeout(() => $('.modal').modal(), 0);
  108. blockpy = new BlockPy({
  109. blocklyPath: "blockly/",
  110. attachmentPoint: document.getElementById("blockpy-div"),
  111. instructor:
  112. !getQueryParams()["instructor"] ||
  113. getQueryParams()["instructor"] == "true",
  114. developer: true,
  115. editor: getQueryParams()["mode"] || "Split",
  116. urls: {
  117. }
  118. });
  119. blockpy.setAssignment(
  120. // settings
  121. {
  122. editor: getQueryParams()["mode"] || "Split",
  123. read_only: getQueryParams()["upload"] == "true",
  124. disable_semantic_errors: false,
  125. disable_timeout: true
  126. },
  127. // assignment
  128. {
  129. introduction:
  130. "Use the canvas below to calculate the sum of a list of 4 numbers.",
  131. name: "#1.3",
  132. //'give_feedback': 'from instructor_functions import *\nsuppress("analyzer", "Incompatible types")\nmatch_signature("curve_grade", 1, "old")\nunit_test("curve_grade", (64, True), (0, 0), (100, 100))',
  133. //'give_feedback': 'from instructor_functions import *\n5+""\nsuppress("analyzer", "Incompatible types")\nmatch_signature("rate_animal", 1, "old")\nunit_test("rate_animal", (64, True))',
  134. //'give_feedback': "log(parse_program().find_all('FunctionDef')[0].args.args[0].arg)",
  135. give_feedback: "set_success()",
  136. //'give_feedback': 'from instructor_utility import *\nfrom instructor_printing import *\n\nsuppress("analyzer")\nsuppress("instructor")\nhide_correctness()\n\nast = parse_program()\n\nall_checked = True\nanswers = [("1*2*3", "6"), ("3*4","12"), ("0","0"), ("5*-5", "-25")]\nfor an_input, result in answers:\n reset_output()\n queue_input(an_input)\n run_student()\n if not get_output():\n all_checked = False\n elif result not in get_output():\n if str(float(result)) in get_output():\n give_partial(.1/len(answers), "Checking Float "+an_input)\n all_checked = False\n else:\n give_partial(.2/len(answers), "Checking "+an_input)',
  137. //'give_feedback': "from instructor_utility import *\nensure_operation('in')",
  138. //'give_feedback': 'for x in range(2):\n reset_output()\n queue_input("Test", "")\n e = run_student()\n if e:\n gently(str(e))\n log(get_output())\nif not e:\n set_success()',
  139. //'give_feedback': "from instructor_files import *\nfiles_not_handled_correctly('example.txt')",
  140. //'give_feedback': "from instructor_imports import *\nensure_imports('math', 'random')",
  141. //'give_feedback': "from instructor_plotting import * \nprevent_incorrect_plt() \nensure_correct_plot('plot') \nensure_show() \ncheck_for_plot('line', [[1,2,3],[4,5,6]])",
  142. //'give_feedback': 'ast = parse_program()\nassignments = ast.find_all("Assign")\nfor assignment in assignments:\n if assignment.targets.id == "parking_allowed":\n log(assignment.targets.data_type)',
  143. on_change: "",
  144. //'on_change': 'gently("Test")',
  145. parsons: false,
  146. starting_code: "",
  147. importable: true,
  148. initial_view: getQueryParams()["mode"] || "Split",
  149. upload: getQueryParams()["upload"] == "true",
  150. modules: {
  151. added: ['Turtles','Dictionaries',"Classes", "Tuples", "Data - Weather", "Request" , "Camera",'AIY Board','VisionKit','VoiceKit','System'],
  152. removed: []
  153. }
  154. },
  155. // programs
  156. {
  157. //'__main__': 'ss = ["Testing", "Here"]\nfor a in ss:\n print(a)\nfor b in a:\n print(b)',
  158. //'__main__': 'print("Hello world"[1:5])',
  159. __main__: ""
  160. //'__main__': 'num = input("")\nnum_list = [int(n) for n in num.split("*")]\nfor n in num_list:\n n*n\n return 4\nprint(n)',
  161. //'__main__': 'def rate_animal(an_animal):\n if an_animal != "dog":\n 1 + ""\nrate_animal("dog")',
  162. //'__main__': 'round(float("9.5", ___))',
  163. //'__main__': getQueryParams()["code"] || "import matplotlib.pyplot as plt\nplt.plot([1, 2, 3],[4, 5, 6])\nplt.show()",
  164. //'__main__': 'i=0\nwhile i!="0":\n i=input("")\n print(i)',
  165. //'__main__': "import requests\nprint(requests.get('https://pastebin.com/raw/V7tWn1Rj').text)"
  166. //'__main__': "print(open('example.txt').read())"
  167. //'__main__': "import math\nmath\nfrom random import choice\nchoice"
  168. //'__main__': "from random import randint\nprint(5+randint(1,10))"
  169. //'__main__': 'print(input("Prompt:"))',
  170. //'__main__': 'import parking\nparking_allowed = parking.now()\nif parking.now() > parking.Time(8,30,"AM") and parking.now() < parking.Time(5,30,"PM"):\n parking_allowed = False\nelse:\n parking_allowed = True \nprint(parking_allowed)'
  171. //'__main__': 'print("Banana"[:int(len("Banana")/2)])',
  172. //'__main__': 'def curve_grade(old):\n return (old ** .5) * 10\n\nprint(90, "becomes", curve_grade(90))\nprint(50, "becomes", curve_grade(50))\nprint(20, "becomes", curve_grade(20))'
  173. //'__main__': 'print(1 != 2 and 2 != 1)'
  174. }
  175. );
  176. function inIframe() {
  177. try {
  178. return window.self !== window.top;
  179. } catch (e) {
  180. return true;
  181. }
  182. }
  183. if (inIframe()) {
  184. $("#blockpy-container").width("100%");
  185. $("#blockpy-div").css("padding", 0);
  186. }
  187. });
  188. </script>
  189. </head>
  190. <body>
  191. <div class="se-pre-con">
  192. <h4 style="position: fixed;left: 45%;top: 60%;" class="translatable_pageLoading">Loading....</h4>
  193. </div>
  194. <!-- Horizontal Navigation bar -->
  195. <nav id="nav_" class="nav-fixed arduino_teal">
  196. <div id="nav_shadow" class="shadowbox" style="display:none;"></div>
  197. <div class="nav-wrapper navcontainer" style="position:static;">
  198. <a id="logo-container" class="brand-logo">
  199. <span style="font-size:28px;font-family:'GT Walsheim Pro Trial Bold';" class="app_title translatable_title">CocoBlockly Pi</span>
  200. <!-- Sketch name editable text field -->
  201. <span class="sketch_name_wrapper" style="position:relative">
  202. <!-- <a id="button_delete" class="lang_resize" style="position:relative">
  203. <img style="height:28px;margin-top:20px" src="./icons/trash.png">
  204. </a> -->
  205. <i id="workspace_screenshot" class="material-icons sketch_name_icon right" style="margin-left:5px;cursor: pointer;">photo_camera</i>
  206. <i id="button_delete" class="material-icons sketch_name_icon right" style="margin-left:5px;cursor: pointer;">delete</i>
  207. <!-- <i class="material-icons sketch_name_icon right">create</i> -->
  208. <input id="sketch_name" class="sketch_name" type="text">
  209. <input id="sketch_name_w" class="sketch_name" type="text" name="wifi" style="display:none">
  210. </span>
  211. </a>
  212. <!-- Horizontal Navbar links only shown on large resolutions -->
  213. <ul id="nav-mobile" class="right hide-on-med-and-down">
  214. <!-- AI Demo -->
  215. <!-- <li>
  216. <a id="AI_experience" class='dropdown-button lang_resize' data-activates='AI_experience_dropdown' style="position:relative">
  217. <span class="translatable_AI_experience">AI</span>
  218. <img class="left nav-icon" src="./icons/nav-ai-experience.png">
  219. </a>
  220. <ul id='AI_experience_dropdown' class='dropdown-content' style="top:62px">
  221. <li id="webcam" class='modal-trigger' href="#webcam_capture_modal">
  222. <span class="translatable_AI_emotion">Emotion Recognotion</span>
  223. </li>
  224. <li class="divider"></li>
  225. <li id="voice-input" class='modal-trigger' href="#voice_input_modal">
  226. <span class="translatable_AI_speech">Speech Recognotion</span>
  227. </li>
  228. </ul>
  229. </li> -->
  230. <!-- help button -->
  231. <li>
  232. <a id="help" class='dropdown-button lang_resize' data-activates="help_board" style="position:relative">
  233. <!-- <i class="material-icons left" style="margin-right: 5px;font-size: 34px;">help_outline</i> -->
  234. <span class="translatable_help_board">Help</span>
  235. <img class="left nav-icon" src="./icons/nav_help.png">
  236. </a>
  237. <ul id='help_board' class='dropdown-content' style="top:62px">
  238. <li id="">
  239. <a href="http://help.cocorobo.cn/" target="_blank">
  240. <span class="translatable_tutorial">Tutorial</span>
  241. </a>
  242. </li>
  243. <!-- <li class="divider"></li>
  244. <li>
  245. <a href="#tourmode" class="modal-trigger">
  246. <span class="translatable_tour">Start Tour</span>
  247. </a>
  248. </li> -->
  249. <li class="divider"></li>
  250. <li>
  251. <a href="http://help.cocorobo.cn/#/changelog" target="_blank">
  252. <span class="translatable_changelog">Change Log</span>
  253. </a>
  254. </li>
  255. </ul>
  256. </li>
  257. <li>
  258. <a id="local_storage" class='dropdown-button lang_resize' data-activates='local_saveOrOpen' style="position:relative">
  259. <span class="translatable_storage">Storage</span>
  260. <img class="left nav-icon" src="./icons/local_storage.png">
  261. </a>
  262. <ul id='local_saveOrOpen' class='dropdown-content' style="top:62px">
  263. <li id="button_load" class='modal-trigger' href="#Storage_import_modal">
  264. <span class="translatable_localimport">Import</span>
  265. </li>
  266. <li class="divider"></li>
  267. <li id="button_save" class='modal-trigger' href="#Storage_export_modal">
  268. <span class="translatable_localexport">Export</span>
  269. </li>
  270. </ul>
  271. </li>
  272. <li>
  273. <a id="nav_language" class='dropdown-button lang_resize' data-activates='languages' style="position:relative">
  274. <span class="translatable_language">Language</span>
  275. <img class="left nav-icon" src="./icons/language.png">
  276. </a>
  277. <ul id='languages' class='dropdown-content'>
  278. <li onclick="changeLanguage('en')">
  279. <a>English</a>
  280. </li>
  281. <li class="divider"></li>
  282. <li onclick="changeLanguage('zh-hant')">
  283. <a>繁体中文</a>
  284. </li>
  285. <li class="divider"></li>
  286. <li onclick="changeLanguage('zh-hans')">
  287. <a>简体中文</a>
  288. </li>
  289. </ul>
  290. </li>
  291. <li>
  292. <span class="vertical-separator"></span>
  293. </li>
  294. <li>
  295. <a id="back_home" class="lang_resize" target="_blank" href="//cocorobo.cn/online/" style="position:relative">
  296. <img class="nav-icon2" src="./icons/home_icon.png">
  297. </a>
  298. </li>
  299. </ul>
  300. </div>
  301. </nav>
  302. <!-- Sidebar navigation -->
  303. <ul id="slide-out" class="side-nav">
  304. <li class="logo"><img style="padding-bottom:100px;" src="img/header.png" width="105%" alt="Ardublockly block image">
  305. </li>
  306. <li class="no-padding">
  307. <ul>
  308. <li id="menu_home">
  309. <a href="//cocorobo.cn/online/">
  310. <span class="translatable_home">Home</span>
  311. <i class="material-icons left">home</i>
  312. </a>
  313. </li>
  314. <li id="menu_load">
  315. <a>
  316. <span class="translatable_open">Open</span>
  317. <i class="material-icons left">file_upload</i>
  318. </a>
  319. </li>
  320. <li id="menu_save">
  321. <a>
  322. <span class="translatable_save">Save</span>
  323. <i class="material-icons left">file_download</i>
  324. </a>
  325. </li>
  326. <li id="menu_delete">
  327. <a>
  328. <span class="translatable_deleteAll">Delete All</span>
  329. <i class="material-icons left">delete</i>
  330. </a>
  331. </li>
  332. <li id="">
  333. <a href="//help.cocorobo.cn/#/" target="_blank">
  334. <span class="translatable_help">Help</span>
  335. <i id="menu_settings" class="material-icons left">help</i>
  336. </a>
  337. </li>
  338. <li id="menu_bug">
  339. <a href="mailto:tommy@cocorobo.cc?cc=it@cocorobo.cc&subject=CocoBlockly Pi Bug Report">
  340. <span class="translatable_reportBug modal-trigger">Report Bug</span>
  341. <i class="material-icons left">bug_report</i>
  342. </a>
  343. </li>
  344. <li>
  345. <a href="#tourmode" class="modal-trigger">
  346. <span class="translatable_tour">Start Tour</span>
  347. <i class="material-icons left">help</i>
  348. </a>
  349. </li>
  350. <li>
  351. <a href="//help.cocorobo.cn/#/changelog" target="_blank">
  352. <span class="translatable_changelog">Change Log</span>
  353. <i class="material-icons left">assignment</i>
  354. </a>
  355. </li>
  356. </ul>
  357. </li>
  358. <li class="no-padding side-menu-end">&nbsp;</li>
  359. </ul>
  360. <!-- sidebar icon : Arduino main / Serial monitor -->
  361. <ul id="icon-tool" class="card-icon-area">
  362. <li class="card-icon active" onclick="changeSideCard('code')">
  363. <i class="material-icons media">build</i>
  364. </li>
  365. <li class="card-icon" onclick="changeSideCard('monitor')">
  366. <i class="material-icons ">search</i>
  367. </li>
  368. <li class="card-icon" onclick="changeSideCard('fullmode')">
  369. <i class="material-icons ">crop_free</i>
  370. </li>
  371. <li id="lang-tool" class="card-icon">
  372. <i class="material-icons">translate</i>
  373. </li>
  374. <li id="bar_help" class="card-icon">
  375. <a href="http://help.cocorobo.cn/" target="_blank">
  376. <img class="bar-icon" src="./icons/help_icon-blockly-widget.png">
  377. </a>
  378. </li>
  379. </ul>
  380. <a id='side-lang-trigger' class='dropdown-button' data-activates='side-lang'></a>
  381. <ul id="side-lang" class='dropdown-content'>
  382. <li onclick="changeLanguage('en')">
  383. <a>English</a>
  384. </li>
  385. <li class="divider"></li>
  386. <li onclick="changeLanguage('zh-hant')">
  387. <a>繁体中文</a>
  388. </li>
  389. <li class="divider"></li>
  390. <li onclick="changeLanguage('zh-hans')">
  391. <a>简体中文</a>
  392. </li>
  393. </ul>
  394. <div id="main_shadow" class="shadowbox" style="display:none;">
  395. <div id="shadow_content" class="shadow_container">
  396. <div class="shadow_top">
  397. <img src="./icons/drag_import.png" style="width:200px">
  398. <p class="translatable_drag_import">Drag and drop your file to here</p>
  399. </div>
  400. </div>
  401. </div>
  402. <!-- Content -->
  403. <div id="main_content" class="container">
  404. <div class="row">
  405. <div id="blocks_content" class="col s12 m12 l8" style="position:relative">
  406. <!-- Blockly Panel -->
  407. <!-- <a id="button_toggle_toolbox" class="waves-effect waves-light btn-flat button_toggle_toolbox_off" style="display: none"><i id="button_toggle_toolbox_icon" class="mdi-action-visibility-off"></i></a>-->
  408. <div class="card-panel white" style="padding: 0">
  409. <div id="blocks_panel" class="content blocks_panel_large">
  410. <div id="content_blocks" class="content z-depth-1"></div>
  411. </div>
  412. </div>
  413. </div>
  414. <div class="col s12 m12 l4" style="position:relative;">
  415. <!-- Ardunio code area / uploader -->
  416. <div id="Ardunio-main" style="height:100%;opacity:1;">
  417. <div id="codeArea" class="card">
  418. <div class="code-header">
  419. <span class="card-title translatable_arduinoSourceCode">Arduino Source Code</span>
  420. <span class="collapsible_logo">&#60; &#62;</span>
  421. </div>
  422. <div class="card-content" style="position:relative;padding:0;">
  423. <a id="code-copy" style="position:absolute;right:18px;top:8px;" data-clipboard-action="copy" data-clipboard-target="#content_arduino">
  424. <i class="material-icons right" style="color:#2c4fcd;cursor:pointer;">content_copy</i>
  425. </a>
  426. <a id="code-download" style="position:absolute;right:45px;top:8px;">
  427. <i class="material-icons right" style="color:#2c4fcd;cursor:pointer;">arrow_downward</i>
  428. </a>
  429. <pre id="content_arduino" class="content content_height_transition content_arduino_small">
  430. </pre>
  431. </div>
  432. </div>
  433. <div id="uploader" class="card" style="margin-bottom:0;">
  434. <div class="code-header" style="position: relative;">
  435. <span class="collapsible_logo"><i class="material-icons small" style="transform:translateY(25%);">swap_vert</i></span>
  436. <span class="card-title translatable_blocksXml">Upload Area</span>
  437. <div id="discnt_icon" style="display:inline-block;">
  438. <a href="#env_detect" class="modal-trigger"><img style="height:17px;margin-left:8px;transform:translateY(2px);" src="./icons/uploader_disconnect.png"></a>
  439. </div>
  440. <div id="cnt_icon" style="display:none;"><img style="height:17px;margin-left:8px;transform:translateY(2px);" src="./icons/uploader_connect.png"></div>
  441. <a class="header-link upload_instruction" href="http://help.cocorobo.cn/#/getting-started/info" target="_blank"><img src="./icons/instruction.png"></a>
  442. <a id="plugin_download" download class="header-link" target="_blank">
  443. <img src="./icons/plugin_download.png">
  444. <img style="position:absolute;height:10px;right:45px;bottom:32px; display:none" src="./icons/icon_new.png">
  445. </a>
  446. </div>
  447. <div class="card-content" style="padding:8px 10px;">
  448. <div class="row">
  449. <div class="col s12">
  450. <img id="error-btn" class="activator" src="./icons/error.png">
  451. <span id="status_bar" class="translatable_statusbar">Directly upload your code to the electronic modules.</span>
  452. </div>
  453. </div>
  454. <div class="row">
  455. <div class="col s12">
  456. <div class="progress" style="margin:7px 0;">
  457. <div class="determinate blue" style="width:0%;"></div>
  458. </div>
  459. </div>
  460. </div>
  461. <div class="row">
  462. <div class="col s6" style="padding-right:1px;">
  463. <select id="ports">
  464. <option value=null disabled>No ports detected</option>
  465. </select>
  466. </div>
  467. <div class="col s6 mctooltip" style="padding-left:1px;">
  468. <div class="switch" style="margin:12px 0 0 0;">
  469. <label>
  470. <span id="main_mode_label" class="translatable_main_mode" style="font-size:14px;color:#000">Main mode</span>
  471. <input id="network-btn" type="checkbox" onclick="PageModeSwitch()">
  472. <span class="lever" style="margin:0 1px;"></span>
  473. <span id="wifi_mode_label" class="translatable_wifi_mode" style="font-size:14px;">WiFi mode</span>
  474. </label>
  475. </div>
  476. </div>
  477. </div>
  478. <div class="row">
  479. <div id="uploader-btns" class="col s12">
  480. <a id="compile-btn" class="waves-effect waves-light btn blue" style="margin-right:0.5rem;"><span class="translatable_compile">COMPILE</span></a>
  481. <a id="upload-btn" class="waves-effect waves-light btn blue disabled" style="margin-right:0.5rem;"><span class="translatable_upload">UPLOAD</span></a>
  482. <a id="uploader-relaunch-btn" class="waves-effect waves-light btn blue disabled" style="float:right;">
  483. <i class="material-icons">refresh</i>
  484. </a>
  485. </div>
  486. </div>
  487. </div>
  488. <div class="card-reveal grey darken-3 white-text" style="padding:8px 13px;">
  489. <div class="card-title" style="height:18%;margin-bottom:2px;">
  490. <span class="translatable_errmsg" style="font-weight:normal;">Error Message</span>
  491. <a id="err-copy" style="display:inline-block;margin-left:26px;" data-clipboard-action="copy" data-clipboard-target="#err-msg">
  492. <i class="material-icons right" style="color:#fff;font-size:18px;cursor:pointer;">content_copy</i>
  493. </a>
  494. <i class="material-icons right" style="cursor:pointer;">close</i>
  495. </div>
  496. <div style="width:100%;height:78%;">
  497. <textarea readonly id="err-msg" style="overflow:visible;font-family:consolas;font-size:14px;height:100%;resize:none;border:none;"></textarea>
  498. </div>
  499. </div>
  500. </div>
  501. <div class="card plugin_options options_hide">
  502. <div class="card-content">
  503. <div>
  504. <a download href="http://cocorobo.cn/downloads/CocoBlocklyUploader_v3.0.6_macOS.dmg" target="_black"><img src="./icons/mac-icon.png">Mac</a>
  505. <a download href="http://cocorobo.cn/downloads/CocoBlocklyUploader_v3.0.6_Windows.exe" target="_black"><img src="./icons/windows-icon.png">Windows</a>
  506. </div>
  507. </div>
  508. </div>
  509. </div>
  510. <!-- Serial Monitor -->
  511. <div id="Serial-monitor" class="card card-serialMonitor" style="display:none;height:0;opacity:0;">
  512. <div class="code-header">
  513. <span class="code-header-logo"><i class="material-icons" style="padding-top:10px">search</i></span>
  514. <span class="card-title translatable_serialMonitor">Serial Monitor</span>
  515. </div>
  516. <div class="card-content" style="padding:8px 10px;">
  517. <div class="row">
  518. <div class="input-field col s6" style="margin-top:2px;">
  519. <p id="ports-monitor" style="font-size:16px"><span class="translatable_port">Port:</span><span style="padding-left:10px;"></span></p>
  520. </div>
  521. <div class="col s6" style="margin-top:2px;">
  522. <a id="comms-cnt" class="waves-effect waves-light blue lighten-2 btn translatable_connectBtn disabled" style="float:right;margin-right:5px">connect</a>
  523. <a id="comms-discnt" class="waves-effect waves-light blue lighten-2 btn translatable_disconnectBtn " style="float:right;margin-right:5px;display:none">disconnect</a>
  524. </div>
  525. </div>
  526. <div class="row">
  527. <div class="input-field col s5">
  528. <select id="serial_output_style" style="font-size:16px">
  529. <option value="" selected class="translatable_no_line_ending">No line ending</option>
  530. <option value="nl" class="translatable_newline">Newline</option>
  531. <option value="cr" class="translatable_CR">Carriage return</option>
  532. <option value="blc" class="translatable_NL_CR">Both NL &amp; CR</option>
  533. </select>
  534. </div>
  535. <div class="input-field col s5">
  536. <select id="serial_baud" style="font-size:16px">
  537. <option value="300">300 <span class="translatable_baud">baud</span></option>
  538. <option value="1200">1200 <span class="translatable_baud">baud</span></option>
  539. <option value="2400">2400 <span class="translatable_baud">baud</span></option>
  540. <option value="4800">4800 <span class="translatable_baud">baud</span></option>
  541. <option value="9600" selected>9600 <span class="translatable_baud">baud</span></option>
  542. <option value="19200">19200 <span class="translatable_baud">baud</span></option>
  543. <option value="38400">38400 <span class="translatable_baud">baud</span></option>
  544. <option value="57600">57600 <span class="translatable_baud">baud</span></option>
  545. <option value="115200">115200 <span class="translatable_baud">baud</span></option>
  546. </select>
  547. </div>
  548. </div>
  549. <div class="row">
  550. <div class="input-field col s10">
  551. <input id="comms-msg" type="text" style="margin:0">
  552. <label for="Sending_Messages" class="translatable_sendMsg" style="font-size:16px">Sending Messages</label>
  553. </div>
  554. <div class="input-field col s2">
  555. <a id="comms-send" class="waves-effect waves-light blue lighten-2 btn translatable_sendBtn disabled" style="float:right;padding-right:5px">SEND</a>
  556. </div>
  557. </div>
  558. <div class="row">
  559. <div class="col s12">
  560. <textarea id="commsBox" label="readonly" readonly></textarea>
  561. </div>
  562. </div>
  563. <div class="row" style="margin-bottom:8px">
  564. <div class="col s4" style="margin-top:8px">
  565. <input id="autoscroll" type="checkbox" class="filled-in" checked="checked">
  566. <label for="autoscroll">
  567. <span class="translatable_autoScroll">Autoscroll</span>
  568. </label>
  569. </div>
  570. <div class="input-field col s8" style="margin:4px,0,8px,0">
  571. <a id="comms-clear" class="waves-effect waves-light blue lighten-2 btn translatable_comms_clear" style="float:right;margin-right:5px">CLEAR</a>
  572. <a id="comms-export" class="waves-effect waves-light blue lighten-2 btn translatable_comms_export modal-trigger" href="#export-file" style="float:right;margin-right:5px">EXPORT</a>
  573. </div>
  574. </div>
  575. </div>
  576. </div>
  577. </div>
  578. </div>
  579. </div>
  580. <footer id="footer_" class="page-footer arduino_teal">
  581. <div class="footer-copyright">
  582. <div class="navcontainer" style="z-index:auto;">
  583. <span class="translatable_copyright" style="color:#fff;">CocoRobo LTD © 2019 Copyright</span>
  584. <span style="color:#fff;" class="right">CocoBlockly Pi v3</span>
  585. </div>
  586. </div>
  587. </footer>
  588. <!-- General Alert: Content is loaded using JavaScript to display alerts -->
  589. <div id="gen_alert" class="modale modal_small">
  590. <div class="modal-content">
  591. <h5 id="gen_alert_title">Empty Alert</h5>
  592. <p><span id="gen_alert_body">Empty alert text</span></p>
  593. </div>
  594. <div class="modal-footer">
  595. <a id="gen_alert_ok_link" class="waves-effect btn-flat modal-close blue"><span class="translatable_okay" style="color:#fff">Okay</span></a>
  596. <a id="gen_alert_cancel_link" class="waves-effect btn-flat modal-close blue"><span class="translatable_cancel" style="color:#fff">Cancel</span></a>
  597. </div>
  598. </div>
  599. <!-- General Warning: Content is loaded using JavaScript to display alerts -->
  600. <div id="gen_warn" class="modale modal_small">
  601. <div class="modal-content">
  602. <img id="gen_warn_image" src="">
  603. <h5 id="gen_warn_title">Empty Alert</h5>
  604. <p id="gen_warn_body"><span>Empty alert text</span></p>
  605. <div id="gen_warn_others"></div>
  606. </div>
  607. <div class="modal-footer">
  608. <a id="gen_warn_ok_link" class="waves-effect btn-flat modal-close blue"><span class="translatable_okay" style="color:#fff">Okay</span></a>
  609. <a id="gen_warn_cancel_link" class="waves-effect btn-flat modal-close blue"><span class="translatable_cancel" style="color:#fff">Cancel</span></a>
  610. </div>
  611. </div>
  612. <!-- Custom Alert: Content is loaded using JavaScript to display alerts -->
  613. <div id="cus_alert" class="modale modal_small modal_custom">
  614. <div class="modal-content">
  615. <h5 id="cus_alert_title">Empty Alert</h5>
  616. <p><span id="cus_alert_body">Empty alert text</span></p>
  617. </div>
  618. <div class="modal-footer">
  619. <a id="cus_alert_button" class="waves-effect btn-flat modal-close blue"><span id="cus_alert_button_content" style="color:#fff"></span></a>
  620. <a id="cus_alert_ok_link" class="waves-effect btn-flat modal-close blue"><span class="translatable_okay" style="color:#fff">Okay</span></a>
  621. </div>
  622. </div>
  623. <!-- Env Detect Modal -->
  624. <div id="env_detect" class="modal">
  625. <div class="modal-content">
  626. <h4 class="translatable_env_detect" style="margin-bottom:2.5rem;">Environment Detect</h4>
  627. <div id="detect_before" style="position:relative;">
  628. <div>
  629. <img src="./icons/device-detect.svg" />
  630. </div>
  631. <div id="detect_preload" style="display:none;">
  632. <div style="position:relative;top:50%;transform:translateY(-50%);height:128px;width:128px;margin:0 auto;">
  633. <div class="preloader-wrapper big active">
  634. <div class="spinner-layer spinner-blue-only">
  635. <div class="circle-clipper left">
  636. <div class="circle"></div>
  637. </div>
  638. <div class="gap-patch">
  639. <div class="circle"></div>
  640. </div>
  641. <div class="circle-clipper right">
  642. <div class="circle"></div>
  643. </div>
  644. </div>
  645. </div>
  646. </div>
  647. </div>
  648. </div>
  649. <div id="detect_result" style="display:none;">
  650. <div style="border-bottom:2.5px #0057ff6e solid;padding:0.25rem 0;">
  651. <h5 class="translatable_title_device">Device</h5>
  652. <h5 class="translatable_title_result">Result</h5>
  653. <h5 class="translatable_title_support">Support</h5>
  654. <h5 class="translatable_title_suggest">Suggest</h5>
  655. </div>
  656. <div id="env_detect_os" style="margin-top:0.5rem;">
  657. <div class="translatable_os">System</div>
  658. <div></div>
  659. <div class="detect-icons"></div>
  660. <div></div>
  661. </div>
  662. <div id="env_detect_browser">
  663. <div class="translatable_browser">Browser</div>
  664. <div></div>
  665. <div class="detect-icons"></div>
  666. <div></div>
  667. </div>
  668. <div id="env_detect_plugin" style="margin-bottom:0.5rem;">
  669. <div>Uploader</div>
  670. <div></div>
  671. <div class="detect-icons"></div>
  672. <div></div>
  673. </div>
  674. </div>
  675. </div>
  676. <div class="modal-footer">
  677. <a id="detect-btn" class="waves-effect waves-light btn-large blue">
  678. <span class="translatable_detect">Detect</span>
  679. </a>
  680. </div>
  681. </div>
  682. <!-- app center modal -->
  683. <div id="app_center_modal" class="modal">
  684. <div class="modal-content" style="padding: 20px;">
  685. <h4 class="translatable_labs_center_modal_title">CocoBlockly Pi Labs</h4>
  686. <hr style="border-top: 1px solid #ddd;margin:20px 0 10px 0;" />
  687. <div class="row" style="text-align:left;">
  688. <div style="float:center;" class="col s3">
  689. <p class="translatable_app_center_all_categories" style="padding-bottom:0px;font-weight: bold">All Categories:</p>
  690. <div id="center_categories" class="collection ">
  691. <a name="center_ai" class="collection-item grey-text text-darken-4 active translatable_app_center_ai" onclick="ACCategorySelect(1)">Artificial Intelligence</a>
  692. <a name="center_iot" class="collection-item grey-text text-darken-4 translatable_app_center_iot" onclick="ACCategorySelect(2)">Internet of Things</a>
  693. <a name="center_robot" class="collection-item grey-text text-darken-4 translatable_app_center_robot" onclick="ACCategorySelect(3)">Robot Controller</a>
  694. <a name="center_science" class="collection-item grey-text text-darken-4 translatable_app_center_science" onclick="ACCategorySelect(4)">Science Experiements</a>
  695. <a name="center_game" class="collection-item grey-text text-darken-4 translatable_app_center_games" onclick="ACCategorySelect(5)">Games</a>
  696. <a name="center_arvr" class="collection-item grey-text text-darken-4 translatable_app_center_arvr" onclick="ACCategorySelect(6)">AR/VR</a>
  697. </div>
  698. </div>
  699. <div style="float:center;padding-top:5px; overflow-y:auto;max-height:400px" class="col s9">
  700. <div id="center_ai" class=" col s12">
  701. <h5 class="translatable_app_center_ai">Artificial Intelligence</h5>
  702. <ul class="tabs">
  703. <li class="tab col s2"><a href="#center_ai_vision" class="translatable_app_center_tab_vision active">Vision</a></li>
  704. <li class="tab col s2"><a href="#center_ai_speech" class="translatable_app_center_tab_speech">Speech</a></li>
  705. <li class="tab col s2"><a href="#center_ai_text" class="translatable_app_center_tab_text">Text</a></li>
  706. </ul>
  707. <div id="center_ai_vision" class="col s12">
  708. <div style="float:center;" class="col s6">
  709. <div class="card">
  710. <div class="card-image waves-effect waves-block waves-light">
  711. <img class="" src="icons/AppCenter_ai_teachableMachine.jpg" style="border: solid 1.2px lightgray;">
  712. </div>
  713. <div class="card-content">
  714. <!-- <span class="AI_card_content">COCOCLOUD APP</span> -->
  715. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_Teachabel_Machine">Teachable Machine</span>
  716. <p class="">
  717. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button modal-trigger" href="#Teachable_Machine">Enter</a>
  718. </p>
  719. </div>
  720. </div>
  721. </div>
  722. <div style="float:center;" class="col s6">
  723. <div class="card">
  724. <div class="card-image waves-effect waves-block waves-light">
  725. <!-- <img class="activator" src="icons/app-center_ai_emotion.jpg"> -->
  726. <img class="" src="icons/AppCenter_ai_emotion.jpg">
  727. </div>
  728. <div class="card-content">
  729. <!-- <span class="AI_card_content">COCOCLOUD APP</span> -->
  730. <span id="ac-card-title emotion_recognition_enter_button" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_emotion_recognition">Emotion Recognition</span>
  731. <p class="">
  732. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button modal-trigger" href="#webcam_capture_modal">Enter</a>
  733. </p>
  734. </div>
  735. </div>
  736. </div>
  737. </div>
  738. <div id="center_ai_speech" class="col s12">
  739. <div style="float:center;" class="col s6">
  740. <div class="card">
  741. <div class="card-image waves-effect waves-block waves-light">
  742. <img class="" src="icons/AppCenter_ai_speech.jpg">
  743. </div>
  744. <div class="card-content">
  745. <!-- <span class="AI_card_content">COCOCLOUD APP</span> -->
  746. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_speech_recognition">Speech Recognition</span>
  747. <p class="">
  748. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button modal-trigger" href="#voice_input_modal">Enter</a>
  749. </p>
  750. </div>
  751. </div>
  752. </div>
  753. </div>
  754. <div id="center_ai_text" class="col s12">
  755. <div style="float:center;" class="col s6">
  756. <div class="card">
  757. <div class="card-image waves-effect waves-block waves-light">
  758. <img class="" src="./icons/AppCenter_comingSoon.jpg">
  759. </div>
  760. <div class="card-content">
  761. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_wait_to_come">Comming soon</span>
  762. <p class="">
  763. <!-- <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button disabled" href="#">Enter</a> -->
  764. </p>
  765. </div>
  766. </div>
  767. </div>
  768. </div>
  769. </div>
  770. <div id="center_iot" class=" col s12" style="display:none">
  771. <h5 class="translatable_app_center_iot">Internet of Things</h5>
  772. <div style="float:center;" class="col s6">
  773. <div class="card">
  774. <div class="card-image waves-effect waves-block waves-light">
  775. <img class="" src="icons/AppCenter_iot_thingspeak.jpg">
  776. </div>
  777. <div class="card-content">
  778. <!-- <span class="AI_card_content">3RD-PARTY APP</span> -->
  779. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 ">ThingSpeak</span>
  780. <p class="">
  781. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button modal-trigger" href="https://thingspeak.com" target="_blank">Enter</a>
  782. </p>
  783. </div>
  784. </div>
  785. </div>
  786. <div style="float:center;" class="col s6">
  787. <div class="card">
  788. <div class="card-image waves-effect waves-block waves-light">
  789. <img class="" src="icons/AppCenter_iot_ifttt.jpg">
  790. </div>
  791. <div class="card-content">
  792. <!-- <span class="AI_card_content">3RD-PARTY APP</span> -->
  793. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 ">IFTTT</span>
  794. <p class="">
  795. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button modal-trigger" href="https://ifttt.com/maker_webhooks" target="_blank">Enter</a>
  796. </p>
  797. </div>
  798. </div>
  799. </div>
  800. </div>
  801. <div id="center_robot" class=" col s12" style="display:none">
  802. <h5 class="translatable_app_center_robot">Robot Controller</h5>
  803. <div style="float:center;" class="col s6">
  804. <div class="card">
  805. <div class="card-image waves-effect waves-block waves-light">
  806. <img class="" src="./icons/AppCenter_comingSoon.jpg">
  807. </div>
  808. <div class="card-content">
  809. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_wait_to_come">Comming soon</span>
  810. <p class="">
  811. <!-- <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button disabled" href="#">Enter</a> -->
  812. </p>
  813. </div>
  814. </div>
  815. </div>
  816. </div>
  817. <div id="center_science" class="col s12" style="display:none">
  818. <h5 class="translatable_app_center_science">Science Experiements</h5>
  819. <div style="float:center;" class="col s6">
  820. <div class="card">
  821. <div class="card-image waves-effect waves-block waves-light">
  822. <img class="" src="./icons/AppCenter_comingSoon.jpg">
  823. </div>
  824. <div class="card-content">
  825. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_wait_to_come">Comming soon</span>
  826. <p class="">
  827. <!-- <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button disabled" href="#">Enter</a> -->
  828. </p>
  829. </div>
  830. </div>
  831. </div>
  832. </div>
  833. <div id="center_game" class=" col s12" style="display:none">
  834. <h5 class="translatable_app_center_games">Interactive Games</h5>
  835. <div style="float:center;" class="col s6">
  836. <div class="card">
  837. <div class="card-image waves-effect waves-block waves-light">
  838. <img class="" src="./icons/AppCenter_game_floppy-bird.jpg">
  839. </div>
  840. <div class="card-content">
  841. <!-- <span class="AI_card_content">3RD-PARTY APP</span> -->
  842. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_game_flappy">Floppy bird</span>
  843. <p class="">
  844. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button " href="https://cocorobo.cn/demo/floppybird/" target="_blank">Enter</a>
  845. </p>
  846. </div>
  847. </div>
  848. </div>
  849. <div style="float:center;" class="col s6">
  850. <div class="card">
  851. <div class="card-image waves-effect waves-block waves-light">
  852. <img class="" src="icons/AppCenter_game_space_lamb.jpg">
  853. </div>
  854. <div class="card-content">
  855. <!-- <span class="AI_card_content">3RD-PARTY APP</span> -->
  856. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_game_space_lamb">Space Lamb</span>
  857. <p class="">
  858. <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button " href="https://spacelamb.12wave.com" target="_blank">Enter</a>
  859. </p>
  860. </div>
  861. </div>
  862. </div>
  863. </div>
  864. <div id="center_arvr" class=" col s12" style="display:none">
  865. <h5 class="translatable_app_center_arvr">AR/VR</h5>
  866. <div style="float:center;" class="col s6">
  867. <div class="card">
  868. <div class="card-image waves-effect waves-block waves-light">
  869. <!-- <img class="activator" src="icons/app-center_ai_speech.jpg"> -->
  870. <img class="" src="icons/AppCenter_comingSoon.jpg">
  871. </div>
  872. <div class="card-content">
  873. <span id="ac-card-title" class="ac-card-title card-title activator grey-text text-darken-4 translatable_app_center_wait_to_come">Comming soon</span>
  874. <p class="">
  875. <!-- <a class="waves-effect waves-light btn blue accent-3 translatable_app_center_enter_button disabled" href="#">Enter</a> -->
  876. </p>
  877. </div>
  878. </div>
  879. </div>
  880. </div>
  881. </div>
  882. </div>
  883. </div>
  884. </div>
  885. </div>
  886. <!-- webcam input modal -->
  887. <div id="webcam_capture_modal" class="modal">
  888. <div id="emotionRecognitionTitle" class="modal-content">
  889. <div style="margin-bottom:-10px;margin-top:10px;" class="row">
  890. <div class="col s8">
  891. <h4 class="translatable_webcamDemoTitle">Emotion Recognition</h4>
  892. </div>
  893. <div style="text-align:right;" class="col s4">
  894. <a style="cursor: pointer;text-decoration:none; color:rgba(0,0,0.9);" id="emotion_recognition_close">
  895. <h4><i class="small material-icons">close</i></h4>
  896. </a>
  897. </div>
  898. </div>
  899. <!--<div> <span class="translatable_cloudFileTooltip" sytle="margin-left:10px">Type project's name and click save</span></div>-->
  900. <div class="row">
  901. <div class="col s12">
  902. <div class="switch" style="margin-bottom:20px;">
  903. <label>
  904. <span class="translatable_emotion_camera_off">Camera Off</span>
  905. <input id="camera_switch" type="checkbox" onclick="cameraSwitch()">
  906. <span class="lever "></span><span class="translatable_emotion_camera_on">On</span>
  907. </label>
  908. </div>
  909. </div>
  910. </div>
  911. <div class="row" style="text-align:left;">
  912. <div style="float:center;" class="col s6">
  913. <p class="translatable_face_webcam" style="margin-top:-20px;">Webcam:</p>
  914. <div id="webCamera"></div>
  915. <div class="translatable_emotion_camera_turnon_text" id="webCamPlaceholder">Turn on the Camera first</div>
  916. </div>
  917. <div style="float:center;" class="col s6">
  918. <p class="translatable_face_latest_snapshot" style="margin-top:-20px;">Last snapshot:</p>
  919. <div id="results"></div>
  920. <div class="translatable_emotion_snapshot_text" id="SnapshotPlaceholder">Your snapshot will be here</div>
  921. </div>
  922. </div>
  923. <div class="row">
  924. <div class="col s6">
  925. <a id="emotionRequestStatus" class="waves-effect waves-light btn blue translatable_face_analyze" onclick="processImage()">Analyze</a>
  926. </div>
  927. </div>
  928. <div class="row" style="text-align:left;">
  929. <div id="emotionResultsAll" class="col s12">
  930. <span class="translatable_emotion_result_title" id="facialanalysistitle" style="font-weight:200;">Facial Analysis:</span>
  931. <p id="emotionResultsAll_property">
  932. <b class="translatable_emotion_result_emotion_title">Emotion:</b>
  933. <span id="emotionResults_emotion" class="emotionResultsAll_single translatable_emotion_result_default">Nothing detected.</span>
  934. </p>
  935. <p id="emotionResultsAll_property">
  936. <b class="translatable_emotion_result_age_title">Age:</b>
  937. <span id="emotionResults_age" class="emotionResultsAll_single translatable_emotion_result_default">Nothing detected.</span>
  938. </p>
  939. <p id="emotionResultsAll_property">
  940. <b class="translatable_emotion_result_gender_title">Gender:</b>
  941. <span id="emotionResults_gender" class="emotionResultsAll_single translatable_emotion_result_default">Nothing detected.</span>
  942. </p>
  943. <p id="emotionResultsAll_property">
  944. <b class="translatable_emotion_result_glasses_title">Glasses:</b>
  945. <span id="emotionResults_glasses" class="emotionResultsAll_single translatable_emotion_result_default">Nothing detected.</span>
  946. </p>
  947. <!-- <p id="emotionResultsAll_property">
  948. <b>Hair Color:</b>
  949. <span id="emotionResults_hair" class="emotionResultsAll_single">Nothing detected.</span>
  950. </p>-->
  951. </div>
  952. <div id="cloudRequestStatus" class="col s12">
  953. </div>
  954. </div>
  955. <div class="row">
  956. <div class="col s12" style="position: relative">
  957. <div class="translatable_selectEvent">Choose a CocoCloud event here, the analyzed result will directly send to there</div>
  958. <div style="width:100%;margin-top: 15px;">
  959. <select class="browser-default" id="AI_webcam_events">
  960. <option class="translatable_noEvent" value=null disabled>No event here. Login first</option>
  961. </select>
  962. </div>
  963. <span style="float:right;top: -45px;position: relative;margin-top: -38px;">
  964. <i id="update_Coevent_web" class="material-icons">autorenew</i>
  965. </span>
  966. </div>
  967. </div>
  968. </div>
  969. </div>
  970. <div id="voice_input_modal" class="modal">
  971. <div class="modal-content">
  972. <div style="margin-top:10px;" class="row">
  973. <div class="col s8">
  974. <h4 class="translatable_speechDemoTitle">Speech Recognition</h4>
  975. </div>
  976. <div style="text-align:right;" class="col s4">
  977. <a style="cursor: pointer;text-decoration:none; color:rgba(0,0,0.9);" id="voice_input_close">
  978. <h4><i class="small material-icons">close</i></h4>
  979. </a>
  980. </div>
  981. </div>
  982. <div style="margin-bottom:10px;margin-top:-20px;" class="row">
  983. <div class="col s12">
  984. <p class="translatable_speechTip" style="font-size:15px;font-weight:200;">Voice recognition for English, Cantonese & Mandarin.</p>
  985. <hr style="position:relative;top:-2px;margin-bottom:15px;border-color:rgba(0,0,0,.1); border-width: 1px;">
  986. </div>
  987. </div>
  988. <div class="row" style="margin-top:-15px;margin-bottom:10px">
  989. <div class="col s4">
  990. <p class="translatable_speech_language_select">Select a language to recognize:</p>
  991. </div>
  992. <div style="margin-left:-20px;" class="col s2 speech_language" style="position:relative;top:3px">
  993. <select id="speech_language_selection" class="browser-default" style="max-width:200px">
  994. <option value="english" class="translatable_speech_language_English">English</option>
  995. <option value="cantonese" class="translatable_speech_language_Cantonese">Cantonese</option>
  996. <option value="mandarin" class="translatable_speech_language_Mandarin">Mandarin</option>
  997. </select>
  998. </div>
  999. <div class="col s1" style="position:relative;top:5px">
  1000. <a id="speech_button" class="waves-effect waves-light btn blue" style="padding:0 8px" onclick="processSpeech()/*startSpeech()*/"><i class="material-icons">mic</i></a>
  1001. </div>
  1002. <div class="col s5" style="position:relative;top:15px">
  1003. <span style="font-weight:200;margin-left:-5px;" id="speech_process_title" style="position:relative;top:-6px;"></span>
  1004. </div>
  1005. </div>
  1006. <div class="row">
  1007. <textarea id="speech_textarea" row="3" class="disabled translatable_speech_textarea_title" style="width:772px;height:130px;resize:none;border-radius:5px;padding:10px;color:rgba(0,0,0,.4);" readonly> Click on the mic button to start dictating...</textarea>
  1008. </div>
  1009. <div style="margin-top:-8px;" class="row">
  1010. <div class="col s12" style="position: relative; margin-bottom:12px;">
  1011. <span id="speechDemoCloudRequest" style="font-weight:200;"></span>
  1012. </div>
  1013. <div class="col s12" style="position: relative">
  1014. <div class="translatable_selectEvent">Choose a CocoCloud event here, the analyzed result will directly send to there</div>
  1015. <div style="width:95%">
  1016. <select style="margin-top:10px;" class="browser-default" id="AI_voice_events">
  1017. <option class="translatable_noEvent" value=null disabled>No event here. Login first</option>
  1018. </select>
  1019. </div>
  1020. <span style="float:right;top: -45px;position: relative;">
  1021. <i id="update_Coevent_voice" class="material-icons">autorenew</i>
  1022. </span>
  1023. </div>
  1024. </div>
  1025. </div>
  1026. </div>
  1027. <!-- login modal -->
  1028. <div id="login_modal" class="modal" style="top:62px">
  1029. <div id="login_modal_preload" class="progress" style="display:none">
  1030. <div class="indeterminate"></div>
  1031. </div>
  1032. <div class="modal-content" style="padding:0;">
  1033. <!-- add for login iframe -->
  1034. <div id="before_login"></div>
  1035. <div id="after_login">
  1036. <div id="userProfile_alias"></div>
  1037. <div><span class="translatable_user_email">Email:</span><span id="userProfile_username"> </span></div>
  1038. <div><span class="translatable_user_school">School:</span><span id="userProfile_school"></span></div>
  1039. <div id="userProfile_apikey">
  1040. <div>
  1041. <span class="translatable_Event">Event: </span>
  1042. <span style="margin-top: -13px;float:right;transform:translateY(35%);">
  1043. <i id="update_Coevent" class="material-icons">autorenew</i>
  1044. </span>
  1045. <select style="width: 100%; margin: 6px auto 8px auto; border: 1px solid rgba(0,0,0,.2);" class="browser-default" id="cloud_events">
  1046. <option value=null disabled>No Event</option>
  1047. </select>
  1048. </div>
  1049. <div style="margin-top:5px">
  1050. <span>API Key: </span>
  1051. <a id="apikey-copy" data-clipboard-action="copy" data-clipboard-target="#api-key">
  1052. <i class="material-icons tiny">content_copy</i>
  1053. </a>
  1054. <textarea style="padding: 6px 6px; margin-top: 4px;" id="api-key" readonly></textarea>
  1055. </div>
  1056. </div>
  1057. </div>
  1058. </div>
  1059. <div class="modal-footer" style="display:none;">
  1060. <a id="modal_logout_btn" class="waves-effect btn-flat blue"><span class="translatable_signout">Sign Out</span></a>
  1061. <a id="modal_cococloud_btn" href="//cocorobo.cn/cloud" target="_black" class="waves-effect btn-flat blue"><span class="translatable_cococloud">Go to CocoCloud</span></a>
  1062. </div>
  1063. </div>
  1064. <!-- local storage - import modal -->
  1065. <div id="Storage_import_modal" class="modal" style="width:730px">
  1066. <div class="modal-content">
  1067. <h4 class="translatable_localStorageImport">Import Project</h4>
  1068. <div> <span class="translatable_ImportTooltip" sytle="margin-left:10px">Select your project file(*.xml) and import it to the current workspace.Warning:will replace current blocks</span></div>
  1069. <div id="import_area" class="row" style="margin: 10px;height: 200px;position: relative;">
  1070. <a id="modal_import_btn" class="waves-effect btn-flat blue" style="top:180px;left:320px;position:fixed"><span class="translatable_import" style="font-size:15px;color:#fff">Import</span></a>
  1071. <span class="translatable_ImportContent" style="top: 230px;width:300px;left:27%;position:fixed;text-align:center">Click to choose a file from your computer</span>
  1072. </div>
  1073. </div>
  1074. </div>
  1075. <!-- local storage - export modal -->
  1076. <div id="Storage_export_modal" class="modal" style="width:730px">
  1077. <div class="modal-content">
  1078. <h4 class="translatable_localStorageExport">Export Project</h4>
  1079. <div> <span class="translatable_ExportTooltip" sytle="margin-left:10px">Export current project blocks and save it your computer,so you can open it next time when you need it</span></div>
  1080. <div class="row" style="margin: 10px;height: 200px;width: 640px;position: relative;">
  1081. <div style="display:block">
  1082. <div class="col l6">
  1083. <img src="./icons/blockly-file-export_xml.png" style="width:20%;position:relative;left:50%;right:50%;transform:translateX(-50%);">
  1084. </div>
  1085. <div class="col l6">
  1086. <img src="./icons/blockly-file-export_png.png" style="width:20%;position:relative;left:50%;right:50%;transform:translateX(-50%);">
  1087. </div>
  1088. </div>
  1089. <div>
  1090. <div class="col l6">
  1091. <a id="modal_exportFileBtn" class="waves-effect btn-flat blue" style="left: 50%;right: 50%;transform: translateX(-50%)"><span class="translatable_exportFile" style="font-size:15px;color:#fff">Project File</span></a>
  1092. </div>
  1093. <div class="col l6">
  1094. <a id="modal_exportSnapBtn" class="waves-effect btn-flat blue" style="left: 50%;right: 50%;transform: translateX(-50%)"><span class="translatable_exportSnap" style="font-size:15px;color:#fff">Snapshot</span></a>
  1095. </div>
  1096. </div>
  1097. <div>
  1098. <div class="col l6">
  1099. <p class="translatable_ExportFileContent" style="display:block;text-align:center;width:80%;position: relative;left: 50%;right: 50%;transform: translateX(-50%);font-size:0.875rem">Will export as an *xml file.<br>for you to continuing code nextime</p>
  1100. </div>
  1101. <div class="col l6">
  1102. <p class="translatable_ExportSnapContent" style="display:block;text-align:center;width:80%;position: relative;left: 50%;right: 50%;transform: translateX(-50%);font-size:0.875rem">Will export to a *png picture.<br>for your reference</p>
  1103. </div>
  1104. </div>
  1105. </div>
  1106. </div>
  1107. </div>
  1108. <!-- cloud storage modal -->
  1109. <div id="cloud_storage_modal" class="modal">
  1110. <div class="modal-content">
  1111. <h4 class="translatable_cloudStorageTitle">Cloud Storage</h4>
  1112. <div id="cloud_askLogin"></div>
  1113. <div id="cloud_fileListArea" class="cloud-file" style="display:none">
  1114. </div>
  1115. </div>
  1116. <div id="cloud_modal_preload" style="display:none">
  1117. <div style="position:relative;top:50%;transform:translateY(-50%);height:128px;width:128px;margin:0 auto;">
  1118. <div class="preloader-wrapper big active" style="top:0;left:0">
  1119. <div class="spinner-layer spinner-blue-only">
  1120. <div class="circle-clipper left">
  1121. <div class="circle"></div>
  1122. </div>
  1123. <div class="gap-patch">
  1124. <div class="circle"></div>
  1125. </div>
  1126. <div class="circle-clipper right">
  1127. <div class="circle"></div>
  1128. </div>
  1129. </div>
  1130. </div>
  1131. </div>
  1132. </div>
  1133. </div>
  1134. </div>
  1135. <!-- export monitor data modal -->
  1136. <div id="export-file" class="modal" style="width:20%">
  1137. <div class="modal-content" style="padding:20px,20px,0,20px">
  1138. <h5 class="translatable_modal_export_title">Choose the file type you want to save as</h5>
  1139. <div class="row">
  1140. <div class="input-field col s3"></div>
  1141. <div class="input-field col s6">
  1142. <select id="export-file-type" style="font-size:10px;margin-bottom:0;">
  1143. <option value="txt" selected>TXT</option>
  1144. <option value="csv">CSV</option>
  1145. </select>
  1146. </div>
  1147. <div class="input-field col s3"></div>
  1148. </div>
  1149. </div>
  1150. <div class="modal-footer">
  1151. <a id="modal-export-confirm-btn" class="col s6 waves-effect waves-light blue lighten-2 btn translatable_modal_export_comfirm" style="float:right;margin-right:10px">confirm</a>
  1152. <!-- <a class="col s6 waves-effect waves-light blue lighten-2 btn"style="float:right;margin-right:10px"
  1153. onclick="exportMonitorData('.txt')">txt
  1154. </a>
  1155. <a class="col s6 waves-effect waves-light blue lighten-2 btn"style="float:right;margin-right:10px"
  1156. onclick="exportMonitorData('.csv')">csv
  1157. </a> -->
  1158. </div>
  1159. </div>
  1160. <!-- uploader version reminder modal -->
  1161. <div id="uploader_reminder" class="modale" style="width: 800px;">
  1162. <div class="modal-content">
  1163. <h4 class="translatable_uploader_reminder_title" style="font-size:2.0rem">Please upgrade your CocoBlockly Pi Uploader</h4>
  1164. <p>
  1165. <span class="translatable_uploader_reminder_currentVersion">Current version:</span>
  1166. <span id="uploader_currentVersion"></span>
  1167. <span> / </span>
  1168. <span class="translatable_uploader_reminder_newVersion">Latest version: </span>
  1169. <sapn id="uploader_newVersion"></sapn>
  1170. </p>
  1171. <p id="uploader_content_update" class="translatable_uploader_reminder_text3">To ensure a smooth user experience, we strongly recommend you to keep the software updated.
  1172. <br>There are two ways to upgrade the CocoBlockly Pi Uploader:
  1173. <br>&nbsp&nbsp&nbsp&nbsp1) Right click the system tray icon in the system status bar, then click "Update";
  1174. <br>&nbsp&nbsp&nbsp&nbsp2) Download our latest release from our server: <a download href="http://cocorobo.cn/downloads/CocoBlocklyUploader_v3.0.6_Windows.exe" target="_black">Windows</a> /<a download href="http://cocorobo.cn/downloads/CocoBlocklyUploader_v3.0.6_macOS.dmg" target="_black">macOS</a>
  1175. </p>
  1176. <p id="uploader_content_redownload" class="translatable_uploader_reminder_text4" style="display:none">The version of uploader isn't support any more, we strongly recommend you to keep the software updated.
  1177. <br>Download our latest release from our server: <a download href="http://cocorobo.cn/downloads/CocoBlocklyUploader_v3.0.6_Windows.exe" target="_black">Windows</a> /<a download href="http://cocorobo.cn/downloads/CocoBlocklyUploader_v3.0.6_macOS.dmg" target="_black">macOS</a>
  1178. </p>
  1179. </div>
  1180. <div class="modal-footer">
  1181. <div>
  1182. <a id="reminder_close" class="waves-effect waves-green btn-flat blue translatable_uploader_reminder_done" style="margin-right:10px">Got it</a>
  1183. </div>
  1184. </div>
  1185. </div>
  1186. <!-- start tour modal -->
  1187. <div id="tourmode" class="modal">
  1188. <div class="modal-content">
  1189. <h4 class="translatable_tourmodal_title">Welcome to CocoBlockly Pi!</h4>
  1190. <p class="translatable_tourmodal_text">Follow "Start Tour" to get all information about CocoBlockly Pi.</p>
  1191. </div>
  1192. <div class="modal-footer">
  1193. <a class="modal-action modal-close waves-effect waves-green btn-flat translatable_tourmodal_click" href="http://help.cocorobo.cn/#/getting-started/info?id=cocoblockly-%E7%95%8C%E9%9D%A2%E5%8F%8A%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%B4%B9" target="_black">Start Tour</a>
  1194. </div>
  1195. </div>
  1196. <!-- gif tour mode - slide -->
  1197. <div id="tour_slider_modal" class="modal slide-section" style="display:none">
  1198. <div style="height: 45px;">
  1199. <i id="tour_modal_close" class="right material-icons btn-flat grey">close</i>
  1200. </div>
  1201. <section id="section-slider" class="variable slider" style="width:90%;top:2px;left:36px;height:90%">
  1202. <div>
  1203. <div class="slide-content">
  1204. <img data-src="./gif/step01.jpg" class="lazyload slide-element">
  1205. </div>
  1206. <p class="slide-text translatable_tour_start">Follow this beginner-level instruction, you will learn how to use CocoBlockly Pi to code:</p>
  1207. </div>
  1208. <div>
  1209. <div class="slide-content">
  1210. <img data-src="./gif/step02.gif" class="lazyload slide-element">
  1211. </div>
  1212. <p class="slide-text translatable_tour_editProject">Edit Project Title: Click the input on the top left, type a desired name of your project</p>
  1213. </div>
  1214. <div>
  1215. <div class="slide-content">
  1216. <img data-src="./gif/step03.gif" class="lazyload slide-element">
  1217. </div>
  1218. <p class="slide-text translatable_tour_menuBar">Menu Bar: Here you will find 4 important functions: Help, Cloud Storage, Local Import/Export and Language Switch (English, Simplified Chinese and Traditional Chinese)</p>
  1219. </div>
  1220. <div>
  1221. <div class="slide-content">
  1222. <img data-src="./gif/step04.gif" class="lazyload slide-element">
  1223. </div>
  1224. <p class="slide-text translatable_tour_personAccount">Personal Account: Click the avatar and login to your account, experience features like the cloud storage and IoT applet via CocoCloud.</p>
  1225. </div>
  1226. <div>
  1227. <div class="slide-content">
  1228. <img data-src="./gif/step05.gif" class="lazyload slide-element">
  1229. </div>
  1230. <p class="slide-text translatable_tour_blocklyToolbox">Blockly Toolbox: Where all CocoBlockly Pi blocks exists, from Logic to blocks for CocoRobo Module, we also provide examples in order to help users getting started</p>
  1231. </div>
  1232. <div>
  1233. <div class="slide-content">
  1234. <!-- <img src="./gif/step06a.gif" class="slide-element" style="margin-top: 40px;"> -->
  1235. <img data-src="./gif/step06a.gif" class="lazyload slide-element">
  1236. </div>
  1237. <p class="slide-text translatable_tour_codeWorkspace_1">Coding Workspace (1): Drag the block;</p>
  1238. </div>
  1239. <div>
  1240. <div class="slide-content">
  1241. <!-- <img src="./gif/step06b.gif" class="slide-element" style="margin-top: 40px;"> -->
  1242. <img data-src="./gif/step06b.gif" class="lazyload slide-element">
  1243. </div>
  1244. <p class="slide-text translatable_tour_codeWorkspace_2">Coding Workspace (2): Duplicate the block;</p>
  1245. </div>
  1246. <div>
  1247. <div class="slide-content">
  1248. <!-- <img src="./gif/step06c.gif" class="slide-element" style="margin-top: 40px;"> -->
  1249. <img data-src="./gif/step06c.gif" class="lazyload slide-element">
  1250. </div>
  1251. <p class="slide-text translatable_tour_codeWorkspace_3">Coding Workspace (3): Delete the block;</p>
  1252. </div>
  1253. <div>
  1254. <div class="slide-content">
  1255. <!-- <img src="./gif/step06d.gif" class="slide-element" style="margin-top: 40px;"> -->
  1256. <img data-src="./gif/step06d.gif" class="lazyload slide-element">
  1257. </div>
  1258. <p class="slide-text translatable_tour_codeWorkspace_4">Coding Workspace (4): Delete all blocks;</p>
  1259. </div>
  1260. <div>
  1261. <div class="slide-content">
  1262. <img data-src="./gif/step07.gif" class="lazyload slide-element">
  1263. </div>
  1264. <p class="slide-text translatable_tour_sourceCodeArea">Source Code Area: When you drag block to coding workspace, this area will automatically generate Arduino source code for reference.</p>
  1265. </div>
  1266. <div>
  1267. <div class="slide-content">
  1268. <!-- <img src="./gif/step08.gif" class="slide-element"style="margin-top: 90px;"> -->
  1269. <img data-src="./gif/step08.gif" class="lazyload slide-element">
  1270. </div>
  1271. <p class="slide-text translatable_tour_uploadArea">Upload Area: When you finished coding, click the Compile option to verify if your code is valid, make sure you have a good internet connection.Click the Upload option to upload the code to your module (Note: Please do not disconnect the
  1272. module from your computer while the code is uploading)</p>
  1273. </div>
  1274. <div>
  1275. <div class="slide-content">
  1276. <img data-src="./gif/step09.gif" class="lazyload slide-element">
  1277. </div>
  1278. <p class="slide-text translatable_tour_serialMonitorArea">Serial Monitor Area: Like Arduino IDE, in here you can debug your code, such as put the value to the monitor to check if it's right.</p>
  1279. </div>
  1280. <div>
  1281. <div class="slide-content">
  1282. <img data-src="./gif/step10.gif" class="lazyload slide-element">
  1283. </div>
  1284. <p class="slide-text translatable_tour_switchtoFullScreen">Switch to Full Screen: When you feel the coding space is narrow, you can always toggle the full screen option in the top-right toolbar</p>
  1285. </div>
  1286. <div>
  1287. <div class="slide-content">
  1288. <img data-src="./gif/step11.gif" class="lazyload slide-element">
  1289. </div>
  1290. <p class="slide-text translatable_tour_mainMode">(Main Mode) Upload Code: Under Main Mode, CocoBlockly Pi will only detect Main Controller Module, and you will be able to upload the main mode code to the module. If you are using WiFi Module, the interface will automatically change to WiFi
  1291. Mode.
  1292. </p>
  1293. </div>
  1294. <div>
  1295. <div class="slide-content">
  1296. <img data-src="./gif/step12.gif" class="lazyload slide-element">
  1297. </div>
  1298. <p class="slide-text translatable_tour_wifiMode">(WiFi Mode) Upload Code: Under WiFi Mode, CocoBlockly Pi will only detect WiFi Module, and you will be able to upload the wifi mode code to the module. If you are using Main Controller Module, the interface will automatically change to Main
  1299. Mode.
  1300. </p>
  1301. </div>
  1302. <div>
  1303. <div class="slide-content">
  1304. <img data-src="./gif/step-cloud1.gif" class="lazyload slide-element">
  1305. </div>
  1306. <p class="slide-text translatable_tour_cloudStorage_update">Cloud Storage: To add a new project to our cloud, click the Cloud Storage icon and a prompt will open, change the name to a desired one if you needed, then click "Update" button.</p>
  1307. </div>
  1308. <div>
  1309. <div class="slide-content">
  1310. <img data-src="./gif/step-cloud2.gif" class="lazyload slide-element">
  1311. </div>
  1312. <p class="slide-text translatable_tour_cloudStorge_open">Cloud Storage: To open a new project from your cloud, single-click the project name, then click the "Open" button.</p>
  1313. </div>
  1314. <div>
  1315. <div class="slide-content">
  1316. <img data-src="./gif/step-cloud3.gif" class="lazyload slide-element">
  1317. </div>
  1318. <p class="slide-text translatable_tour_cloudStorge_delete">Cloud Storage: To delete a project from your cloud, single-click the project name, then click the "Delete" button.</p>
  1319. </div>
  1320. <div>
  1321. <div class="slide-content">
  1322. <img data-src="./gif/final-step.gif" class="lazyload slide-element">
  1323. </div>
  1324. <p class="slide-text translatable_tour_end">Congratulations! You have sucessfully mastered the fundametals of CocoBlockly Pi, start coding yourself now!</p>
  1325. </div>
  1326. </section>
  1327. </div>
  1328. <!-- <script>
  1329. $('.dropdown-button + .dropdown-content').on('click', function(event) {
  1330. event.stopPropagation();
  1331. });
  1332. </script>-->
  1333. <!-- Mopinion Pastea.se end -->
  1334. <!-- Desktop version of Ardublockly JS, needs to be loaded first. -->
  1335. <script src="ardublockly_desktop.js"></script>
  1336. <!-- jQuery and Materialize JS -->
  1337. <script src="js_libs/jquery-2.1.3.min.js"></script>
  1338. <script src="materialize/js/materialize.js"></script>
  1339. <!-- Slick JS -->
  1340. <script src="slick/slick.js"></script>
  1341. <script>
  1342. $(".variable").slick({
  1343. dots: true,
  1344. infinite: true,
  1345. variableWidth: true
  1346. });
  1347. </script>
  1348. <!-- FileSaver JS -->
  1349. <script src="js_libs/FileSaver.min.js"></script>
  1350. <!-- JS Diff -->
  1351. <script src="js_libs/diff.js"></script>
  1352. <!-- Prettify JS -->
  1353. <script src="prettify/prettify.js"></script>
  1354. <!-- Lazyload JS -->
  1355. <script src="lazysize/lazysizes.min.js"></script>
  1356. <!-- Socket.io -->
  1357. <script src="socket.io-client/dist/socket.io.js"></script>
  1358. <!-- clipboard -->
  1359. <script src="clipboard/dist/clipboard.js"></script>
  1360. <!-- Event Proxy -->
  1361. <script src="eventproxy/eventproxy.js"></script>
  1362. <!-- platform.js -->
  1363. <script src="platformjs/platform.js"></script>
  1364. <!-- AI Face Emotion Recognition -->
  1365. <script type='text/javascript' src="demo.js"></script>
  1366. <script type='text/javascript' src="recorder.js"></script>
  1367. <script type='text/javascript' src="jquery.s2t.js"></script>
  1368. <!-- network online detection -->
  1369. <!-- <script src="onlineJS/online.js"></script> -->
  1370. <!-- crazyegg -->
  1371. <!-- <script type="text/javascript" src="//script.crazyegg.com/pages/scripts/0082/8235.js" async="async"></script> -->
  1372. <!-- Clicky Tracking Code for cocorobo.cn -->
  1373. <!-- <script async defer src="//static.getclicky.com/js" type="text/javascript"></script> -->
  1374. </body>
  1375. </html>