|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
from pinouts import NodeMCU as pins |
|
|
|
|
from hcsr04 import HCSR04 |
|
|
|
|
import machine |
|
|
|
|
import time |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Table: |
|
|
|
@ -57,3 +58,42 @@ class Table:
|
|
|
|
|
else: |
|
|
|
|
self.relay_up.value(1) |
|
|
|
|
self.relay_down.value(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def move(self, distance): |
|
|
|
|
""" |
|
|
|
|
Move distance centimeters: |
|
|
|
|
- Positive distances is up |
|
|
|
|
- Negative distances is down |
|
|
|
|
- Zero distances is stop |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
# Calculate target height |
|
|
|
|
targetHeight = self.currentHeight() + distance |
|
|
|
|
|
|
|
|
|
# Default to not move in any direction |
|
|
|
|
direction = 0 |
|
|
|
|
|
|
|
|
|
while True: |
|
|
|
|
# Calculate how far to move |
|
|
|
|
currentHeightDiff = targetHeight - self.currentHeight() |
|
|
|
|
|
|
|
|
|
# Calculate which direction to move in |
|
|
|
|
if currentHeightDiff > 1: |
|
|
|
|
direction = 1 |
|
|
|
|
elif currentHeightDiff < -1: |
|
|
|
|
direction = -1 |
|
|
|
|
else: |
|
|
|
|
# Reset the relays |
|
|
|
|
self.triggerRelay(0) |
|
|
|
|
|
|
|
|
|
# Break the loop |
|
|
|
|
break |
|
|
|
|
|
|
|
|
|
# Move up or down |
|
|
|
|
self.triggerRelay(direction) |
|
|
|
|
|
|
|
|
|
# Sleep for a bit |
|
|
|
|
time.sleep(0.1) |
|
|
|
|
|
|
|
|
|
print("my work is done") |
|
|
|
|