ESP32: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 63: | Строка 63: | ||
=Ультразвуковой датчик HC-SR04= |
=Ультразвуковой датчик HC-SR04= |
||
* https://arduino.ua/prod182-yltrazvykovoi-datchik-rasstoyaniya-hc-sr04 |
* https://arduino.ua/prod182-yltrazvykovoi-datchik-rasstoyaniya-hc-sr04 |
||
| + | <PRE> |
||
| + | =Ультразвуковой датчик HC-SR04= |
||
| + | * https://arduino.ua/prod182-yltrazvykovoi-datchik-rasstoyaniya-hc-sr04 |
||
| + | * http://wiki.amperka.ru/продукты:hc-sr04-ultrasonic-sensor-distance-module |
||
| + | |||
| + | <PRE> |
||
| + | import utime |
||
| + | import machine |
||
| + | |||
| + | PIN_TRIG=32 |
||
| + | PIN_ECHO=35 |
||
| + | ECHO_SLEEP=10 |
||
| + | PAUSE=1 |
||
| + | # 0.1 sec = 100000 us |
||
| + | MAX_READ_TIME=100000 |
||
| + | |||
| + | def read(): |
||
| + | pin_echo = machine.Pin(PIN_ECHO, machine.Pin.IN) |
||
| + | pin_trig = machine.Pin(PIN_TRIG, machine.Pin.OUT) |
||
| + | pin_trig.on() |
||
| + | utime.sleep_us(ECHO_SLEEP) |
||
| + | pin_trig.off() |
||
| + | deadline = utime.ticks_add(utime.ticks_us(), MAX_READ_TIME ) |
||
| + | |||
| + | while utime.ticks_diff(deadline, utime.ticks_us()) > 0: |
||
| + | if pin_echo.value() == 1: |
||
| + | pulse_start = True |
||
| + | pulse_start_tics=utime.ticks_us(); |
||
| + | |||
| + | while pin_echo.value() == 1: |
||
| + | utime.sleep_us(PAUSE) |
||
| + | |||
| + | pulse_finish_tics=utime.ticks_us(); |
||
| + | time_diff = utime.ticks_diff(pulse_finish_tics, pulse_start_tics) |
||
| + | |||
| + | # 34 mm per 100 us |
||
| + | distance_mm = 34 / 100 /2 * time_diff |
||
| + | return(distance_mm) |
||
| + | return(-1) |
||
| + | </PRE> |
||
Версия 19:17, 16 июня 2019
ESP32
@DmZ:
Краткая инструкция: 1. Install SiLabs drivers 2. brew install esptool 3. https://docs.micropython.org/en/latest/esp32/tutorial/intro.html 4. screen /dev/tty.SLAB_USBtoUART 115200 (поиграться с питоном) 5. pip3 install mpfshell 6. https://github.com/wendlers/micropython-mfrc522 7. поменять в питоновых модулях esp8266 на esp32 и пины инициализации SPI в read/write.py 8. отредактировать и запустить deploy_esp.sh для копирования либ 9. зайти снова в скрин и попробовать почитать rfid
UART READ
>>> from machine import UART >>> uart = UART(1, 9600) # init with given baudrate >>> uart = UART(2, 9600) # init with given baudrate >>> uart.init(9600, bits=8, parity=None, stop=1) >>> uart.read()
#!/usr/bin/env python
#l = b'\x025E00DD3417A0\x03\x025E00DD3417A0\x03'
#l = b'0DD3417A0\x03\x025E00DD3417A0\x0312113'
l= b'\x0259004E6A7805\x03\x0259004E6A7805\x03'
print(l)
read_ids = []
id = ""
start = False
stop = False
for char in l:
# print(char)
# print(int(char, 16))
print hex(ord(char))
if char == "\x02":
print("found start")
id = b""
start = True
elif char == "\x03":
print("found stop")
if start:
read_ids.append(id)
start = False
else:
id = id + char
print(read_ids)
for id in read_ids:
print(int(id, 16))
Ультразвуковой датчик HC-SR04
=Ультразвуковой датчик HC-SR04=
* https://arduino.ua/prod182-yltrazvykovoi-datchik-rasstoyaniya-hc-sr04
* http://wiki.amperka.ru/продукты:hc-sr04-ultrasonic-sensor-distance-module
<PRE>
import utime
import machine
PIN_TRIG=32
PIN_ECHO=35
ECHO_SLEEP=10
PAUSE=1
# 0.1 sec = 100000 us
MAX_READ_TIME=100000
def read():
pin_echo = machine.Pin(PIN_ECHO, machine.Pin.IN)
pin_trig = machine.Pin(PIN_TRIG, machine.Pin.OUT)
pin_trig.on()
utime.sleep_us(ECHO_SLEEP)
pin_trig.off()
deadline = utime.ticks_add(utime.ticks_us(), MAX_READ_TIME )
while utime.ticks_diff(deadline, utime.ticks_us()) > 0:
if pin_echo.value() == 1:
pulse_start = True
pulse_start_tics=utime.ticks_us();
while pin_echo.value() == 1:
utime.sleep_us(PAUSE)
pulse_finish_tics=utime.ticks_us();
time_diff = utime.ticks_diff(pulse_finish_tics, pulse_start_tics)
# 34 mm per 100 us
distance_mm = 34 / 100 /2 * time_diff
return(distance_mm)
return(-1)