migrate to 2 rpi board

This commit is contained in:
Siwat Sirichai 2022-11-04 13:56:52 +07:00
parent f7014f5fef
commit f68e037537
4 changed files with 37 additions and 8 deletions

5
app.py
View File

@ -8,14 +8,15 @@ import kuukar.kuukar_sensors as kuukar_sensors
import kuukar.kuukar_environment as kuukar_environment import kuukar.kuukar_environment as kuukar_environment
from flask import Flask, request from flask import Flask, request
from kuukar.kuukar_config import SERIAL_MCU from kuukar.kuukar_config import SERIAL_MCU, SERIAL_DRV
app = Flask(__name__) app = Flask(__name__)
mcu = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_MCU) mcu = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_MCU)
drv = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_DRV)
sensors = kuukar_sensors.sensors(mcu) sensors = kuukar_sensors.sensors(mcu)
leds = kuukar_leds.leds(mcu) leds = kuukar_leds.leds(mcu)
motion = kuukar_motion.motion(mcu, leds, sensors) motion = kuukar_motion.motion(mcu, drv, leds, sensors)
lcd = kuukar_lcd.lcd(motion, sensors) lcd = kuukar_lcd.lcd(motion, sensors)
environment = kuukar_environment.environment(lcd, leds, sensors) environment = kuukar_environment.environment(lcd, leds, sensors)
collision = kuukar_collision.collision(mcu, lcd, leds) collision = kuukar_collision.collision(mcu, lcd, leds)

View File

@ -1,4 +1,5 @@
SERIAL_MCU = "COM4" SERIAL_MCU = "COM4"
SERIAL_DRV = "COM20"
# HC Sonar Pins # HC Sonar Pins
SONAR_1_TRIG_PIN = 0 SONAR_1_TRIG_PIN = 0

View File

@ -11,8 +11,9 @@ class motion:
roaming = False roaming = False
def __init__(self, mcu: telemetrix_rpi_pico.TelemetrixRpiPico, leds: leds, sensors: sensors) -> None: def __init__(self, mcu: telemetrix_rpi_pico.TelemetrixRpiPico, drv: telemetrix_rpi_pico.TelemetrixRpiPico, leds: leds, sensors: sensors) -> None:
self.mcu = mcu self.mcu = mcu
self.drv = drv
self.leds = leds self.leds = leds
self.sensors = sensors self.sensors = sensors
self.roam_thread = threading.Thread(target=self.__roam_looper) self.roam_thread = threading.Thread(target=self.__roam_looper)
@ -21,15 +22,15 @@ class motion:
drive_pins = [MOTOR_FL_F, MOTOR_FL_R, MOTOR_FR_F, drive_pins = [MOTOR_FL_F, MOTOR_FL_R, MOTOR_FR_F,
MOTOR_FR_R, MOTOR_RL_F, MOTOR_RL_R, MOTOR_RR_F, MOTOR_RR_R] MOTOR_FR_R, MOTOR_RL_F, MOTOR_RL_R, MOTOR_RR_F, MOTOR_RR_R]
for drive_pin in drive_pins: for drive_pin in drive_pins:
self.mcu.set_pin_mode_pwm_output(drive_pin) self.drv.set_pin_mode_pwm_output(drive_pin)
def motor_write(self, forward_pin: int, reverse_pin: int, speed: int): def motor_write(self, forward_pin: int, reverse_pin: int, speed: int):
if speed < 0: if speed < 0:
self.mcu.pwm_write(forward_pin, 0) self.drv.pwm_write(forward_pin, 0)
self.mcu.pwm_write(reverse_pin, -speed) self.drv.pwm_write(reverse_pin, -speed)
elif speed >= 0: elif speed >= 0:
self.mcu.pwm_write(forward_pin, speed) self.drv.pwm_write(forward_pin, speed)
self.mcu.pwm_write(reverse_pin, 0) self.drv.pwm_write(reverse_pin, 0)
def drive(self, speed: int): def drive(self, speed: int):
self.motor_write(MOTOR_FL_F, MOTOR_FL_R, speed) self.motor_write(MOTOR_FL_F, MOTOR_FL_R, speed)

26
pure_test.py Normal file
View File

@ -0,0 +1,26 @@
from telemetrix_rpi_pico import telemetrix_rpi_pico
import time
import kuukar.kuukar_config as config
global mcu,drv,distance
mcu = telemetrix_rpi_pico.TelemetrixRpiPico("COM4")
drv = telemetrix_rpi_pico.TelemetrixRpiPico("COM20")
distance = 0
drv.set_pin_mode_pwm_output(config.MOTOR_RR_F)
drv.pwm_write(config.MOTOR_RR_F,30)
def sonarcallback(data):
global mcu,drv,distance
pin = data[1]
distance = data[2]
mcu.set_pin_mode_sonar(config.SONAR_2_TRIG_PIN,config.SONAR_2_ECHO_PIN, sonarcallback)
while True:
print(distance)
if distance < 20.0 and distance != 0:
drv.pwm_write(config.MOTOR_RR_F,0)
print("STOP")
time.sleep(1)
drv.pwm_write(config.MOTOR_RR_F,30)