Eric’s Status Update for 4/4/2020

Eric’s Status Update for 4/4/2020

What did you personally accomplish this week on the project? Give files or photos
that demonstrate your progress. Prove to the reader that you put sufficient effort into
the project over the course of the week (12+ hours).
I soldered together 4 PCB’s and tested the circuit to confirm that the IR communication works and that the reflective sensors can distinguish between black and white.
Melodee and I experimented with various woodworking techniques to assemble these enclosures and were able to find a method of creating box joint’s very quickly on a router table.
I also spent a lot of time this week learning C++ to help Melodee with the firmware.  I made a driver library for Melodee to interface with the circuit.  Below is the library header.  The library attempts to turn the very messy synchronous environment of avr programming into a javascript-like single threaded asynchronous one.

#pragma once

const int numReflectiveSensors = 6;

enum Side_Name {top, right, bottom, left};

Side_Name opposite(Side_Name);
Side_Name sideFromString(String side);

void disableInterrupts();
void enableInterrupts();
bool interruptsEnabled();

static void initSides(void (*callback)(Side_Name));
void updateSides();
void sendPulseThen(Side_Name, void (*callback)(void));
void flipTile();

void initDriver(void (*callback)(Side_Name));
void updateDriver();
use this instead of micros to avoid overflow
unsigned long timeMicros();
void waitMicrosThen(unsigned long us, void (*callback)(void));
void readReflectiveSensorsThen(void (*callback)(int));
void readReflectiveSensorRawThen(int sensor, void (*callback)(int));
void goToSleepThen(void (*callback)(void));
void registerPlayHandler(void (*callback)(void));
void serialLog(String s);
bool newSerialMessage();
String getSerialMessage();

Is your progress on schedule or behind? If you are behind, what actions will be
taken to catch up to the project schedule?
I think we are very behind on the firmware side of things, but we are devoting a lot of time to it now to get it working asap.
What deliverables do you hope to complete in the next week?
Finish the driver I am working on and have the basis of inter-tile communication working on several tiles.

Leave a Reply

Your email address will not be published. Required fields are marked *