8e650373c2e7a996c3045d6198f4200f7f6b1b76
BOM-DAT/CONN-DAT/CONN-dat.md
| ... | ... | @@ -33,7 +33,6 @@ |
| 33 | 33 | - [[FPC-dat]] |
| 34 | 34 | |
| 35 | 35 | |
| 36 | - |
|
| 37 | 36 | - [[CONN-Banana-plug-dat]] - [[CONN-Alligator-clip-dat]] - [[PCG1012-dat]] - [[CONN-dat]] |
| 38 | 37 | |
| 39 | 38 |
Tech-dat/Interface-dat/HUB75-DAT/HUB75-DAT.md
| ... | ... | @@ -58,6 +58,7 @@ The LATCH / STB pin on a HUB75 RGB matrix display is used to latch (store) the r |
| 58 | 58 | |
| 59 | 59 | ## customized connection |
| 60 | 60 | |
| 61 | +- [[cable-ribbon-dat]] |
|
| 61 | 62 | |
| 62 | 63 | you can ingnore the cables, and just focuse on the pin to pin, it wont match |
| 63 | 64 |
Tech-dat/cable-dat/cable-dat.md
| ... | ... | @@ -7,6 +7,10 @@ |
| 7 | 7 | |
| 8 | 8 | - [[PTO1021-dat]] - wire cutter tool |
| 9 | 9 | |
| 10 | +- [[cable-ribbon-dat]] |
|
| 11 | + |
|
| 12 | + |
|
| 13 | + |
|
| 10 | 14 | ## data cable |
| 11 | 15 | |
| 12 | 16 | ## Weight Comparison |
Tech-dat/cable-dat/cable-ribbon-dat/2025-12-17-17-39-14.png
| ... | ... | Binary files /dev/null and b/Tech-dat/cable-dat/cable-ribbon-dat/2025-12-17-17-39-14.png differ |
Tech-dat/cable-dat/cable-ribbon-dat/2025-12-17-17-47-31.png
| ... | ... | Binary files /dev/null and b/Tech-dat/cable-dat/cable-ribbon-dat/2025-12-17-17-47-31.png differ |
Tech-dat/cable-dat/cable-ribbon-dat/cable-ribbon-dat.md
| ... | ... | @@ -0,0 +1,24 @@ |
| 1 | + |
|
| 2 | +# cable-ribbon-dat |
|
| 3 | + |
|
| 4 | + |
|
| 5 | + |
|
| 6 | +## 2-row 2*8 pins |
|
| 7 | + |
|
| 8 | +- [[hub75-dat]] |
|
| 9 | + |
|
| 10 | +made for same direction |
|
| 11 | + |
|
| 12 | + |
|
| 13 | + |
|
| 14 | + |
|
| 15 | +## install methods |
|
| 16 | + |
|
| 17 | + |
|
| 18 | + |
|
| 19 | + |
|
| 20 | + |
|
| 21 | + |
|
| 22 | +## ref |
|
| 23 | + |
|
| 24 | +- [[cable-dat]] |
|
| ... | ... | \ No newline at end of file |
Tech-dat/waterproof-dat/waterproof-container-dat/2025-12-17-17-49-46.png
| ... | ... | Binary files /dev/null and b/Tech-dat/waterproof-dat/waterproof-container-dat/2025-12-17-17-49-46.png differ |
Tech-dat/waterproof-dat/waterproof-container-dat/waterproof-container-dat.md
| ... | ... | @@ -16,6 +16,7 @@ |
| 16 | 16 | |
| 17 | 17 |  |
| 18 | 18 | |
| 19 | + |
|
| 19 | 20 | |
| 20 | 21 | inside |
| 21 | 22 |
code-dat/motor-driver-code-dat/PWM-motor-esp-webserver-ap-2.ino
| ... | ... | @@ -19,18 +19,154 @@ ESP8266WebServer server(80); |
| 19 | 19 | // ===== HTML Web 控制界面 ===== |
| 20 | 20 | const char html_page[] PROGMEM = R"rawliteral( |
| 21 | 21 | <!DOCTYPE html><html> |
| 22 | -<head><title>ESP8266 Motor Control</title></head> |
|
| 22 | +<head> |
|
| 23 | +<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
| 24 | +<title>ESP8266 Motor Control</title> |
|
| 25 | +<style> |
|
| 26 | +body { |
|
| 27 | + font-family: Arial, sans-serif; |
|
| 28 | + max-width: 600px; |
|
| 29 | + margin: 0 auto; |
|
| 30 | + padding: 20px; |
|
| 31 | + background-color: #f0f0f0; |
|
| 32 | +} |
|
| 33 | +h2 { |
|
| 34 | + text-align: center; |
|
| 35 | + color: #333; |
|
| 36 | +} |
|
| 37 | +.control-panel { |
|
| 38 | + background: white; |
|
| 39 | + padding: 20px; |
|
| 40 | + border-radius: 10px; |
|
| 41 | + box-shadow: 0 2px 10px rgba(0,0,0,0.1); |
|
| 42 | +} |
|
| 43 | +.section { |
|
| 44 | + margin-bottom: 25px; |
|
| 45 | +} |
|
| 46 | +.section-title { |
|
| 47 | + font-weight: bold; |
|
| 48 | + margin-bottom: 10px; |
|
| 49 | + font-size: 18px; |
|
| 50 | + color: #555; |
|
| 51 | +} |
|
| 52 | +.speed-buttons { |
|
| 53 | + display: grid; |
|
| 54 | + grid-template-columns: repeat(6, 1fr); |
|
| 55 | + gap: 8px; |
|
| 56 | + margin-bottom: 10px; |
|
| 57 | +} |
|
| 58 | +.speed-btn { |
|
| 59 | + padding: 15px 10px; |
|
| 60 | + font-size: 16px; |
|
| 61 | + font-weight: bold; |
|
| 62 | + border: 2px solid #4CAF50; |
|
| 63 | + background-color: white; |
|
| 64 | + color: #4CAF50; |
|
| 65 | + border-radius: 8px; |
|
| 66 | + cursor: pointer; |
|
| 67 | + transition: all 0.2s; |
|
| 68 | +} |
|
| 69 | +.speed-btn:active { |
|
| 70 | + background-color: #4CAF50; |
|
| 71 | + color: white; |
|
| 72 | + transform: scale(0.95); |
|
| 73 | +} |
|
| 74 | +.dir-buttons { |
|
| 75 | + display: grid; |
|
| 76 | + grid-template-columns: 1fr 1fr; |
|
| 77 | + gap: 10px; |
|
| 78 | +} |
|
| 79 | +.dir-btn { |
|
| 80 | + padding: 20px; |
|
| 81 | + font-size: 18px; |
|
| 82 | + font-weight: bold; |
|
| 83 | + border: none; |
|
| 84 | + border-radius: 8px; |
|
| 85 | + cursor: pointer; |
|
| 86 | + transition: all 0.2s; |
|
| 87 | +} |
|
| 88 | +.forward-btn { |
|
| 89 | + background-color: #2196F3; |
|
| 90 | + color: white; |
|
| 91 | +} |
|
| 92 | +.reverse-btn { |
|
| 93 | + background-color: #FF9800; |
|
| 94 | + color: white; |
|
| 95 | +} |
|
| 96 | +.dir-btn:active { |
|
| 97 | + transform: scale(0.95); |
|
| 98 | + opacity: 0.8; |
|
| 99 | +} |
|
| 100 | +.stop-btn { |
|
| 101 | + width: 100%; |
|
| 102 | + padding: 20px; |
|
| 103 | + font-size: 20px; |
|
| 104 | + font-weight: bold; |
|
| 105 | + background-color: #f44336; |
|
| 106 | + color: white; |
|
| 107 | + border: none; |
|
| 108 | + border-radius: 8px; |
|
| 109 | + cursor: pointer; |
|
| 110 | + margin-top: 20px; |
|
| 111 | +} |
|
| 112 | +.stop-btn:active { |
|
| 113 | + transform: scale(0.98); |
|
| 114 | + opacity: 0.8; |
|
| 115 | +} |
|
| 116 | +</style> |
|
| 117 | +</head> |
|
| 23 | 118 | <body> |
| 24 | 119 | <h2>Motor Control</h2> |
| 25 | -<form action="/control"> |
|
| 26 | -Speed: <input type="range" name="speed" min="0" max="1023"><br> |
|
| 27 | -Direction: |
|
| 28 | -<select name="dir"> |
|
| 29 | - <option value="fw">Forward</option> |
|
| 30 | - <option value="rv">Reverse</option> |
|
| 31 | -</select><br> |
|
| 32 | -<input type="submit" value="Apply"> |
|
| 33 | -</form> |
|
| 120 | +<div class="control-panel"> |
|
| 121 | + <div class="section"> |
|
| 122 | + <div class="section-title">Speed Control (0-10)</div> |
|
| 123 | + <div class="speed-buttons"> |
|
| 124 | + <button class="speed-btn" onclick="setSpeed(0)">0</button> |
|
| 125 | + <button class="speed-btn" onclick="setSpeed(1)">1</button> |
|
| 126 | + <button class="speed-btn" onclick="setSpeed(2)">2</button> |
|
| 127 | + <button class="speed-btn" onclick="setSpeed(3)">3</button> |
|
| 128 | + <button class="speed-btn" onclick="setSpeed(4)">4</button> |
|
| 129 | + <button class="speed-btn" onclick="setSpeed(5)">5</button> |
|
| 130 | + <button class="speed-btn" onclick="setSpeed(6)">6</button> |
|
| 131 | + <button class="speed-btn" onclick="setSpeed(7)">7</button> |
|
| 132 | + <button class="speed-btn" onclick="setSpeed(8)">8</button> |
|
| 133 | + <button class="speed-btn" onclick="setSpeed(9)">9</button> |
|
| 134 | + <button class="speed-btn" onclick="setSpeed(10)">10</button> |
|
| 135 | + </div> |
|
| 136 | + </div> |
|
| 137 | + <div class="section"> |
|
| 138 | + <div class="section-title">Direction Control</div> |
|
| 139 | + <div class="dir-buttons"> |
|
| 140 | + <button class="dir-btn forward-btn" onclick="setDirection('fw')">Forward</button> |
|
| 141 | + <button class="dir-btn reverse-btn" onclick="setDirection('rv')">Reverse</button> |
|
| 142 | + </div> |
|
| 143 | + </div> |
|
| 144 | + <button class="stop-btn" onclick="stopMotor()">STOP</button> |
|
| 145 | +</div> |
|
| 146 | +<script> |
|
| 147 | +let currentSpeed = 0; |
|
| 148 | +let currentDir = 'fw'; |
|
| 149 | +function setSpeed(speed) { |
|
| 150 | + currentSpeed = speed; |
|
| 151 | + sendControl(); |
|
| 152 | +} |
|
| 153 | +function setDirection(dir) { |
|
| 154 | + currentDir = dir; |
|
| 155 | + sendControl(); |
|
| 156 | +} |
|
| 157 | +function sendControl() { |
|
| 158 | + let pwmValue = Math.round((currentSpeed / 10) * 1023); |
|
| 159 | + fetch('/control?speed=' + pwmValue + '&dir=' + currentDir) |
|
| 160 | + .then(response => response.text()) |
|
| 161 | + .catch(error => console.error('Error:', error)); |
|
| 162 | +} |
|
| 163 | +function stopMotor() { |
|
| 164 | + currentSpeed = 0; |
|
| 165 | + fetch('/control?speed=0&dir=' + currentDir) |
|
| 166 | + .then(response => response.text()) |
|
| 167 | + .catch(error => console.error('Error:', error)); |
|
| 168 | +} |
|
| 169 | +</script> |
|
| 34 | 170 | </body></html> |
| 35 | 171 | )rawliteral"; |
| 36 | 172 |