#espruino
Explore tagged Tumblr posts
Text
Shelly Scripting #1: Was ist das überhaupt? Grundlagen und Vorteile
Shelly Scripting eröffnet völlig neue Möglichkeiten in der Welt der Heimautomatisierung. Die Geräte von Shelly sind bereits für ihre Flexibilität und Benutzerfreundlichkeit bekannt, doch mit der Shelly Script Language kannst du ihre Funktionalität noch weiter anpassen. Diese leistungsstarke, auf JavaScript basierende Sprache erlaubt es dir, individuelle Automatisierungen und Steuerungen direkt auf deinen Shelly-Geräten zu erstellen – ganz ohne zusätzliche Hardware oder Cloud-Dienste. https://youtu.be/wTUAZC5-svM Shelly Scripts laufen auf einer angepassten Version von Espruino, einem minimalistischen JavaScript-Interpreter. Diese Änderung bringt die Script-Funktionalität näher an den JavaScript-Standard, während sie weiterhin die Einfachheit und Effizienz bietet, die Shelly-Nutzer schätzen. Wenn du bereit bist, die ersten Schritte in die Welt des Shelly Scripting zu machen, wirst du überrascht sein, wie intuitiv und flexibel die Möglichkeiten sind.
Shelly Scripting - einfaches Script mit Ausgabe in der Konsole
Was sind Shelly Scripts?
Shelly Scripts sind kleine Programme, die direkt auf deinem Shelly-Gerät laufen und dir erlauben, dessen Verhalten individuell anzupassen. Du kannst zum Beispiel Sensordaten erfassen, bestimmte Aktionen basierend auf Bedingungen auslösen oder Shelly-Geräte in komplexere Smart-Home-Systeme integrieren. Das Besondere an Shelly Scripts ist, dass sie lokal auf dem Gerät ausgeführt werden. Das bedeutet: keine Abhängigkeit von Cloud-Diensten und keine Verzögerungen durch externe Netzwerke. Du hast die volle Kontrolle und kannst deine Automationen nach deinen Bedürfnissen gestalten. Die Shelly Script Language nutzt Espruino, eine leichtgewichtige JavaScript-Umgebung, die ideal für eingebettete Systeme ist. Im Vergleich zu früheren Versionen bietet Espruino mehr Kompatibilität mit dem JavaScript-Standard und ermöglicht damit eine vertrautere Programmiererfahrung.
Welche Geräte unterstützen Shelly Scripting?
Nicht alle Shelly-Geräte unterstützen die Skriptfunktionalität. Laut Hersteller ist Shelly Scripting ausschließlich für Geräte der Pro- und Plus-Serie verfügbar. Diese Geräte verfügen über die notwendige Hardware und Software, um die erweiterten Funktionen von Shelly Scripts nutzen zu können. Unterstützte Serien - Shelly Plus: Moderne Shelly-Geräte mit erweiterten Funktionen und schnellerer Hardware. - Shelly Pro: Geräte, die speziell für professionelle Anwendungen und komplexere Installationen entwickelt wurden.
Shelly 1 PM Mini Gen 3 & Shelly Plus 1PM Mini
Shelly Plus 1 & Shelly 1 Mini Gen3
Shelly PLUS PM Mini 1
Shelly Plus 1 Technische Basis von Shelly Scripts Shelly Scripts laufen auf einer modifizierten Version von mJS, die ein Bestandteil des Mongoose OS Frameworks ist. Dieses Framework wurde speziell für eingebettete Systeme entwickelt und bietet eine leichtgewichtige, aber leistungsstarke Umgebung zur Ausführung von JavaScript-basierten Skripten. Mehr Informationen Die spezifischen Funktionen und Möglichkeiten der Shelly Script Language findest du in der offiziellen Dokumentation: Shelly API Documentation – Script Language Features Wenn du ein Gerät besitzt, das Shelly Scripting unterstützt, kannst du das volle Potenzial deiner Automatisierungen ausschöpfen – von benutzerdefinierten Steuerungen bis hin zur Kommunikation mit anderen Systemen über HTTP.
Was wird unterstützt?
Obwohl die Shelly Script Language auf JavaScript basiert, gibt es spezifische Anpassungen, die du kennen solltest. Hier sind die unterstützten Features, die dir bei der Arbeit mit Shelly Scripts zur Verfügung stehen: Unterstützt - Variablen und Funktionen: let, var, und die Definition von Funktionen. - Objekte und Methoden: String, Number, Array, und Math. - Zeit und Datum: Unterstützung für das Date-Objekt. - Operatoren: new, delete sowie grundlegende mathematische und logische Operatoren. - Weitere Features: Object.keys, Ausnahmebehandlungen (try...catch), und Funktionalität wie arguments.length. Nicht unterstützt - Hoisting: Variablen oder Funktionen müssen vor ihrer Verwendung deklariert sein. - Moderne Features aus ES6: Keine Klassen oder Promises; asynchrone Funktionen werden ebenfalls nicht unterstützt. - Systemnahe Espruino-Funktionen: Funktionen, die speziell für Espruino-Hardware entwickelt wurden, sind nicht verfügbar. Besonderheiten - arguments.length: Gibt entweder die Anzahl der übergebenen Argumente oder die erwartete Anzahl zurück, je nachdem, welche größer ist. - delete-Operator: Funktioniert nur ohne Klammern. - Zusätzliche Methode: Funktionen unterstützen replaceWith, ein nützliches Tool für spezifische Ersetzungen. Für detaillierte Informationen zur unterstützten Syntax und API-Details lohnt sich ein Blick in die Espruino-Dokumentation. Beachte jedoch, dass einige Hardware- und Systemspezifika von Espruino in Shelly nicht implementiert sind und auch nicht unterstützt werden.
Meine Shelly Scripting Beispiele auf GitHub
Um dir den Einstieg in Shelly Scripting zu erleichtern, habe ich ein GitHub-Repository eingerichtet: ShellyScripting. Dort stelle ich dir eine Sammlung von Beispielskripten zur Verfügung, die ich speziell für Anfänger und fortgeschrittene Nutzer entwickelt habe. Die Beispiele sind als JavaScript-Dateien organisiert, sodass du sie direkt in das Shelly Webinterface einfügen und ausprobieren kannst. Sie decken eine Vielzahl von Anwendungen ab, darunter: - Erfassen und Anzeigen von Sensordaten - Einfache Automatisierungen - Aktionen basierend auf Zeit oder Bedingungen - Integration mit MQTT und anderen Smart-Home-Systemen Ich aktualisiere das Repository regelmäßig, damit du immer neue Ideen und Lösungen findest. Außerdem lade ich dich herzlich ein, selbst aktiv zu werden: Du kannst gerne Feedback geben oder eigene Skripte einreichen, die ich dann in das Projekt integriere. Schau dir die Beispiele an, lade sie herunter, und probiere sie aus. Gemeinsam können wir die Möglichkeiten von Shelly Scripts entdecken und erweitern: GitHub: ShellyScripting.
Wie werden Shelly Scripts aufgerufen?
Bevor wir uns mit den Details des Shelly Scripting beschäftigen, ist es wichtig zu verstehen, wie die Scripts aufgerufen und genutzt werden können. Dabei gibt es zwei grundlegende Ansätze, die jeweils unterschiedliche Möglichkeiten bieten: Lokale Ausführung In der einfachsten Form laufen Shelly Scripts direkt auf dem Gerät und reagieren auf Ereignisse wie Schaltvorgänge oder Zeitbedingungen. Diese lokalen Scripts sind ideal, wenn du einfache Automatisierungen umsetzen möchtest, die unabhängig von Benutzereingaben oder externen Systemen funktionieren. Beispiele: - Ein Shelly reagiert auf einen Tastendruck und schaltet ein Relais. - Eine LED wird basierend auf einer vorgegebenen Zeit ein- und ausgeschaltet. Diese Art der Ausführung ist vollständig lokal und bietet eine schnelle, zuverlässige Möglichkeit, Geräte zu automatisieren – allerdings ohne direkte Rückmeldung oder Interaktion mit dem Benutzer. Kommunikation über HTTP Requests Die wahre Stärke des Shelly Scripting zeigt sich, wenn du die HTTP-API nutzt, um mit dem Shelly zu kommunizieren. Damit kannst du nicht nur Schaltvorgänge auslösen, sondern auch Werte wie Text oder Zahlen an den Shelly übergeben und darauf basierend komplexe Automatisierungen umsetzen. Beispiele: - Datenübergabe: Sende eine Temperatur oder einen Text an das Shelly Script, um Aktionen davon abhängig zu machen. - Abfrage von Zuständen: Erhalte Rückmeldungen vom Shelly, z. B. den aktuellen Zustand eines Sensors oder einer Schaltung. - Kombinierte Automatisierung: Steuerung eines Geräts durch externe Ereignisse wie Webhooks oder andere IoT-Plattformen. Warum HTTP Requests das volle Potenzial entfalten Mit HTTP Requests kannst du Shelly Geräte in komplexere Smart-Home-Systeme integrieren und sie flexibel steuern. Anders als bei Szenen, die auf feste Bedingungen beschränkt sind, kannst du mit Shelly Scripts: - Dynamische Eingaben nutzen: Werte in Echtzeit übergeben und darauf reagieren. - Mehrere Geräte synchronisieren: Daten von einem Gerät an ein anderes weitergeben. - Intelligente Entscheidungen treffen: Verschiedene Bedingungen und Werte kombinieren, um Aktionen auszuführen. Dieser Ansatz öffnet die Tür zu einer völlig neuen Ebene der Automatisierung, bei der du die Kontrolle vollständig in der Hand hast. Tipp: In meinem GitHub-Repository ShellyScripting findest du Beispiele, die beide Ansätze – lokale Scripts und HTTP Requests – abdecken. So kannst du selbst ausprobieren, welche Methode am besten zu deinem Projekt passt.
Debugging: Voraussetzung für die Ausführung von Shelly Scripts
Das Debugging ist nicht nur ein hilfreiches Werkzeug, sondern eine zwingende Voraussetzung, um Scripts auf deinem Shelly-Gerät auszuführen. Wenn das Debugging nicht aktiviert ist, kannst du kein Script starten. Stattdessen erscheint beim ersten Ausführen eines Scripts die folgende Meldung: "Logs are disabled. You can enable them from here."
Meldung - Fehlende Berechtigung zum Erzeugen von Websocket debug Meldungen Warum ist Debugging erforderlich? - Shelly Scripts erzeugen Protokolle, um den Ablauf und mögliche Fehler anzuzeigen. Ohne aktive Logs kann das Gerät die Scripts nicht korrekt ausführen. - Die Debug-Funktion dient also nicht nur zum Testen, sondern ist ein integraler Bestandteil des Script-Betriebs. Debugging aktivieren – Schritt für Schritt - Meldung beachten: Wenn die oben genannte Meldung erscheint, klicke auf den angebotenen Link oder navigiere manuell zu Settings > Debug im Webinterface. - Debugging einschalten: Setze den Haken bei der Checkbox "Websocket debug" neben "Enabled". - Änderungen speichern: Klicke auf "Save", um das Debugging zu aktivieren.
Schritt 1 - aktivieren der Websocket debug Meldungen
Schritt 2 - aktivieren der Websocket debug Meldungen Nach der Aktivierung kannst du Scripts ausführen und die Protokolle im Debug-Bereich des Webinterfaces einsehen. Ohne diese Einstellung ist die Nutzung der Shelly Script-Funktionen nicht möglich.
Ein Shelly Script erstellen: Schritt-für-Schritt-Anleitung
Das Erstellen eines Scripts auf deinem Shelly-Gerät ist einfach und direkt über das Webinterface möglich. Hier zeige ich dir die Schritte, wie du dein erstes Script anlegen kannst. Passend dazu stelle ich eine Grafik bereit, in der die Schritte durch nummerierte Markierungen hervorgehoben sind.
Öffnen des Webinterfaces - Gib die IP-Adresse deines Shelly-Geräts in die Adressleiste deines Browsers ein (z. B. http://192.168.0.x). - Dadurch öffnest du das Webinterface des Geräts. (Siehe Markierung 1 in der Grafik.) Den Menüpunkt "Scripts" auswählen - Im Hauptmenü des Webinterfaces findest du den Punkt "Scripts". - Klicke darauf, um zur Übersicht der Skript-Verwaltung zu gelangen. (Markierung 2) Neues Script erstellen - In der Script-Verwaltung klickst du auf die Schaltfläche "Create script". - Dadurch wird ein neues leeres Script angelegt, das du direkt bearbeiten kannst. (Markierung 3) Script benennen und starten Nachdem du auf "Create script" geklickt hast, öffnet sich ein Fenster, in dem du dein neues Script erstellen kannst. Bevor du mit dem Schreiben deines Codes loslegst, musst du dem Script einen Namen geben. Namen vergeben - Gib im Feld "Script name" einen aussagekräftigen Namen für dein Script ein. - Ein eindeutiger Name hilft dir später, deine Scripts besser zu organisieren, vor allem, wenn du mehrere Scripts auf deinem Shelly-Gerät hast. Mit dem Scripten beginnen - Nach der Namensvergabe kannst du direkt in den Editor schreiben. Hier steht dir eine Oberfläche zur Verfügung, in der du deinen JavaScript-Code eingeben und speichern kannst. Speichern und Testen - Sobald du deinen Code eingegeben hast, klicke auf "Save", um das Script zu sichern. - Danach kannst du das Script starten und im Debug-Bereich die Ausgabe oder mögliche Fehler überprüfen.
Starten und Stoppen eines Scripts Nachdem du dein Script das erste Mal gespeichert hast, erscheinen im Script-Editor zwei zusätzliche Schaltflächen: Start und Delete. Diese Funktionen ermöglichen es dir, dein Script zu starten oder bei Bedarf zu löschen.
Start-Schaltfläche - Nach dem Speichern des Scripts wird die Schaltfläche Start sichtbar. - Funktion: Mit einem Klick auf Start wird dein Script ausgeführt. Es läuft dann kontinuierlich, bis du es stoppst oder ein Fehler auftritt. - Dynamische Änderung: Sobald das Script läuft, verwandelt sich die Schaltfläche Start in Stop. Stop-Schaltfläche - Funktion: Mit einem Klick auf Stop kannst du die Ausführung des Scripts beenden. - Diese Funktion ist nützlich, wenn du Änderungen vornehmen oder das Script vorübergehend deaktivieren möchtest. Fehlerfall Du kannst den Fehler über den Debug-Bereich im Webinterface einsehen und das Script nach der Korrektur erneut starten. Wenn während der Ausführung ein Fehler auftritt, stoppt das Script automatisch.
Einfach loslegen: Kleine Beispiele mit Shelly Scripts
Shelly Scripts sind eine großartige Möglichkeit, die Funktionalität deines Shelly-Geräts individuell anzupassen. Hier stelle ich dir drei einfache Beispiele vor, die zeigen, wie du die Skriptsprache nutzen kannst – von einer Begrüßung in der Konsole bis hin zu einer zeitgesteuerten Schaltung und einer benutzerdefinierten HTTP-Interaktion. Begrüßung in der Konsole anzeigen Dieses Beispiel zeigt, wie du mit einem einfachen Script eine Begrüßung direkt in der Konsole des Shelly-Webinterfaces ausgibst. Es ist perfekt, um den Einstieg ins Scripting zu finden. (Dieses Beispiel habe ich aus der offiziellen Dokumentation entnommen.) let greeting = "Hallo vom Shelly!"; print(greeting); Was passiert hier? - Die print-Funktion gibt den Text direkt in der Konsole aus. Dies ist nützlich für Debugging oder einfache Statusmeldungen. Was ist die Ausgabe? In der Konsole erhältst du die Meldung welche zuvor definiert wurde. Zusätzlich noch ein Zeitstempel wann diese Meldung erzeugt wurde.
Meldung aus einem einfachen Shelly Script in der Konsole Relais zeitgesteuert schalten Im nächsten Beispiel schalten wir das Relais des Shelly für 5 Sekunden ein und danach wieder aus. Dieses Script ist ideal für Anwendungen wie das Einschalten einer Lampe oder eines Geräts für eine festgelegte Dauer. // Parameterobjekt für den Shelly-Aufruf. Es definiert das Relais (id: 0) und dessen Schaltstatus. let shellyParameter = { id: 0, // ID des Relais, das gesteuert werden soll (0 = erstes Relais) on: true, // Standardstatus, um das Relais einzuschalten }; // Ein Timer wird eingerichtet, der alle 5 Sekunden (5000 ms) ausgelöst wird. // Der Timer läuft im wiederholenden Modus (true als zweiter Parameter). Timer.set(5000, true, function() { // Abrufen des aktuellen Status des Relais (Switch:0 bezieht sich auf das erste Relais). const result = Shelly.getComponentStatus("Switch:0"); // Überprüfen, ob der Status erfolgreich abgerufen wurde. if (result) { // Prüfen, ob das Relais aktuell eingeschaltet ist (output === true). if (result.output === true) { print("Relais ist AN! -> neuer Status AUS"); // Debug-Ausgabe: Relais ist aktuell eingeschaltet. } else { print("Relais ist AUS! -> neuer Status AN"); // Debug-Ausgabe: Relais ist aktuell ausgeschaltet. } // Den Schaltstatus umkehren (toggle): Wenn es an ist, wird es ausgeschaltet, und umgekehrt. shellyParameter.on = !result.output; // Aufruf der Shelly-API, um den neuen Status des Relais zu setzen. Read the full article
0 notes
Text
Javascript interpreters
I was looking around for a simple tutorial on building a Javascript interpreter. Not only did I find a great example (https://github.com/MarcoLizza/tiny-js) but it led me to the Espruino project (code here https://github.com/espruino).
Expruino is a very light JS interpreter designed to work on microcontrollers.
0 notes
Text
ESP32 Espruino: Get SDK version, free heap and software reset
ESP32 Espruino: Get SDK version, free heap and software reset
In this tutorial we will check how to use some ESP32 specific functionalities on Espruino. We will analyze how to obtain the SDK version, the number of free bytes available on the heap and how to perform a software reset on the device. The tests from this tutorial were performed using a DFRobot’s ESP32 module integrated in a ESP32 development board. (more…)
View On WordPress
3 notes
·
View notes
Photo
Espruino - Open-Source JavaScript Interpreter For STM32 Microcontrollers
The Espruino is an open-source JavaScript interpreter for microcontrollers. It is designed for devices with small amounts of RAM (as low as 8kB). It was created by Gordon Williams in 2012 as an effort to make microcontroller development genuinely multiplatform.
https://copperhilltech.com/blog/espruino-opensource-javascript-interpreter-for-stm32-microcontrollers/
0 notes
Photo
Remind !
(via Espruino - WIZnet)
Espruino에서 지원하는 Ethernet Interface. W5500과 CC3000 호환되는 라이브러리를 가지고 있어서 개발자들은 편리하게 이용이 가능할 듯.
Support is provided in Espruino, but you will have to use a special build of Espruino designed for it as there isn’t enough space in flash to hold both CC3000 and WIZnet drivers.
To get the latest WIZnet binary:
Go to http://www.espruino.com/binaries and look for a file titledespruino_XXX_espruino_1r3_wiznet.bin, where XXX is the latest version
Right-click on it, and click Copy Link Address
Open the Web IDE, and click on Settings in the top-right
Click on Flasher
Paste the link into the Advanced Firmware Update text box
Click the Advanced Firmware Update button and follow the instructions.
웹서버에 관한 튜토리얼
http://www.espruino.com/Internet
웹캠에 대한 튜토리얼
http://www.espruino.com/Ethernet+Webcam
2 notes
·
View notes
Link
[Uri Shaked] accidentally touched a GPIO pin on his 3.3 V board with a 12 V alligator clip...
0 notes
Photo
#News : RAK8211-NB iTracker kit⠀ ⠀ #Português⠀ ⠀ Módulo alimentado com bateria o painel solar, vem com NB-IoT, bluetooth 5, GPS e 5 sensores.⠀ ⠀ Esse módulo pode ser programado na IDE Arduino, Espruino (JavaScript) e ARM Keil.⠀ ⠀ O kit RAK8211-NB iTracker kit está sendo vendido por $98.40 + envio no Aliexpress: https://buff.ly/2vCTcS9⠀ ⠀ Confira mais detalhes e a documentação na página da empresa: https://buff.ly/2qOdrqS⠀ ⠀ ⠀ #English⠀ ⠀ #Battery / #Solar Powered Module Comes with #NBIoT & #Bluetooth 5 Connectivity, #GPS, and 5 #Sensors.⠀ This module can be programmed in the #Arduino #IDE, #Espruino ( #JavaScript) and #ARM Keil tools⠀ ⠀ #RAK8211NB iTracker kit sells for $98.40 + shipping on Aliexpress.⠀ ⠀ check out more detail and the documentation in the company page: https://buff.ly/2qOdrqS⠀ ⠀ ⠀ #board #tip #embeddednews #Tracker #iot #makers #diy #engenharia #rastreador #rastreamento #cargotracker #engenhariaeletrica #eletronica
#rastreamento#tip#makers#bluetooth#arm#português#ide#rastreador#eletronica#nbiot#javascript#embeddednews#diy#solar#english#espruino#arduino#board#cargotracker#engenharia#iot#engenhariaeletrica#news#battery#tracker#sensors#rak8211nb#gps
0 notes
Photo
Simplified AI on Microcontrollers #ai #Espruino #gesture #microcontroller https://t.co/7QIQH2KcCi http://twitter.com/iAndroideu/status/1200406796248109057
Simplified AI on Microcontrollers #ai #Espruino #gesture #microcontroller https://t.co/7QIQH2KcCi
— iAndroid.eu (@iAndroideu) November 29, 2019
0 notes
Text
Bangle.js is an Hackable, Open Source JavaScript and TensorFlow-driven Smartwatch … BIG Data
Bangle.js is an Hackable, Open Source JavaScript and TensorFlow-driven Smartwatch … BIG Data
Espruino brought JavasScript to the Microcontroller, now Bangle.js is bringing Javascript plus TensorFlow Lite to your smartwatch. There has been some movement by some developers that says that JavaScript should be used for everything, even though I find that idea ridiculous, I still find JavaScript a fascinating language. Bangle.js is the first hackable open source […]
View On WordPress
0 notes
Photo
Bangle.js — A Hackable Smartwatch Powered By Google’s TensorFlow | MrHacker.Co #bangle.js #espruino #javascript #nearform #opensourcesmartwatch #hacker #hacking #cybersecurity #hackers #linux #ethicalhacking #programming #security #mrhacker
0 notes
Text
ESP32 Espruino DHT22: Getting temperature and humidity
ESP32 Espruino DHT22: Getting temperature and humidity
In this tutorial we will check how to get temperature and humidity measurements from a DHT22 sensor using Espruino, running on the ESP32. The tests were performed using a DFRobot’s ESP32 module integrated in a ESP32 development board.
(more…)
View On WordPress
1 note
·
View note
Text
ESP32 JavaScript Espruino Tutorial: String interpolation
Introduction
In this esp32 tutorial we will check how to perform string interpolation in Espruino running on the ESP32. It’s important to mention that string interpolation is a feature supported in the JavaScript language, which means this tutorial can be applied outside the scope of microcontrollers.
For this functionality, we need to use a template literal, which can contain placeholders that will be substituted with the result of expressions.
A template literal basically corresponds to a string enclosed inside back-ticks. A placeholder corresponds to a dollar sign followed by curly braces enclosing the expression. Note that the same template literal can contain multiple placeholders.
String interpolation is particularly useful when we want to dynamically create strings based on some computation, avoiding the need for concatenating intermediary strings to achieve the final result. Not only it leads to a much more compact syntax but also to a more readable one.
The tests were performed using a DFRobot’s ESP32 module integrated in a ESP32 development board.
The code
We will first test using a variable in the placeholder of the template literal.
So, we will assign a number to a variable and then use it in the placeholder. Remember that the template literal is enclosed in back-ticks.
var testNumber = 10; console.log(`The number is: ${testNumber}`);
You can check the expected result in figure 1. Note that the placeholder is substituted by the number we had previously assigned to the variable
Figure 1 – String interpolation using a numeric variable as expression.
Now we will test using the conditional operator (commonly known as ternary operator) inside the placeholder, to use a value or another accordingly to a condition. In this case, we are testing a more complex expression in the placeholder.
var testVal = 5; console.log(`The number is: ${testVal >= 5 ? 20: 30}`); console.log(`The number is: ${testVal < 5 ? 20: 30}`);
The result for this use case is shown in figure 2. For the first string, since the condition was true, the expression result was 20, which was the value that indeed substituted the placeholder. In the second string, since the condition was false, the expression result was 30, and the placeholder was again correctly replaced by this value.
Figure 2 – String interpolation using the ternary operator as expression.
Now we will test using the output of a function inside the placeholder. So we will create a function that returns a string and call this function inside the placeholder.
function test(){ return "A test string"; } console.log(`Output of function: ${test()}`);
You can check the expected output at figure 3.
Figure 3 – String interpolation using the output of a function as expression.
As a final test, we will use the properties of an object inside two distinct placeholders, in order to illustrate that we can use more that one placeholder per string.
var myObj = { x: 10, y: 20 }; console.log(` X value: ${myObj.x} Y value: ${myObj.y} `);
The expected result is shown in figure 4. Note that not only we were able to substitute the two placeholders, but also that when using template literals we can use multi-line strings.
Figure 4 – String interpolation using multiple placeholders and the props of an object.
0 notes
Text
Визуальное программирование + Роботы = Топ 10
Если вы не фанат кода или ставите цел��ю научиться программировать в будущем (пропедевтика), то удобным инструментом окажутся среды визуального программирования для робототехники.
1.TRIK Studio — программа наших друзей. Поддерживает TRIK, Lego Mindsorms NXT 2.0 и EV3. Главный плюс системыв виртуальном роботе! Если у вас нет набора, то вы можете всё равно запустить робота и отработать программу. Заслуженное первое место в нашем топе. 2.ScratchDuino — самая известная графическая среда для программирования роботов после программы LEGO. Кстати, вышла новая версия, в которой исправлена адаптивность и устранены вылеты на новых операционных системах. Ура, товарищи! 3.ArduBlocks — плагин для Arduino IDE, распространяемый бесплатно. Внутри содержит блочный язык, напоминающий Scratch. Кстати, в учебном пособии "Конструируем роботов на ScratchDuino. Первые шаги" этот плагин рассматривается как инструмент перехода от ScratchDuino к Wiring. Дело в том, что ArduBlock переводит графические блоки в код. 4. Espruino Web IDE — те, кто радостно начал программировать на JavaScript в этой среде, обычно на этих же самых радостях забывают заглянуть во вкладку визуальных блоков. Она аналогична Scratch. 5. App Inventor 2 — визуальное программирование для Android. Среда имеет компоненты для работы с bluetooth (последовательный порт) и специфические блоки Lego EV3. Кстати, в ней можно настроить графический интерфейс программы для смартфона. 6. PiBakery — визуальная среда для Raspberry Pi. С помощью PiBakery можно настроить Raspberry Pi, чтобы он подключался к сети WiFi сразу после своего включения, при первом запуске установить VNC-сервер, различные программы и компоненты, например, Apache и PHP. 7. FLProg — визуальная среда программирования для Arduino. Она позволяет задействовать языки релейной логики и диаграмм (LAD, LDD). Полезна для изучающих электронику и электрику, потому что эти языки применяются гигантами вроде Шнайдер Электрик или Сименс. 8. S4A — модификация Scratch для Arduino. К сожалению, есть поддержка лишь старой версии языка, однако для графического программирования "из коробки" удобно. 9. Open Roberta — онлайн-среда, поддерживающая LEGO Mindstorms EV3, NXT и менее популярные micro:bit, Calliope, Bot'nRoll, NAO. Правда, для EV3 понадобится установленная LeJOS или EV3dev. Программирование ведётся на языке Blockly. 10. Fugio — среда визуального программирования для Raspberry Pi. Основан на Qt 5.7 с визуальным оформлением, похожим на LAD.
1 note
·
View note
Link
via Adafruit Industries – Makers, hackers, artists, designers and engineers! https://ift.tt/3ePGHnp
0 notes
Text
RT @mfikes: @therealdivs1210 @fogus It is indeed designed to run Espruino, a JavaScript engine, which is capable of running ClojureScript, supporting a REPL, etc. Upcoming talk at @clojurenorth https://t.co/seBj8sSrtf Repo: https://t.co/fdSEVwHiDU
It is indeed designed to run Espruino, a JavaScript engine, which is capable of running ClojureScript, supporting a REPL, etc. Upcoming talk at @clojurenorth https://t.co/seBj8sSrtf Repo: https://t.co/fdSEVwHiDU
— Mike Fikes (@mfikes) June 8, 2020
from Twitter https://twitter.com/ivanpierre June 12, 2020 at 02:39PM via IFTTT
0 notes