# http://docs.micropython.org/en/latest/library/pyb.html import uasyncio as asyncio import math import ulogging as logging from motors import Motor from sensors import Camera, Sensor logger = logging.Logger(__name__) class Robot: """A class that represents the robot and offers shortcuts functions to runs two motors. Args: rmotor (Motor): The right-side motor lmotor (Motor): The left-side motor """ WHEEL_DIAMETER = 80 # in millimeters ROT_DIAMETER = 270 # distance (mm) between two wheels def __init__(self): self.lmotor = Motor(4, 0x09, 1) self.rmotor = Motor(4, 0x09, 2) self.camera = Camera() self.sensor = Sensor() @property def moving(self):
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. import sys import ulogging from utokenize import * import utokenize from . import types as ast log = ulogging.Logger(__name__) TOK_TYPE = 0 TOK_STRING = 1 BP_UNTIL_COMMA = 6 BP_LVALUE = 160 - 1 class GenComp(ast.expr): _fields = ('elt', 'generators') def literal_eval(s): if s.endswith('"') or s.endswith("'"):
""" This program is the entry point of the Open MV Cam. This is the one you need to launch in OpenMV IDE. """ import pyb import uasyncio as asyncio import robot import ulogging as logging # Creates the root logger (all loggers are herited from it by default) logger = logging.Logger("root") usb_vcp = pyb.USB_VCP() if usb_vcp.debug_mode_enabled(): # Logs will be displayed in the console output logger.add_handler(logging.StreamHandler()) logger.set_level("DEBUG") else: logger.add_handler(logging.FileHandler("robot.log")) try: asyncio.run(robot.main()) # Runs the main script except Exception as error: if str(error) == "IDE interrupt": logger.critical("The script was stopped by Open MV IDE") else: raise error