Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 8041

Português • Aprimoramentos de um projeto

$
0
0
Pessoal, estou aprendendo agora a utilizar o Raspberry pi pico W e desenvolvi o seguinte código:

Code:

 # ================ definicoes do ultrassom =====================from machine import Pinimport utimetrigger = Pin(3, Pin.OUT)echo = Pin(2, Pin.IN)def ultra():    global distancia    trigger.low()    utime.sleep_us(2)    trigger.high()    utime.sleep_us(5)    trigger.low()    while echo.value() == 0:       signaloff = utime.ticks_us()    while echo.value() == 1:       signalon = utime.ticks_us()    timepassed = signalon - signaloff    distancia = (timepassed * 0.0343) / 2    print("A distancia é: ",distancia,"cm") # ================ definicoes do motor =====================from machine import PWMimport time # ================ definicoes do servo motor ===================== from servo import Servoimport timeimport _threadservo1 = Servo (17, 544, 2400, 0, 180, 50)delay_ms = 15delay_ms2 = 100 def core0_servo ():    while True:        for i in range (70, 110, 1 ):            servo1.write (i)            time.sleep_ms (delay_ms)              time.sleep_ms (delay_ms2)                    for i in range (110, 70, -1 ):            servo1.write (i)            time.sleep_ms (delay_ms)                    time.sleep_ms (delay_ms2)_thread.start_new_thread(core0_servo,()) # ============Configurações Motor A ================================pwm1 = PWM (Pin (5))MA_FRENTE = Pin (6, Pin.OUT)MA_RE = Pin (7, Pin.OUT)pwm1.freq (50000)dutyA = 65535# ============Configurações Motor B ================================pwm2 = PWM (Pin (8))MB_FRENTE = Pin (9, Pin.OUT)MB_RE = Pin (10, Pin.OUT)pwm2.freq (50000)dutyB = 65535# ============Configurações Motor C ================================pwm3 = PWM (Pin (11))MC_FRENTE = Pin (12, Pin.OUT)MC_RE = Pin (13, Pin.OUT)pwm3.freq (50000)dutyC = 60000# ============Configurações Motor D ================================pwm4 = PWM (Pin (14))MD_FRENTE = Pin (15, Pin.OUT)MD_RE = Pin (16, Pin.OUT)pwm4.freq (50000)dutyD = 55000def Frente ():        utime.sleep(0.1)    MA_FRENTE (1)    MA_RE (0)    pwm1.duty_u16(dutyA)    MB_FRENTE (1)    MB_RE(0)    pwm2.duty_u16(dutyB)    MC_FRENTE (1)    MC_RE (0)    pwm3.duty_u16(dutyC)    MD_FRENTE (1)    MD_RE (0)            pwm4.duty_u16(dutyD)        def VirarEsquerda ():    utime.sleep(0.1)    MA_FRENTE (0)    MA_RE (1)    pwm1.duty_u16(dutyA)    MB_FRENTE (1)    MB_RE(0)    pwm2.duty_u16(dutyB)    MC_FRENTE (0)    MC_RE (1)    pwm3.duty_u16(dutyC)    MD_FRENTE (1)    MD_RE (0)            pwm4.duty_u16(dutyD)            def Parado ():    utime.sleep(0.1)    MA_FRENTE (0)    MA_RE (0)    pwm1.duty_u16(dutyA)    MB_FRENTE (0)    MB_RE(0)    pwm2.duty_u16(dutyB)    MC_FRENTE (0)    MC_RE (0)    pwm3.duty_u16(dutyC)    MD_FRENTE (0)    MD_RE (0)            pwm4.duty_u16(dutyD)           while True:    ultra()    if distancia >=30:        Frente ()    else:         Parado()        utime.sleep(0.3)        VirarEsquerda()        utime.sleep(0.4)        Parado()

Objetivo: criar um carrinho (quatro rodas) autônomo que desvie de objetos. No servo se encontra o HC-SR04, que se movimentam juntos, e servem para o carrinho ter um "campo de visão" mais aberto. Ele funcionou até bem com esse código, mas parace que o servo está disputanto recursos com o restante das outras funções. Como podemos fazer para que isso não aconteça. Vi vários fóruns e explicações de muitas pessoas sobre o uso dos dois núcleos, mas ainda não foi o suficiente para eu conseguir melhorar esse código. Alguém pode me ajudar?
WhatsApp Image 2025-06-22 at 23.09.16.jpeg

Statistics: Posted by williamsf — Mon Jun 23, 2025 2:18 am



Viewing all articles
Browse latest Browse all 8041

Trending Articles