{"id":14448,"date":"2021-11-02T08:33:39","date_gmt":"2021-11-02T12:33:39","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/?p=14448"},"modified":"2021-11-02T08:33:39","modified_gmt":"2021-11-02T12:33:39","slug":"automatic-blind-opener","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/automatic-blind-opener\/","title":{"rendered":"Automatic Blind Opener"},"content":{"rendered":"<p>A device that opens and closes the blinds automatically depending on how bright it is outside.<\/p>\n<div id=\"attachment_14432\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14432\" loading=\"lazy\" class=\"size-full wp-image-14432\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-scaled.jpg\" alt=\"\" width=\"2560\" height=\"2105\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-300x247.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-1024x842.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-768x632.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-1536x1263.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-2048x1684.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-973x800.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5075-508x418.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><p id=\"caption-attachment-14432\" class=\"wp-caption-text\">An overall view of the device.<\/p><\/div>\n<div id=\"attachment_14431\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14431\" loading=\"lazy\" class=\"size-full wp-image-14431\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5079-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><p id=\"caption-attachment-14431\" class=\"wp-caption-text\">An image of the LED display when the blinds are closed.<\/p><\/div>\n<div id=\"attachment_14430\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14430\" loading=\"lazy\" class=\"size-full wp-image-14430\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5080-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><p id=\"caption-attachment-14430\" class=\"wp-caption-text\">An image of some of the inner parts of the device including the motor, power light, and some wiring.<\/p><\/div>\n<div id=\"attachment_14429\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14429\" loading=\"lazy\" class=\"size-full wp-image-14429\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5081-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><p id=\"caption-attachment-14429\" class=\"wp-caption-text\">An image of the photoresistor being used to detect light on the inside of the room.<\/p><\/div>\n<h1>Process Images<\/h1>\n<div id=\"attachment_14435\" style=\"width: 2058px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14435\" loading=\"lazy\" class=\"size-full wp-image-14435\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848.jpg\" alt=\"\" width=\"2048\" height=\"1291\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848-300x189.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848-1024x646.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848-768x484.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848-1536x968.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848-973x613.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/97848-508x320.jpg 508w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><p id=\"caption-attachment-14435\" class=\"wp-caption-text\">These are sketches of my device during early ideation stages. I had a few designs made, but I decided to go with the one on the left because I wanted a sophisticated look without having to build something too complex.<\/p><\/div>\n<div id=\"attachment_14433\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14433\" loading=\"lazy\" class=\"size-full wp-image-14433\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5054-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><p id=\"caption-attachment-14433\" class=\"wp-caption-text\">This is a picture of my electronics being soldered. I was considering using a breadboard because I knew that there were a lot of connections that had to be made, but at the same time I didn&#8217;t want anything to come undone while piecing everything together.<\/p><\/div>\n<div id=\"attachment_14434\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-14434\" loading=\"lazy\" class=\"size-full wp-image-14434\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-300x225.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-973x730.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/IMG-5060-508x381.jpg 508w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><p id=\"caption-attachment-14434\" class=\"wp-caption-text\">This is a picture of how my project orignially looked once I fabricated it. I had tried to form the shell by hand, but since I was inexperienced, I made a lot of mistakes that ended up having a huge effect on stability and aesthetic. I was reluctant to use a laser cutter, but it turned out for the better.<\/p><\/div>\n<h1>Discussion<\/h1>\n<p>After reflecting with my friend about all we had gone through with our projects, I realized a lot about my skills and deficiencies.<\/p>\n<p>One huge realization is that I\u2019m a lot better at conceptualizing than physically fabricating. I got supportive feedback about my functionality like, \u201cEven though you went through a lot of design changes I think it still works well,\u201d and, \u201cI like the idea of contrasting light sources and rotating based on that,\u201d but nobody commented on my structure or design except for one, \u201coof the wobbling stick.\u201d One person even commented, \u201coverall love the idea and would def purchase\u2026,\u201d and I genuinely think they would, just not <em>my <\/em>model. Even I could tell that my device had poor aesthetic!<\/p>\n<p>Problems with electronics or programming were much more manageable than the ones that propped up during fabrication. I felt frustrated since it seemed like everyone else\u2019s project seemed to come together cleanly while mine was a mess. I realized, however, that even though my fabrication skills weren\u2019t where I wanted them to be, I could troubleshoot electronics and code pretty well. That was a relief for me to realize because I couldn\u2019t celebrate the fact that my device worked since it\u2019s look had me feeling like I completely failed.<\/p>\n<p>This project has also helped me to be easier on myself. I hardly have any experience with fabrication; I hardly took any art classes where these skills were taught, I rarely ever engaged in personal projects that required this sort of skill, and I was generally unprepared for fabrication. Even now, my Mechanical Engineering curriculum is preparing me to be an extremely adept problem solver, but so far it\u2019s been lacking in developing me as a designer\/manufacturer. Regardless, I have a lot more respect for myself as a problem solver and can now see my blind spots.<\/p>\n<p>If I were to build my device again, I would go with the exact same model. This time however, I would be much more intentional about assembling the parts in a way that was aesthetically pleasing. Overall though, I\u2019m happy with the way everything turned out and I\u2019m excited to apply what I learned to my next project.<\/p>\n<h1>Technical Information<\/h1>\n<p><strong>Functional Block Diagram &amp; <\/strong><strong>Schematic<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-14477\" src=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1.jpg\" alt=\"\" width=\"1271\" height=\"1111\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1.jpg 1271w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1-300x262.jpg 300w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1-1024x895.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1-768x671.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1-973x851.jpg 973w, https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-content\/uploads\/2021\/11\/Automatic-Blind-Opener-Schematic-1-508x444.jpg 508w\" sizes=\"(max-width: 1271px) 100vw, 1271px\" \/><\/p>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">\/\/ Automatic Blind Opener\r\n\/\/ David Oladosu\r\n\/\/ Turns a stepper motor to a certain position if the light on one\r\n\/\/ photoresistor is higher than the other.\r\n\r\n\/\/ INITIALIZE\r\n#include &lt;Wire.h&gt;\r\n#include &lt;LiquidCrystal_I2C.h&gt;\r\n#include &lt;AccelStepper.h&gt;\r\nconst int STEP_PIN = 3;\r\nconst int DIR_PIN = 4;\r\nconst int WINDOWSENSOR = A0;\r\nconst int ROOMSENSOR = A1;\r\nint motorPos = 0;\r\nint blindsOpen = 3; \/\/ Value that keeps track of whether or not blinds are open\r\nint currentWindowBrightness = 0;\r\nint currentRoomBrightness = 0;\r\nAccelStepper myMotor(1, STEP_PIN, DIR_PIN);\r\nLiquidCrystal_I2C screen(0x27, 16, 2);\r\n\r\nvoid setup() {\r\n  Serial.begin(9600);\r\n  pinMode(WINDOWSENSOR, INPUT);\r\n  pinMode(ROOMSENSOR, INPUT);\r\n  myMotor.setMaxSpeed(1000);\r\n  myMotor.setAcceleration(500);\r\n  screen.init();\r\n  screen.backlight();\r\n  \r\n\r\n}\r\n\r\nvoid loop() {\r\n  int windowVal = analogRead(WINDOWSENSOR)* .78; \/\/This value may have to be adjusted depending on the value of\r\n  int roomVal = analogRead(ROOMSENSOR);          \/\/the photoresistor you use.\r\n  int windowBrightness = map(windowVal, 0, 970, 9, 1); \/\/analogRead values mean nothing, but brightness on a\r\n  int roomBrightness = map(roomVal, 0, 970, 9, 1);     \/\/scale from 1-9 is useful. 1 is dark, 9 is bright.\r\n  \r\n  \/\/The following conditionals have nested conditionals so that the LED screen only changes it's display when\r\n  \/\/it needs to. Otherwise, data constantly being sent to the screen slows down the stepper motor.\r\n  \r\n  if( roomBrightness &gt; windowBrightness){\r\n    if( blindsOpen != 0 ){ \/\/If blinds aren't opened, open them and run this block of code\r\n      blindsOpen = 0;\r\n      currentWindowBrightness = windowBrightness;\r\n      currentRoomBrightness = roomBrightness;\r\n      screen.clear();\r\n      screen.home();\r\n      screen.print((String) \"Wnd: \" + windowBrightness);\r\n      screen.setCursor(10,0);\r\n      screen.print((String) \"Rm:\" + roomBrightness);\r\n      screen.setCursor(0,1);\r\n      screen.print(\"Closing blinds\");\r\n    }\r\n    motorPos = 1000;\r\n    myMotor.moveTo(motorPos);\r\n    myMotor.run();\r\n    if (myMotor.distanceToGo() == 0){\r\n      screen.setCursor(0,1);\r\n      screen.print(\"Blinds closed.\");\r\n    }\r\n  }\r\n  else{\r\n    if( blindsOpen != 1 ){\r\n      blindsOpen = 1;\r\n      currentWindowBrightness = windowBrightness;\r\n      currentRoomBrightness = roomBrightness;\r\n      screen.clear();\r\n      screen.home();\r\n      screen.print((String) \"Wnd: \" + windowBrightness);\r\n      screen.setCursor(10,0);\r\n      screen.print((String) \"Rm:\" + roomBrightness);\r\n      screen.setCursor(0,1);\r\n      screen.print(\"Opening blinds\");\r\n    }\r\n    motorPos = 0;\r\n    myMotor.moveTo(motorPos);\r\n    myMotor.run();\r\n    if (myMotor.distanceToGo() == 0){\r\n      screen.setCursor(0,1);\r\n      screen.print(\"Blinds opened.\");\r\n    }\r\n  }\r\n\r\n  \/\/If the numbers on the LED display should change but they haven't, change them.\r\n  if(currentWindowBrightness != windowBrightness || currentRoomBrightness != roomBrightness){\r\n      currentWindowBrightness = windowBrightness;\r\n      currentRoomBrightness = roomBrightness;\r\n      screen.home();\r\n      screen.print((String) \"Wnd: \" + windowBrightness);\r\n      screen.setCursor(10,0);\r\n      screen.print((String) \"Rm:\" + roomBrightness);\r\n    }\r\n  myMotor.run();\r\n  \r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A device that opens and closes the blinds automatically depending on how bright it is outside. Process Images Discussion After reflecting with my friend about all we had&#8230;<\/p>\n","protected":false},"author":199,"featured_media":14427,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/posts\/14448"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/comments?post=14448"}],"version-history":[{"count":5,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/posts\/14448\/revisions"}],"predecessor-version":[{"id":14482,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/posts\/14448\/revisions\/14482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/media\/14427"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/media?parent=14448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/categories?post=14448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-223\/f2021\/work\/wp-json\/wp\/v2\/tags?post=14448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}