ESP32: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 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)