Hello,
Below is the code I've been working on for awhile. But the robot won't even run. I have it hooked up to a Raspberry Pi Pico along with a L293D 4 channel motor controller. I was wondering if there was something wrong with the code. Or how I have it set up? The skeleton of it i got off Google.
Note: the sensor is the blue flying fish sensor, setup by blueprint attached, just without led. The drive controller in the other picture was set up in that manner just without the fly time sensor. The sensor lights turn on and register obstacles.
Reference setup blue prints:
https://www.coderdojotc.org/micropython ... -base-bot/
https://diyprojectslab.com/ir-sensor-wi ... icropytho/
# Define the IR sensor pin
ir_sensor_pin = 16 # Replace with your actual pin number
from machine import Pin, PWM
from utime import sleep
power_level= 35000
# Define pins
ir_sensor_pin = Pin(16, Pin.IN) # Replace with your IR sensor pin
motor_left_forward = Pin(18, Pin.OUT) # Replace with left motor forward pin
motor_left_backward = Pin(19, Pin.OUT) # Replace with left motor backward pin
motor_right_forward = Pin(20, Pin.OUT) # Replace with right motor forward pin
motor_right_backward = Pin(21, Pin.OUT) # Replace with right motor backward pin
motor_left_forward = PWM(Pin(motor_left_forward))
motor_left_backward = PWM(Pin(motor_left_backward))
motor_right_forward = PWM(Pin(motor_right_forward))
motor_right_backwards = PWM(Pin(motor_right_backward))
def turn_motor_on(pwm):
pwm.duty_u16(power_level)
def turn_motor_off(pwm):
pwn.duty_u16(0)
def stop_motors():
motor_left_forward.value(0)
motor_left_backward.value(0)
motor_right_forward.value(0)
motor_right_backward.value(0)
def move_forward():
motor_left_forward.value(1)
motor_left_backward.value(0)
motor_right_forward.value(1)
motor_right_backward.value(0)
def turn_right():
motor_left_forward.value(1)
motor_left_backward.value(0)
motor_right_forward.value(0)
motor_right_backward.value(1)
def turn_left():
motor_left_forward.value(0)
motor_left_backward.value(1)
motor_right_forward.value(1)
motor_right_backward.value(0)
while True:
if ir_sensor_pin.value() == 0: # Obstacle detected
stop_motors()
# Optional: Implement turning maneuver based on your robot design
# turn_right()
# time.sleep(0.5)
else: # No obstacle
move_forward()
time.sleep(0.1) # Adjust delay as needed
time.sleep(0.1) # Add a small delay for stability
Below is the code I've been working on for awhile. But the robot won't even run. I have it hooked up to a Raspberry Pi Pico along with a L293D 4 channel motor controller. I was wondering if there was something wrong with the code. Or how I have it set up? The skeleton of it i got off Google.
Note: the sensor is the blue flying fish sensor, setup by blueprint attached, just without led. The drive controller in the other picture was set up in that manner just without the fly time sensor. The sensor lights turn on and register obstacles.
Reference setup blue prints:
https://www.coderdojotc.org/micropython ... -base-bot/
https://diyprojectslab.com/ir-sensor-wi ... icropytho/
# Define the IR sensor pin
ir_sensor_pin = 16 # Replace with your actual pin number
from machine import Pin, PWM
from utime import sleep
power_level= 35000
# Define pins
ir_sensor_pin = Pin(16, Pin.IN) # Replace with your IR sensor pin
motor_left_forward = Pin(18, Pin.OUT) # Replace with left motor forward pin
motor_left_backward = Pin(19, Pin.OUT) # Replace with left motor backward pin
motor_right_forward = Pin(20, Pin.OUT) # Replace with right motor forward pin
motor_right_backward = Pin(21, Pin.OUT) # Replace with right motor backward pin
motor_left_forward = PWM(Pin(motor_left_forward))
motor_left_backward = PWM(Pin(motor_left_backward))
motor_right_forward = PWM(Pin(motor_right_forward))
motor_right_backwards = PWM(Pin(motor_right_backward))
def turn_motor_on(pwm):
pwm.duty_u16(power_level)
def turn_motor_off(pwm):
pwn.duty_u16(0)
def stop_motors():
motor_left_forward.value(0)
motor_left_backward.value(0)
motor_right_forward.value(0)
motor_right_backward.value(0)
def move_forward():
motor_left_forward.value(1)
motor_left_backward.value(0)
motor_right_forward.value(1)
motor_right_backward.value(0)
def turn_right():
motor_left_forward.value(1)
motor_left_backward.value(0)
motor_right_forward.value(0)
motor_right_backward.value(1)
def turn_left():
motor_left_forward.value(0)
motor_left_backward.value(1)
motor_right_forward.value(1)
motor_right_backward.value(0)
while True:
if ir_sensor_pin.value() == 0: # Obstacle detected
stop_motors()
# Optional: Implement turning maneuver based on your robot design
# turn_right()
# time.sleep(0.5)
else: # No obstacle
move_forward()
time.sleep(0.1) # Adjust delay as needed
time.sleep(0.1) # Add a small delay for stability
Statistics: Posted by Jweld1117 — Thu Oct 17, 2024 7:28 pm