mirror of
https://github.com/sascha-hemi/pycom-documentation.git
synced 2026-03-21 13:06:14 +01:00
PYFW-318: Integrate Touch Esp32 functionality exposed to micropy
This commit is contained in:
80
tutorials/all/touch.md
Normal file
80
tutorials/all/touch.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Touch
|
||||
|
||||
Example of how to use the Touch class of the Machine module:
|
||||
|
||||
```python
|
||||
from machine import Touch
|
||||
from machine import Timer
|
||||
import time
|
||||
|
||||
|
||||
class TouchPad:
|
||||
|
||||
def __init__(self, pin, name):
|
||||
self.touch = Touch(pin)
|
||||
self.last_press = 0
|
||||
self.name = name
|
||||
self.pressed = False
|
||||
|
||||
def ispressed(self):
|
||||
if self.touch.read() < (self.touch.init_value() * 2 / 3):
|
||||
self.pressed = True
|
||||
else:
|
||||
self.pressed = False
|
||||
return self.pressed
|
||||
|
||||
def just_pressed(self):
|
||||
now = time.ticks_ms()
|
||||
if now - self.last_press < 500:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def set_press(self):
|
||||
self.last_press = time.ticks_ms()
|
||||
|
||||
|
||||
class TouchController:
|
||||
|
||||
def __init__(self, pads):
|
||||
self.pads = pads
|
||||
for pad in self.pads:
|
||||
pad.touch.init_value(1500)
|
||||
|
||||
def check(self, alarm):
|
||||
for pad in self.pads:
|
||||
if pad.ispressed() and not pad.just_pressed():
|
||||
pad.set_press()
|
||||
if pad.name == 'Right':
|
||||
if tleft.just_pressed():
|
||||
print('Swipe right')
|
||||
else:
|
||||
print('{} pressed'.format(pad.name))
|
||||
elif pad.name == 'Left':
|
||||
if tright.just_pressed():
|
||||
print('Swipe left')
|
||||
else:
|
||||
print('{} pressed'.format(pad.name))
|
||||
elif pad.name == 'Up':
|
||||
if tbott.just_pressed():
|
||||
print('Swipe up')
|
||||
else:
|
||||
print('{} pressed'.format(pad.name))
|
||||
elif pad.name == 'Bottom':
|
||||
if tupp.just_pressed():
|
||||
print('Swipe down')
|
||||
else:
|
||||
print('{} pressed'.format(pad.name))
|
||||
|
||||
|
||||
tleft = TouchPad('P4', 'Left')
|
||||
tright = TouchPad('P8', 'Right')
|
||||
tbott = TouchPad('P9', 'Bottom')
|
||||
tupp = TouchPad('P23', 'Up')
|
||||
|
||||
# initialize the touch controller
|
||||
touch_controller = TouchController(pads=[tleft, tright, tbott, tupp])
|
||||
|
||||
# enable the alarm to check the status
|
||||
Timer.Alarm(touch_controller.check, ms=10, periodic=True)
|
||||
```
|
||||
Reference in New Issue
Block a user