diff --git a/assets/front.js b/assets/front.js deleted file mode 100644 index ded75d7..0000000 --- a/assets/front.js +++ /dev/null @@ -1,14 +0,0 @@ -const socket = io(); - -var myAudio = document.createElement('audio'); -myAudio.setAttribute('src','muddy_files.mp3'); - -socket.on('speed', (speed) => { - console.log('recieved speed', speed); - - myAudio.playbackRate = speed; -}); - -myAudio.playbackRate = 0.1; - -myAudio.play(); \ No newline at end of file diff --git a/assets/C9EED782-8F3C-40E5-87C0-5E2032ADAB72.jpeg b/node-server/assets/C9EED782-8F3C-40E5-87C0-5E2032ADAB72.jpeg similarity index 100% rename from assets/C9EED782-8F3C-40E5-87C0-5E2032ADAB72.jpeg rename to node-server/assets/C9EED782-8F3C-40E5-87C0-5E2032ADAB72.jpeg diff --git a/assets/Cover.png b/node-server/assets/Cover.png similarity index 100% rename from assets/Cover.png rename to node-server/assets/Cover.png diff --git a/assets/Roman.html b/node-server/assets/Roman.html similarity index 100% rename from assets/Roman.html rename to node-server/assets/Roman.html diff --git a/assets/WhatsApp Image 2025-04-21 at 15.01.32.jpeg b/node-server/assets/WhatsApp Image 2025-04-21 at 15.01.32.jpeg similarity index 100% rename from assets/WhatsApp Image 2025-04-21 at 15.01.32.jpeg rename to node-server/assets/WhatsApp Image 2025-04-21 at 15.01.32.jpeg diff --git a/assets/front.html b/node-server/assets/front.html similarity index 100% rename from assets/front.html rename to node-server/assets/front.html diff --git a/node-server/assets/front.js b/node-server/assets/front.js new file mode 100644 index 0000000..5bd5292 --- /dev/null +++ b/node-server/assets/front.js @@ -0,0 +1,28 @@ +const socket = io(); + +let last_position = null; +let speed = 1; + +var myAudio = document.createElement('audio'); +myAudio.setAttribute('src','muddy_files.mp3'); + +// socket.on('speed', (speed) => { +// console.log('recieved speed', speed); + +// myAudio.playbackRate = speed; +// }); + +socket.on('position', (position) => { + console.log('recieved position', position); + // if(!last_position){ + // last_position = position; + // }else{ + // speed += position > last_position ? 0.1 : -0.1; + // } + // myAudio.playbackRate = speed; +}); + + +myAudio.playbackRate = speed; + +myAudio.play(); \ No newline at end of file diff --git a/assets/hell even 5.png b/node-server/assets/hell even 5.png similarity index 100% rename from assets/hell even 5.png rename to node-server/assets/hell even 5.png diff --git a/assets/hell_even.html b/node-server/assets/hell_even.html similarity index 100% rename from assets/hell_even.html rename to node-server/assets/hell_even.html diff --git a/assets/hell_even.js b/node-server/assets/hell_even.js similarity index 100% rename from assets/hell_even.js rename to node-server/assets/hell_even.js diff --git a/assets/logo.png b/node-server/assets/logo.png similarity index 100% rename from assets/logo.png rename to node-server/assets/logo.png diff --git a/assets/main.html b/node-server/assets/main.html similarity index 100% rename from assets/main.html rename to node-server/assets/main.html diff --git a/assets/main.js b/node-server/assets/main.js similarity index 100% rename from assets/main.js rename to node-server/assets/main.js diff --git a/assets/muddy_files.html b/node-server/assets/muddy_files.html similarity index 100% rename from assets/muddy_files.html rename to node-server/assets/muddy_files.html diff --git a/assets/muddy_files.js b/node-server/assets/muddy_files.js similarity index 100% rename from assets/muddy_files.js rename to node-server/assets/muddy_files.js diff --git a/assets/muddy_files.mp3 b/node-server/assets/muddy_files.mp3 similarity index 100% rename from assets/muddy_files.mp3 rename to node-server/assets/muddy_files.mp3 diff --git a/assets/paradisev2.mp3 b/node-server/assets/paradisev2.mp3 similarity index 100% rename from assets/paradisev2.mp3 rename to node-server/assets/paradisev2.mp3 diff --git a/assets/script.js b/node-server/assets/script.js similarity index 100% rename from assets/script.js rename to node-server/assets/script.js diff --git a/assets/socket.io.min.js b/node-server/assets/socket.io.min.js similarity index 100% rename from assets/socket.io.min.js rename to node-server/assets/socket.io.min.js diff --git a/assets/song to song v4.mp3 b/node-server/assets/song to song v4.mp3 similarity index 100% rename from assets/song to song v4.mp3 rename to node-server/assets/song to song v4.mp3 diff --git a/assets/stamina-v17.mp3 b/node-server/assets/stamina-v17.mp3 similarity index 100% rename from assets/stamina-v17.mp3 rename to node-server/assets/stamina-v17.mp3 diff --git a/assets/stamina.html b/node-server/assets/stamina.html similarity index 100% rename from assets/stamina.html rename to node-server/assets/stamina.html diff --git a/assets/styles.css b/node-server/assets/styles.css similarity index 100% rename from assets/styles.css rename to node-server/assets/styles.css diff --git a/assets/stylesfront.css b/node-server/assets/stylesfront.css similarity index 100% rename from assets/stylesfront.css rename to node-server/assets/stylesfront.css diff --git a/assets/styleshe.css b/node-server/assets/styleshe.css similarity index 100% rename from assets/styleshe.css rename to node-server/assets/styleshe.css diff --git a/assets/stylesmf.css b/node-server/assets/stylesmf.css similarity index 100% rename from assets/stylesmf.css rename to node-server/assets/stylesmf.css diff --git a/assets/stylesrom.css b/node-server/assets/stylesrom.css similarity index 100% rename from assets/stylesrom.css rename to node-server/assets/stylesrom.css diff --git a/assets/stylestam.css b/node-server/assets/stylestam.css similarity index 100% rename from assets/stylestam.css rename to node-server/assets/stylestam.css diff --git a/package-lock.json b/node-server/package-lock.json similarity index 80% rename from package-lock.json rename to node-server/package-lock.json index 15303c5..fd7cdda 100644 --- a/package-lock.json +++ b/node-server/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "express": "^4.21.2", "pug": "^3.0.3", + "serialport": "^13.0.0", "socket.io": "^4.8.1" } }, @@ -60,6 +61,280 @@ "node": ">=6.9.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==", + "license": "MIT", + "dependencies": { + "@serialport/bindings-interface": "^1.2.1", + "debug": "^4.3.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@serialport/binding-mock/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@serialport/binding-mock/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/@serialport/bindings-cpp": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/bindings-cpp/-/bindings-cpp-13.0.0.tgz", + "integrity": "sha512-r25o4Bk/vaO1LyUfY/ulR6hCg/aWiN6Wo2ljVlb4Pj5bqWGcSRC4Vse4a9AcapuAu/FeBzHCbKMvRQeCuKjzIQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@serialport/bindings-interface": "1.2.2", + "@serialport/parser-readline": "12.0.0", + "debug": "4.4.0", + "node-addon-api": "8.3.0", + "node-gyp-build": "4.8.4" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-delimiter": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-12.0.0.tgz", + "integrity": "sha512-gu26tVt5lQoybhorLTPsH2j2LnX3AOP2x/34+DUSTNaUTzu2fBXw+isVjQJpUBFWu6aeQRZw5bJol5X9Gxjblw==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/bindings-cpp/node_modules/@serialport/parser-readline": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-12.0.0.tgz", + "integrity": "sha512-O7cywCWC8PiOMvo/gglEBfAkLjp/SENEML46BXDykfKP5mTPM46XMaX1L0waWU6DXJpBgjaL7+yX6VriVPbN4w==", + "license": "MIT", + "dependencies": { + "@serialport/parser-delimiter": "12.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/bindings-cpp/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@serialport/bindings-cpp/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": "^12.22 || ^14.13 || >=16" + } + }, + "node_modules/@serialport/parser-byte-length": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-13.0.0.tgz", + "integrity": "sha512-32yvqeTAqJzAEtX5zCrN1Mej56GJ5h/cVFsCDPbF9S1ZSC9FWjOqNAgtByseHfFTSTs/4ZBQZZcZBpolt8sUng==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-cctalk": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-13.0.0.tgz", + "integrity": "sha512-RErAe57g9gvnlieVYGIn1xymb1bzNXb2QtUQd14FpmbQQYlcrmuRnJwKa1BgTCujoCkhtaTtgHlbBWOxm8U2uA==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-delimiter": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-13.0.0.tgz", + "integrity": "sha512-Qqyb0FX1avs3XabQqNaZSivyVbl/yl0jywImp7ePvfZKLwx7jBZjvL+Hawt9wIG6tfq6zbFM24vzCCK7REMUig==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-inter-byte-timeout": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-13.0.0.tgz", + "integrity": "sha512-a0w0WecTW7bD2YHWrpTz1uyiWA2fDNym0kjmPeNSwZ2XCP+JbirZt31l43m2ey6qXItTYVuQBthm75sPVeHnGA==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-packet-length": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-packet-length/-/parser-packet-length-13.0.0.tgz", + "integrity": "sha512-60ZDDIqYRi0Xs2SPZUo4Jr5LLIjtb+rvzPKMJCohrO6tAqSDponcNpcB1O4W21mKTxYjqInSz+eMrtk0LLfZIg==", + "license": "MIT", + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@serialport/parser-readline": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-13.0.0.tgz", + "integrity": "sha512-dov3zYoyf0dt1Sudd1q42VVYQ4WlliF0MYvAMA3MOyiU1IeG4hl0J6buBA2w4gl3DOCC05tGgLDN/3yIL81gsA==", + "license": "MIT", + "dependencies": { + "@serialport/parser-delimiter": "13.0.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-ready": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-13.0.0.tgz", + "integrity": "sha512-JNUQA+y2Rfs4bU+cGYNqOPnNMAcayhhW+XJZihSLQXOHcZsFnOa2F9YtMg9VXRWIcnHldHYtisp62Etjlw24bw==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-regex": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-13.0.0.tgz", + "integrity": "sha512-m7HpIf56G5XcuDdA3DB34Z0pJiwxNRakThEHjSa4mG05OnWYv0IG8l2oUyYfuGMowQWaVnQ+8r+brlPxGVH+eA==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-slip-encoder": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-slip-encoder/-/parser-slip-encoder-13.0.0.tgz", + "integrity": "sha512-fUHZEExm6izJ7rg0A1yjXwu4sOzeBkPAjDZPfb+XQoqgtKAk+s+HfICiYn7N2QU9gyaeCO8VKgWwi+b/DowYOg==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/parser-spacepacket": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/parser-spacepacket/-/parser-spacepacket-13.0.0.tgz", + "integrity": "sha512-DoXJ3mFYmyD8X/8931agJvrBPxqTaYDsPoly9/cwQSeh/q4EjQND9ySXBxpWz5WcpyCU4jOuusqCSAPsbB30Eg==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/stream": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-13.0.0.tgz", + "integrity": "sha512-F7xLJKsjGo2WuEWMSEO1SimRcOA+WtWICsY13r0ahx8s2SecPQH06338g28OT7cW7uRXI7oEQAk62qh5gHJW3g==", + "license": "MIT", + "dependencies": { + "@serialport/bindings-interface": "1.2.2", + "debug": "4.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/@serialport/stream/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@serialport/stream/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", @@ -818,6 +1093,26 @@ "node": ">= 0.6" } }, + "node_modules/node-addon-api": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.0.tgz", + "integrity": "sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1142,6 +1437,57 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/serialport": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/serialport/-/serialport-13.0.0.tgz", + "integrity": "sha512-PHpnTd8isMGPfFTZNCzOZp9m4mAJSNWle9Jxu6BPTcWq7YXl5qN7tp8Sgn0h+WIGcD6JFz5QDgixC2s4VW7vzg==", + "license": "MIT", + "dependencies": { + "@serialport/binding-mock": "10.2.2", + "@serialport/bindings-cpp": "13.0.0", + "@serialport/parser-byte-length": "13.0.0", + "@serialport/parser-cctalk": "13.0.0", + "@serialport/parser-delimiter": "13.0.0", + "@serialport/parser-inter-byte-timeout": "13.0.0", + "@serialport/parser-packet-length": "13.0.0", + "@serialport/parser-readline": "13.0.0", + "@serialport/parser-ready": "13.0.0", + "@serialport/parser-regex": "13.0.0", + "@serialport/parser-slip-encoder": "13.0.0", + "@serialport/parser-spacepacket": "13.0.0", + "@serialport/stream": "13.0.0", + "debug": "4.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/serialport/donate" + } + }, + "node_modules/serialport/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/serialport/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", diff --git a/package.json b/node-server/package.json similarity index 91% rename from package.json rename to node-server/package.json index 7bbfbde..5d0711b 100644 --- a/package.json +++ b/node-server/package.json @@ -12,6 +12,7 @@ "dependencies": { "express": "^4.21.2", "pug": "^3.0.3", + "serialport": "^13.0.0", "socket.io": "^4.8.1" } } diff --git a/node-server/readme.md b/node-server/readme.md new file mode 100644 index 0000000..23fad70 --- /dev/null +++ b/node-server/readme.md @@ -0,0 +1,10 @@ +loop +==== +```shell +git clone +npm install +node server.js +``` + + +https://serialport.io/docs/guide-usage \ No newline at end of file diff --git a/node-server/server.js b/node-server/server.js new file mode 100644 index 0000000..75c2693 --- /dev/null +++ b/node-server/server.js @@ -0,0 +1,72 @@ +const express = require('express'); +const { createServer } = require('node:http'); +// socket +const { Server } = require('socket.io'); +// usb serial (arduino) +var { SerialPort } = require("serialport"); +const { ReadlineParser } = require('@serialport/parser-readline') + +const app = express(); +const server = createServer(app); +const io = new Server(server); + +const port = 3000 + +// https://serialport.io/docs/guide-usage + +var arduinoCOMPort = "/dev/ttyUSB0"; +var arduinoSerialPort = new SerialPort({ + path: arduinoCOMPort, + baudRate: 9600 +}); + +arduinoSerialPort.on('open',function() { + console.log('Serial Port ' + arduinoCOMPort + ' is opened.'); +}); + + +// // Read data that is available but keep the stream in "paused mode" +// arduinoSerialPort.on('readable', function () { +// console.log('Data:', arduinoSerialPort.read()) +// }) + +// // Switches the port into "flowing mode" +// arduinoSerialPort.on('data', function (data) { +// console.log('Data:', data) +// }) + +// const serialParser = arduinoSerialPort.pipe(new Readline({ delimiter: '\n' })); + +// serialParser.on('data', data =>{ +// console.log('got word from arduino:', data); +// }); + +app.set('view engine', 'pug') +app.use(express.static('assets')) + +app.get('/', (req, res) => { + // res.send('Hello World!') + res.render('index', { title: 'Hey', message: 'Hello there PUG!' }) + // res.sendFile('assets/main.html', { root : __dirname}); +}) + +io.on('connection', (socket) => { + console.log('a user connected'); + // let speed = 0.1; + // setInterval(() => { + // speed+=0.1; + // socket.emit('speed', speed); + // }, 2000); + + // Listening to arduino through serial port + const parser = arduinoSerialPort.pipe(new ReadlineParser({ delimiter: '\n' })) + parser.on('data', data => { + console.log('got word from arduino:', data); + socket.emit('position', data); + }) + +}); + +server.listen(port, () => { + console.log(`Example app listening on port ${port}`) +}) \ No newline at end of file diff --git a/views/index.pug b/node-server/views/index.pug similarity index 100% rename from views/index.pug rename to node-server/views/index.pug diff --git a/readme.md b/readme.md index c23af27..e0934c5 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,9 @@ -loop +Loop ==== -```shell -git clone -npm install -node server.js -``` + +# Node +https://gitea.esadhar.fr/el-yazide.mohamed/loop + +# Arduino +https://arduinogetstarted.com/tutorials/arduino-dc-motor + diff --git a/server.js b/server.js deleted file mode 100644 index 716d003..0000000 --- a/server.js +++ /dev/null @@ -1,33 +0,0 @@ -const express = require('express'); -const { createServer } = require('node:http'); -const { Server } = require('socket.io'); - -const app = express(); -const server = createServer(app); -const io = new Server(server); - - -const port = 3000 - - -app.set('view engine', 'pug') -app.use(express.static('assets')) - -app.get('/', (req, res) => { - // res.send('Hello World!') - // res.render('index', { title: 'Hey', message: 'Hello there PUG!' }) - res.sendFile('main.html'); -}) - -io.on('connection', (socket) => { - console.log('a user connected'); - let speed = 0.1; - setInterval(() => { - speed+=0.1; - socket.emit('speed', speed); - }, 2000); -}); - -server.listen(port, () => { - console.log(`Example app listening on port ${port}`) -}) \ No newline at end of file diff --git a/theball-elec/.gitignore b/theball-elec/.gitignore new file mode 100644 index 0000000..722d5e7 --- /dev/null +++ b/theball-elec/.gitignore @@ -0,0 +1 @@ +.vscode diff --git a/theball-elec/theball-elec.ino b/theball-elec/theball-elec.ino new file mode 100644 index 0000000..612b5c1 --- /dev/null +++ b/theball-elec/theball-elec.ino @@ -0,0 +1,18 @@ +#include + +long last_position = 0; + +Encoder myEnc(2, 3); // pins for A and B + +void setup() { + Serial.begin(9600); +} + +void loop() { + long position = myEnc.read(); + if(position != last_position){ + last_position = position; + Serial.println(position); + } + delay(100); +}