savin some code
parent
7c80611054
commit
f6262ba212
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
@ -0,0 +1,9 @@
|
|||||||
|
# Blue tooth with the ZS-040 module
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
- https://protosupplies.com/product/hc-05-zs-040-bluetooth-module/
|
||||||
|
- https://docs.micropython.org/en/latest/esp32/quickref.html#uart-serial-bus
|
||||||
|
- https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend/command-mode-1
|
||||||
|
- https://learn.sparkfun.com/tutorials/serial-communication/rules-of-serial
|
@ -0,0 +1,23 @@
|
|||||||
|
"""
|
||||||
|
This modul implements a simple serial connection to the ZS-040 and will echo out to the console
|
||||||
|
any messages it receives. This board is a Bluetooth SPP (Serial Port Protocol) module.
|
||||||
|
|
||||||
|
When powered on the device will broadcast as BT-05 by default. Default passwords are usually 1234 or 0000.
|
||||||
|
"""
|
||||||
|
from machine import Pin, UART
|
||||||
|
from utime import sleep_ms
|
||||||
|
|
||||||
|
BT_STATE_PIN = Pin(5, Pin.IN)
|
||||||
|
uart = UART(2, baudrate=38400, tx=17, rx=16, bits=8, stop=1, parity=None)
|
||||||
|
|
||||||
|
|
||||||
|
while True:
|
||||||
|
if BT_STATE_PIN.value():
|
||||||
|
if uart.any():
|
||||||
|
data = uart.read(1)
|
||||||
|
print(data.decode('utf8'))
|
||||||
|
else:
|
||||||
|
print("No data. Sleeping")
|
||||||
|
else:
|
||||||
|
print("No Bluetooth device paired.")
|
||||||
|
sleep_ms(500)
|
@ -0,0 +1,42 @@
|
|||||||
|
from machine import Pin
|
||||||
|
import utime
|
||||||
|
|
||||||
|
MOTOR_LEFT_DIR = True # False if Reverse
|
||||||
|
MOTOR_RIGHT_DIR = True # False if Reverse
|
||||||
|
ENCODER_LEFT_COUNT = 0
|
||||||
|
ENCODER_RIGHT_COUNT = 0
|
||||||
|
|
||||||
|
ENCODER_LEFT_PIN = Pin(4, Pin.IN)
|
||||||
|
ENCODER_RIGHT_PIN = Pin(5, Pin.IN)
|
||||||
|
|
||||||
|
|
||||||
|
def handle_encoder_left(pin):
|
||||||
|
global ENCODER_LEFT_COUNT
|
||||||
|
if MOTOR_LEFT_DIR:
|
||||||
|
ENCODER_LEFT_COUNT += 1
|
||||||
|
else:
|
||||||
|
ENCODER_LEFT_COUNT -= 1
|
||||||
|
|
||||||
|
|
||||||
|
def handle_encoder_right(pin):
|
||||||
|
global ENCODER_RIGHT_COUNT
|
||||||
|
if MOTOR_RIGHT_DIR:
|
||||||
|
ENCODER_RIGHT_COUNT += 1
|
||||||
|
else:
|
||||||
|
ENCODER_RIGHT_COUNT -= 1
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
global MOTOR_LEFT_DIR
|
||||||
|
ENCODER_LEFT_PIN.irq(trigger=Pin.IRQ_RISING, handler=handle_encoder_left)
|
||||||
|
ENCODER_RIGHT_PIN.irq(trigger=Pin.IRQ_RISING, handler=handle_encoder_right)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
print("LEFT: {} , RIGHT: {}".format(ENCODER_LEFT_COUNT, ENCODER_RIGHT_COUNT))
|
||||||
|
utime.sleep(3)
|
||||||
|
print("LEFT: {} , RIGHT: {}".format(ENCODER_LEFT_COUNT, ENCODER_RIGHT_COUNT))
|
||||||
|
utime.sleep(3)
|
||||||
|
print("LEFT: {} , RIGHT: {}".format(ENCODER_LEFT_COUNT, ENCODER_RIGHT_COUNT))
|
||||||
|
utime.sleep(3)
|
||||||
|
print("SWITCH DIR")
|
||||||
|
MOTOR_LEFT_DIR = not MOTOR_LEFT_DIR
|
Loading…
Reference in New Issue