/
Tutorial 11 - Code design for sequential robots

Tutorial 11 - Code design for sequential robots

Objective

This tutorial is more of a presentation to show how to go from a robot design to a CrcDuino code capable of performing sequential actions. The relatable and simple example used is based on the 2020-11-23 webinar on Autonomous robot design.

Before looking at tutorial 11, watch the Autonomous Robot Design Webinar.

Diagrams

Video presentation

Code

Download the Arduino IDE .ino file:

This is a transcript of the code:

//*************************************************************************** // This code accompanies the Cereal box example in the 2020-11-23 Robot Design Webinar //*************************************************************************** #include <CrcLib.h> //Step management variable declaration bool step0 = LOW; bool step1 = LOW; bool step2 = LOW; bool step3 = LOW; bool step4 = LOW; bool step5 = LOW; bool step6 = LOW; //*************************************************************************** void setup() { CrcLib::Initialize(); //We want to be in step0 upon startup step0 = HIGH; step1 = LOW; step2 = LOW; step3 = LOW; step4 = LOW; step5 = LOW; step6 = LOW; } //*************************************************************************** void loop() { CrcLib::Update(); //------------------ if(step0 == HIGH) { //The action you want to execute during step0 goes here // "DO NOTHING" if( true ) // Replace "true" by the condition representing transition 0-1 { //...we change the steps configuration to take another if() statement during the next scans step0 = LOW; step1 = HIGH; step2 = LOW; step3 = LOW; step4 = LOW; step5 = LOW; step6 = LOW; } } //------------------ if(step1 == HIGH) { //The action you want to execute during step1 goes here if( true ) // Replace "true" by the condition representing transition 1-2 { //...we change the steps configuration to take another if() statement during the next scans step0 = LOW; step1 = LOW; step2 = HIGH; step3 = LOW; step4 = LOW; step5 = LOW; step6 = LOW; } } //------------------ if(step2 == HIGH) { //The action you want to execute during step2 goes here if( true ) // Replace "true" by the condition representing transition 2-3 { //...we change the steps configuration to take another branch ( if() statement ) during the next scans step0 = LOW; step1 = LOW; step2 = LOW; step3 = HIGH; step4 = LOW; step5 = LOW; step6 = LOW; } } //------------------ // //And so on for Step 3, 4 and 5 // //------------------ if(step6 == HIGH) { //Do nothing in Step 6 //We want to stay here forever (until the CrcDuino is shut down), so don't update memory } }

Related content

Tutorial 05 - Sequential program structure
Tutorial 05 - Sequential program structure
More like this
Tutorial 01 - Switch limited motor
Tutorial 01 - Switch limited motor
Read with this
Tutoriel 11 - Conception de code séquentiel pour robots
Tutoriel 11 - Conception de code séquentiel pour robots
More like this
Tutorial 04 - Motor encoder
Tutorial 04 - Motor encoder
Read with this
Tutorials - Intro Page
Tutorials - Intro Page
More like this
CrcLib: How to access the remote controller buttons
CrcLib: How to access the remote controller buttons
Read with this