{"id":231,"date":"2020-04-04T22:31:51","date_gmt":"2020-04-05T03:31:51","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/?p=231"},"modified":"2020-04-04T22:31:51","modified_gmt":"2020-04-05T03:31:51","slug":"erics-status-update-for-4-4-2020","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/2020\/04\/04\/erics-status-update-for-4-4-2020\/","title":{"rendered":"Eric&#8217;s Status Update for 4\/4\/2020"},"content":{"rendered":"<div class=\"textLayer--absolute\"><em>What did you personally accomplish this week on the project? Give files or photos<\/em><\/div>\n<div class=\"textLayer--absolute\"><em>that demonstrate your progress. Prove to the reader that you put sufficient effort into<\/em><\/div>\n<div class=\"textLayer--absolute\"><em>the project over the course of the week (12+ hours).<\/em><\/div>\n<div><\/div>\n<div>I soldered together 4 PCB&#8217;s and tested the circuit to confirm that the IR communication works and that the reflective sensors can distinguish between black and white.<\/div>\n<div><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-232\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/92232842_222987635437900_1670301472765509632_n-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/92232842_222987635437900_1670301472765509632_n-300x225.jpg 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/92232842_222987635437900_1670301472765509632_n-768x576.jpg 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/92232842_222987635437900_1670301472765509632_n-1024x768.jpg 1024w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/92232842_222987635437900_1670301472765509632_n-360x270.jpg 360w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/div>\n<div><\/div>\n<div>Melodee and I experimented with various woodworking techniques to assemble these enclosures and were able to find a method of creating box joint&#8217;s very quickly on a router table.<\/div>\n<div><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-222\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/IMG_20200404_160708-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/IMG_20200404_160708-300x225.jpg 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/IMG_20200404_160708-768x576.jpg 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/IMG_20200404_160708-1024x768.jpg 1024w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-content\/uploads\/sites\/87\/2020\/04\/IMG_20200404_160708-360x270.jpg 360w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/div>\n<div>I also spent a lot of time this week learning C++ to help Melodee with the firmware.\u00a0 I made a driver library for Melodee to interface with the circuit.\u00a0 Below is the library header.\u00a0 The library attempts to turn the very messy synchronous environment of avr programming into a javascript-like single threaded asynchronous one.<\/div>\n<blockquote>\n<div>\n<p>#pragma once<\/p>\n<p>const int numReflectiveSensors = 6;<\/p>\n<p>enum Side_Name {top, right, bottom, left};<\/p>\n<p>Side_Name opposite(Side_Name);<br \/>\nSide_Name sideFromString(String side);<\/p>\n<p>void disableInterrupts();<br \/>\nvoid enableInterrupts();<br \/>\nbool interruptsEnabled();<\/p>\n<p>static void initSides(void (*callback)(Side_Name));<br \/>\nvoid updateSides();<br \/>\nvoid sendPulseThen(Side_Name, void (*callback)(void));<br \/>\nvoid flipTile();<\/p>\n<p>void initDriver(void (*callback)(Side_Name));<br \/>\nvoid updateDriver();<br \/>\nuse this instead of micros to avoid overflow<br \/>\nunsigned long timeMicros();<br \/>\nvoid waitMicrosThen(unsigned long us, void (*callback)(void));<br \/>\nvoid readReflectiveSensorsThen(void (*callback)(int));<br \/>\nvoid readReflectiveSensorRawThen(int sensor, void (*callback)(int));<br \/>\nvoid goToSleepThen(void (*callback)(void));<br \/>\nvoid registerPlayHandler(void (*callback)(void));<br \/>\nvoid serialLog(String s);<br \/>\nbool newSerialMessage();<br \/>\nString getSerialMessage();<\/p>\n<\/div>\n<\/blockquote>\n<div><\/div>\n<div>\n<div class=\"textLayer--absolute\"><em>Is your progress on schedule or behind? If you are behind, what actions will be<\/em><\/div>\n<div class=\"textLayer--absolute\"><em>taken to catch up to the project schedule?<\/em><\/div>\n<\/div>\n<div>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.<\/div>\n<div><\/div>\n<div><em>What deliverables do you hope to complete in the next week?<\/em><\/div>\n<div>Finish the driver I am working on and have the basis of inter-tile communication working on several tiles.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;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&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/2020\/04\/04\/erics-status-update-for-4-4-2020\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":264,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,8],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/posts\/231"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/users\/264"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/comments?post=231"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/posts\/231\/revisions"}],"predecessor-version":[{"id":233,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/posts\/231\/revisions\/233"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/media?parent=231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/categories?post=231"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teamb5\/wp-json\/wp\/v2\/tags?post=231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}