diff --git a/servo_motor/index.html b/servo_motor/index.html
new file mode 100644
index 0000000..18800f6
--- /dev/null
+++ b/servo_motor/index.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ Welcome file
+
+
+
+
+ Считывание данных
+
Значение ножки
+
123
+
Потенциометр
+
123
+
+
+
+
+
diff --git a/servo_motor/index.js b/servo_motor/index.js
new file mode 100644
index 0000000..f3d1c3a
--- /dev/null
+++ b/servo_motor/index.js
@@ -0,0 +1,50 @@
+const fs = require('fs');
+const http = require('node:http');
+const { SerialPort } = require('serialport')
+const { ReadlineParser } = require('@serialport/parser-readline');
+
+const port = new SerialPort({path: '/com9', baudRate: 9600});
+
+var str = {};
+let obj;
+
+const parser = port.pipe(new ReadlineParser({ delimeter: '\r\n' }));
+
+parser.on('data', (data) => {
+ if (str != data) {
+ console.log(data);
+ }
+
+ str = data;
+ try {
+ obj = JSON.parse(data);
+ } catch (Exception) {
+ console.log(Exception);
+ }
+});
+
+const server = http.createServer((req, res) => {
+ if (req.url == '/') {
+ fs.readFile('index.html', (err, data) => {
+ if (err) {
+ res.writeHead(404, 'Not Found');
+ res.write("No file found");
+ res.end();
+ } else {
+ res.writeHead(200, {
+ 'Content-Type': 'text/html'
+ });
+ res.write(data);
+ res.end();
+ }
+ })
+ } else if (req.url == '/pin') {
+ res.writeHead(200, {'Content-Type': 'application/json'});
+ res.end(obj?.firstElement.toString());
+ } else if (req.url == '/potonciometer') {
+ res.writeHead(200, {'Content-Type': 'application/json'});
+ res.end(obj?.potenciometer.toString());
+ }
+});
+
+server.listen(2048);
\ No newline at end of file
diff --git a/servo_motor/package-lock.json b/servo_motor/package-lock.json
new file mode 100644
index 0000000..6359193
--- /dev/null
+++ b/servo_motor/package-lock.json
@@ -0,0 +1,414 @@
+{
+ "name": "Новая папка",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "@serialport/parser-readline": "^11.0.0",
+ "serialport": "^11.0.0"
+ }
+ },
+ "node_modules/@serialport/binding-mock": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz",
+ "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==",
+ "dependencies": {
+ "@serialport/bindings-interface": "^1.2.1",
+ "debug": "^4.3.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@serialport/bindings-cpp": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-11.0.1.tgz",
+ "integrity": "sha512-3I1mniVg3osYuIUXxU0jB5AHPsxWmErmc3JC3WfUSlfXsjWMHkHfFzbW9Scuv/z/6DLCJIDyltabRa2FoW2qsQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@serialport/bindings-interface": "1.2.2",
+ "@serialport/parser-readline": "10.5.0",
+ "debug": "4.3.4",
+ "node-addon-api": "6.1.0",
+ "node-gyp-build": "4.6.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-delimiter": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-10.5.0.tgz",
+ "integrity": "sha512-/uR/yT3jmrcwnl2FJU/2ySvwgo5+XpksDUR4NF/nwTS5i3CcuKS+FKi/tLzy1k8F+rCx5JzpiK+koqPqOUWArA==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-readline": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-10.5.0.tgz",
+ "integrity": "sha512-0aXJknodcl94W9zSjvU+sLdXiyEG2rqjQmvBWZCr8wJZjWEtv3RgrnYiWq4i2OTOyC8C/oPK8ZjpBjQptRsoJQ==",
+ "dependencies": {
+ "@serialport/parser-delimiter": "10.5.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/bindings-interface": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz",
+ "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA==",
+ "engines": {
+ "node": "^12.22 || ^14.13 || >=16"
+ }
+ },
+ "node_modules/@serialport/parser-byte-length": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-11.0.0.tgz",
+ "integrity": "sha512-rExsdFKdzOIHOBqTwzxUF1A9nrluVIZKZOtvMq5i0Hc3euooGdmkx0VXYNRlI2rd6kJLTL2P+uIR+ZtCTRyT+w==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-cctalk": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-11.0.0.tgz",
+ "integrity": "sha512-eN1MvEIFwI4GedWJhte6eWF+NZtrjchZbMf0CE6NV9TRzJI1KLnFf90ZOj/mhGuANojX4sqWfJKQXwN6E8VSHQ==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-delimiter": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz",
+ "integrity": "sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-inter-byte-timeout": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-11.0.0.tgz",
+ "integrity": "sha512-RLgqZC50IET6FtEIt6Oi0vdRsesSBWLNwB7ldzR9OzyXKgK0XHRzqKqbB0u5Q+tC5OScdWeiQ2AO6jooKUZtsw==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-packet-length": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-11.0.0.tgz",
+ "integrity": "sha512-6ZkOiaCooabpV/EM7ttSRbisbDWpGEf7Yxyr13t28LicYR43THRdjdMZcRnWxEM/jpwfskkLLXAR6wziVpKrlw==",
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/@serialport/parser-readline": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.0.tgz",
+ "integrity": "sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==",
+ "dependencies": {
+ "@serialport/parser-delimiter": "11.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-ready": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-11.0.0.tgz",
+ "integrity": "sha512-lSsCPIctoc5kADCKnZDYBz1j69TsFqtnaWUicBzUAIAoUXpYKeYld8YX5NrvjViuVfIJeiqLZeGjxOWe5fqQqQ==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-regex": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-11.0.0.tgz",
+ "integrity": "sha512-aKuc/+/KE9swahTbYpSuOsQa7LggPx7jhfobJLPVVbAic80OpfCIY+MKr6Ax4R6UtQwF90O5Yk6OEmbbvtEmiA==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-slip-encoder": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-11.0.0.tgz",
+ "integrity": "sha512-3ZI/swd2it20vmu2tzqDbkyE4dqy+kExEDY6T33YQ210HDKPVhqj7FAVGo5P++MZ3dup1of11t4P9UPBNkuJnQ==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/parser-spacepacket": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-11.0.0.tgz",
+ "integrity": "sha512-+hqRckrTEqz+/uAUZY0Tq6YIRyCl4oQOH1MeVzKiFiGNjZP7hDJCDoY7LTr9CeJhxvcT0ItTbtjGBqGumV8fxg==",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/@serialport/stream": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-11.0.0.tgz",
+ "integrity": "sha512-Zty7B8C1H2XRnay2mVmW1ygEHXRHXQDcaC5wAVvOZMbQSc7ye03rMlPvviDS+pGxU2t2A2bMo34CUrRduSBong==",
+ "dependencies": {
+ "@serialport/bindings-interface": "1.2.2",
+ "debug": "4.3.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
+ },
+ "node_modules/node-gyp-build": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+ "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/serialport": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-11.0.0.tgz",
+ "integrity": "sha512-bxs3XejQcOHWpzPAaXMhxVRlbem6fjNUrux3ToqrGvFR6BcjOYhqE5CsHOuutv37kmhmnuHrn+/hN+1BpTmaFg==",
+ "dependencies": {
+ "@serialport/binding-mock": "10.2.2",
+ "@serialport/bindings-cpp": "11.0.1",
+ "@serialport/parser-byte-length": "11.0.0",
+ "@serialport/parser-cctalk": "11.0.0",
+ "@serialport/parser-delimiter": "11.0.0",
+ "@serialport/parser-inter-byte-timeout": "11.0.0",
+ "@serialport/parser-packet-length": "11.0.0",
+ "@serialport/parser-readline": "11.0.0",
+ "@serialport/parser-ready": "11.0.0",
+ "@serialport/parser-regex": "11.0.0",
+ "@serialport/parser-slip-encoder": "11.0.0",
+ "@serialport/parser-spacepacket": "11.0.0",
+ "@serialport/stream": "11.0.0",
+ "debug": "4.3.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/serialport/donate"
+ }
+ }
+ },
+ "dependencies": {
+ "@serialport/binding-mock": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-10.2.2.tgz",
+ "integrity": "sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==",
+ "requires": {
+ "@serialport/bindings-interface": "^1.2.1",
+ "debug": "^4.3.3"
+ }
+ },
+ "@serialport/bindings-cpp": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-11.0.1.tgz",
+ "integrity": "sha512-3I1mniVg3osYuIUXxU0jB5AHPsxWmErmc3JC3WfUSlfXsjWMHkHfFzbW9Scuv/z/6DLCJIDyltabRa2FoW2qsQ==",
+ "requires": {
+ "@serialport/bindings-interface": "1.2.2",
+ "@serialport/parser-readline": "10.5.0",
+ "debug": "4.3.4",
+ "node-addon-api": "6.1.0",
+ "node-gyp-build": "4.6.0"
+ },
+ "dependencies": {
+ "@serialport/parser-delimiter": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-10.5.0.tgz",
+ "integrity": "sha512-/uR/yT3jmrcwnl2FJU/2ySvwgo5+XpksDUR4NF/nwTS5i3CcuKS+FKi/tLzy1k8F+rCx5JzpiK+koqPqOUWArA=="
+ },
+ "@serialport/parser-readline": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-10.5.0.tgz",
+ "integrity": "sha512-0aXJknodcl94W9zSjvU+sLdXiyEG2rqjQmvBWZCr8wJZjWEtv3RgrnYiWq4i2OTOyC8C/oPK8ZjpBjQptRsoJQ==",
+ "requires": {
+ "@serialport/parser-delimiter": "10.5.0"
+ }
+ }
+ }
+ },
+ "@serialport/bindings-interface": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@serialport/bindings-interface/-/bindings-interface-1.2.2.tgz",
+ "integrity": "sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA=="
+ },
+ "@serialport/parser-byte-length": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-11.0.0.tgz",
+ "integrity": "sha512-rExsdFKdzOIHOBqTwzxUF1A9nrluVIZKZOtvMq5i0Hc3euooGdmkx0VXYNRlI2rd6kJLTL2P+uIR+ZtCTRyT+w=="
+ },
+ "@serialport/parser-cctalk": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-11.0.0.tgz",
+ "integrity": "sha512-eN1MvEIFwI4GedWJhte6eWF+NZtrjchZbMf0CE6NV9TRzJI1KLnFf90ZOj/mhGuANojX4sqWfJKQXwN6E8VSHQ=="
+ },
+ "@serialport/parser-delimiter": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-11.0.0.tgz",
+ "integrity": "sha512-aZLJhlRTjSmEwllLG7S4J8s8ctRAS0cbvCpO87smLvl3e4BgzbVgF6Z6zaJd3Aji2uSiYgfedCdNc4L6W+1E2g=="
+ },
+ "@serialport/parser-inter-byte-timeout": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-11.0.0.tgz",
+ "integrity": "sha512-RLgqZC50IET6FtEIt6Oi0vdRsesSBWLNwB7ldzR9OzyXKgK0XHRzqKqbB0u5Q+tC5OScdWeiQ2AO6jooKUZtsw=="
+ },
+ "@serialport/parser-packet-length": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-11.0.0.tgz",
+ "integrity": "sha512-6ZkOiaCooabpV/EM7ttSRbisbDWpGEf7Yxyr13t28LicYR43THRdjdMZcRnWxEM/jpwfskkLLXAR6wziVpKrlw=="
+ },
+ "@serialport/parser-readline": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-11.0.0.tgz",
+ "integrity": "sha512-rRAivhRkT3YO28WjmmG4FQX6L+KMb5/ikhyylRfzWPw0nSXy97+u07peS9CbHqaNvJkMhH1locp2H36aGMOEIA==",
+ "requires": {
+ "@serialport/parser-delimiter": "11.0.0"
+ }
+ },
+ "@serialport/parser-ready": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-11.0.0.tgz",
+ "integrity": "sha512-lSsCPIctoc5kADCKnZDYBz1j69TsFqtnaWUicBzUAIAoUXpYKeYld8YX5NrvjViuVfIJeiqLZeGjxOWe5fqQqQ=="
+ },
+ "@serialport/parser-regex": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-11.0.0.tgz",
+ "integrity": "sha512-aKuc/+/KE9swahTbYpSuOsQa7LggPx7jhfobJLPVVbAic80OpfCIY+MKr6Ax4R6UtQwF90O5Yk6OEmbbvtEmiA=="
+ },
+ "@serialport/parser-slip-encoder": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-11.0.0.tgz",
+ "integrity": "sha512-3ZI/swd2it20vmu2tzqDbkyE4dqy+kExEDY6T33YQ210HDKPVhqj7FAVGo5P++MZ3dup1of11t4P9UPBNkuJnQ=="
+ },
+ "@serialport/parser-spacepacket": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-11.0.0.tgz",
+ "integrity": "sha512-+hqRckrTEqz+/uAUZY0Tq6YIRyCl4oQOH1MeVzKiFiGNjZP7hDJCDoY7LTr9CeJhxvcT0ItTbtjGBqGumV8fxg=="
+ },
+ "@serialport/stream": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-11.0.0.tgz",
+ "integrity": "sha512-Zty7B8C1H2XRnay2mVmW1ygEHXRHXQDcaC5wAVvOZMbQSc7ye03rMlPvviDS+pGxU2t2A2bMo34CUrRduSBong==",
+ "requires": {
+ "@serialport/bindings-interface": "1.2.2",
+ "debug": "4.3.4"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
+ },
+ "node-gyp-build": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
+ "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ=="
+ },
+ "serialport": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/serialport/-/serialport-11.0.0.tgz",
+ "integrity": "sha512-bxs3XejQcOHWpzPAaXMhxVRlbem6fjNUrux3ToqrGvFR6BcjOYhqE5CsHOuutv37kmhmnuHrn+/hN+1BpTmaFg==",
+ "requires": {
+ "@serialport/binding-mock": "10.2.2",
+ "@serialport/bindings-cpp": "11.0.1",
+ "@serialport/parser-byte-length": "11.0.0",
+ "@serialport/parser-cctalk": "11.0.0",
+ "@serialport/parser-delimiter": "11.0.0",
+ "@serialport/parser-inter-byte-timeout": "11.0.0",
+ "@serialport/parser-packet-length": "11.0.0",
+ "@serialport/parser-readline": "11.0.0",
+ "@serialport/parser-ready": "11.0.0",
+ "@serialport/parser-regex": "11.0.0",
+ "@serialport/parser-slip-encoder": "11.0.0",
+ "@serialport/parser-spacepacket": "11.0.0",
+ "@serialport/stream": "11.0.0",
+ "debug": "4.3.4"
+ }
+ }
+ }
+}
diff --git a/servo_motor/package.json b/servo_motor/package.json
new file mode 100644
index 0000000..1154baf
--- /dev/null
+++ b/servo_motor/package.json
@@ -0,0 +1,6 @@
+{
+ "dependencies": {
+ "@serialport/parser-readline": "^11.0.0",
+ "serialport": "^11.0.0"
+ }
+}