Skip to content
This repository has been archived by the owner on Jul 22, 2020. It is now read-only.

Latest commit

 

History

History
98 lines (65 loc) · 1.87 KB

firmware_ideas.md

File metadata and controls

98 lines (65 loc) · 1.87 KB

Ideas for the firmware of the robot

Brainstorming ideas for developing our robot 🙂

Controllers

Modules which map real world functionalities

Movement controller

Capabilities:

  • Move forward for x seconds
  • Move backwards for x seconds
  • Rotate left for x seconds
  • rotate right for x seconds

API proposal:

void Move(Direction direction, Duration duration);
void Rotate(Direction direction, Duration duration);

Loading controller

Capabilities:

  • Grab an animal
  • Release the animal again

API proposal:

void GrabTarget();
void ReleaseTarget();

Ultrasonic sensor controller

Capabilities:

  • measures distance (in cm) to objects in front of the robot
  • emits an event if an object is about to collide with the robot

API proposal:

int MeasureDistance();

// event props
int distance;
DateTime occuredAt;

Line detection sensor controller

Capabilities:

  • emits an event if a contrast on the floor is detected (black duct tape = game boundary)

Object detection controller

Capabilities:

  • emits an event if the target was detected with a high probability

API proposal:

// event props
double probability;
int maxX;
int maxY;
int minX;
int minY;

Microphone controller

Capabilities:

  • emits events for required intents

TODO

  • Describe control flows
  • Find a way to intercept control flows for important event reactions without abandoning the current control flow
  • probably a lot more 😄