implement basic HTTP API using flask

This commit is contained in:
Siwat Sirichai 2022-10-28 15:13:25 +07:00
parent e117177b9b
commit 3d5a084b47
4 changed files with 61 additions and 20 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*.pyc

57
app.py Normal file
View File

@ -0,0 +1,57 @@
from telemetrix_rpi_pico import telemetrix_rpi_pico
import kuukar_leds
import kuukar_collision
import kuukar_motion
import kuukar_lcd
import kuukar_sensors
import kuukar_environment
from flask import Flask, request
from kuukar_config import SERIAL_AUX_BOARD, SERIAL_DRIVER_BOARD
app = Flask(__name__)
aux_board = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_AUX_BOARD)
driver_board = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_DRIVER_BOARD)
sensors = kuukar_sensors.sensors(aux_board, driver_board)
leds = kuukar_leds.leds(aux_board=aux_board)
lcd = kuukar_lcd.lcd()
environment = kuukar_environment.environment(lcd, leds, sensors)
collision = kuukar_collision.collision(aux_board, lcd, leds)
motion = kuukar_motion.motion(driver_board=driver_board, leds=leds, sensors=sensors)
@app.route('/drive')
def drive():
speed = int(request.args.get('speed'))
motion.drive(speed)
@app.route("/stop")
def stop():
motion.stop()
@app.route('/turn')
def turn():
speed = int(request.args.get('speed'))
duration = int(request.args.get('duration'))
motion.turn(speed, duration)
@app.route('/set_ambient_leds')
def set_ambient_leds():
r = int(request.args.get('r'))
g = int(request.args.get('g'))
b = int(request.args.get('b'))
leds.set_ambient_led(r, g, b)
@app.route('/set_mode')
def set_mode():
mode = str(request.args.get('mode'))
if mode == "AI":
motion.roam_start()
elif mode == "MANUAL":
motion.roam_stop()

View File

@ -1,19 +0,0 @@
from telemetrix_rpi_pico import telemetrix_rpi_pico
import kuukar_leds
import kuukar_collision
import kuukar_motion
import kuukar_lcd
import kuukar_sensors
import kuukar_environment
from kuukar_config import SERIAL_AUX_BOARD, SERIAL_DRIVER_BOARD
if __name__ == '__main__':
aux_board = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_AUX_BOARD)
driver_board = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=SERIAL_DRIVER_BOARD)
sensors = kuukar_sensors.sensors(aux_board, driver_board)
leds = kuukar_leds.leds(aux_board=aux_board)
lcd = kuukar_lcd.lcd()
environment = kuukar_environment.environment(lcd, leds, sensors)
collision = kuukar_collision.collision(aux_board, lcd, leds)
motion = kuukar_motion.motion(driver_board=driver_board, leds=leds, sensors=sensors)

View File

@ -1,2 +1,3 @@
telemetrix-rpi-pico telemetrix-rpi-pico
pyaudio pyaudio
flask