During our second sprint we created a 3x3 matrix of nodes which open and close based on wheter motion is sensed in one of 3 sections. We sensed motion using OpenCV and were able to get our code integrated and working on a raspberry pi with a raspi camera.
The mechanical design of our system consisted of a geared system which was able to open and close three nodes with one servo. The nodes were designed for easy opening and closing. The geared system was loosely based off the way a train works. We created a box to enclose the system for aesthetics. We included 3 servos for a total of 9 nodes in our integrated sprint deliverable.
The software team worked on motion detection using opencv for this sprint. We wanted to be able to determine whether there was motion in one of three sections so we could specify one of the three servos to move. To detect motion, we found the difference of the current screen and the previous 2 screens. We were able to get our code working on a raspberry pi with a raspberry pi camera. We sent 1 of 3 possible values to serial to specify which servo the arduino should move.
We wanted to make a system that was easily scalable. To achieve this goal, we created a distributed system of Arduinos that communicate over I2C. We had a leader Arduino that communicatated and sent commands to the follower Arduino through I2C. Although we only had one follower for this sprint, this scalable design will make it easier for us when we want to scale up and add more nodes to our system.
For sprint 3, we are planning on working on making the movement of our nodes smoother, probably by transitioning from servos to stepper motors. We also want to introduce LEDs which respond to sound to incorportate our software work from sprint 1 and aim to incorporate face detection and speed detection. Lastly, we want to build a shop botted frame and increase the overall aestheticism of our system.