Wearables Assignment 4: Make a project wireless

 

9F52B292-D7EC-40D7-869D-AA29EB795934

Assignment 4: Turn one of the previous wearable projects into a wireless one. 

For this project we were asked to think critically about what makes a product need to be part of IOT? Does it actually improve the functionality of the object if its online? Jingwen gave us an example of shopping for microwaves and the idea of do you really need Alexa to heat up your coffee? And encouraged us to think critically about whether our projects are improved by incorporating that layer of functionality.

For wearability and accuracy I decided for this project to switch out the Particle Sensor for a Airvisual API + Bluetooth LE setup. Similar to Alvin and his Raspberry pi exploration, I think I dove head first into more than I realized but definitely learned a lot through the process:

 

Original video of PM sensor + 3 LEDs tied to particulate matter thresholds

Screen Shot 2019-04-19 at 2.45.38 AM.pngadafruit_products_2487_demo_01A_ORIG

Circuit based on Adafruits’ Flora+Bluefruit BLE + Neopixel + Bluefruit App:

  • Adafruit Flora
  • Bluefruit LE
  • Programmable Neopixel
    • Each pixel draws as much as 60mA (all three RGB LEDs on for full brightness white)
  • 3.7 V Lipo battery
  • Conductive Thread

Construction:

E6119922-8910-43EB-A225-7076EBC23E29

8BC9970A-6FE0-4D3C-81DC-EDF04F09F9BAECA5B606-2EF8-43E4-B5DD-D38F841C7DF3A2902CC5-C6C7-45B6-A228-85F4C7DFDF039F52B292-D7EC-40D7-869D-AA29EB795934

** due to neopixel being programable can decrease LEDs in circuit from 3 to 1 or even use the onboard neopixel on the flora or CPlaygroundExpress

 

 

Hardware Side:

Understanding differences between Circuit Playground Classic, Circuit Playground Express, and Flora

flora_pinout

Screen Shot 2019-04-19 at 12.40.34 AM

 

 

 

Testing the Onboard & Sewable Neopixel:

After seeing that my initial bluetooth circuit wasn’t communication to the neopixels w/ the Bluefruit app, took Arnab’s advice to break it into small blocks for debugging starting with the neopixel components. Both tests worked without the Bluefruit Bluetooth module in the circuit, so now I know its either the BlueFruit module or the code example. When running Jingwen’s FSR example, I was able to connect a couple times through the app & was reflected in the serial monitor, however it wasn’t producing a range of values when i pressed the FSR?

**neopixel originally lit up on hat but was not changing color / had a short due to having added the neopixel into the circuit backwards and also initially using graphite to trace the component placement on muslin, forgetting it was a conductive material.

 

 

 

 

 

 

 

Trouble Shooting / Issues encountered:

 

  • FSR example
    • kept getting either “3”s continually (w/out a resistor in circuit)
    • and then “255’s” continually (w/resistor added to circuit)

50803_-_img_6116.jpg

 

 

 

 

  • DFU / Factory Reset issues w/ adafruits controller example
    • Issues with continually receiving “couldn’t factory reset” when trying to use Adafruits Controller example code

Screen Shot 2019-04-19 at 5.46.25 AM

 

 

 

 

  • Renaming Bluefruit LE Module  – Trying to work alongside someone w/ another BlueFruit it became clear quickly it would help us to rename our modules due to accidentally connecting to one anothers
  • LE connect continual crashing on laptop
    • Using Adafruit Bluefruit LE connect on laptop
    • Jiwon mentioned that since Madison and I were having trouble id-ing our specific module to try the desktop version. However had issues with it continually crashing

Screen Shot 2019-04-19 at 3.03.14 AM

Screen Shot 2019-04-17 at 8.05.43 PM

 

 

Screen Shot 2019-04-19 at 5.17.11 AM

  • Commenting out “while” serial connect statement 

 

  • broken maker 1010 from shop 
    •  realized when home it was labeled broken on box
    • checked a new one out friday

 

 

Questions to look into: 

  • Checking Cmd/data switch vs mode pad
  • Baud Rate
  • why in the fsr example I keep getting a steady stream of the same numbers
    • 3s w/out resistor & 255 w/ resistor
    • it seems like it is receiving some kind of data but not
  • Why neopixel lights up with flora test but not with the Bluefruit BLE connect app?
  • Which parts of code need to be edited – commented in or out on examples

Screen Shot 2019-04-19 at 5.58.19 AM

 

 

 

 

API parsing w/ ArduinoJson:

Last weekend Mary and I talked through thinking about how to call a live API JSON file with Arduino using arduinojson. I also printed out her project’s code Storm’s A Comin’ 2.0 to see if I could follow the logic / better understand what would need to be adjusted from her experience for the AQ Hat + Air Visual API. I think also classmate Jillian Zong’s Umbrella Notification Light code might help me better understand as well?

Screen Shot 2019-04-19 at 3.18.08 AM.png

IMG_6240.JPGSifting Through a Storm A Comin’s Code using arduinoJson

 

 

 

Screen Shot 2019-04-19 at 3.15.52 AM

 

AirVisual // Free API key for community usage up to a certain call amount

  • Provides updated AQI on an hourly call & it gps coordinates based on city
    • similar to

 

 

Materials:

  • SMPLFD Detroit hat 
  • Flora Adafruit V2 board (has an onboard neopixel)
  • Flora Bluefruit Bluetooth BLE module
  • Flora programmable sewable RGB LED pixel
  • 3.7v Lipo battery
  • Conductive thread
  • Black Thread
  • Sewing needle with large enough eye for conductive thread
  • Clear Nail Polish
  • Prototyping Muslin
  • Sewing Hoop

 

 

Lessons Learned: 

  • Comment out the While Serial code when no longer connected vis usb (meant for serial trouble shooting only)
  • Don’t use graphite to trace placement due to conductivity / always use tailor chalk or pen
  • Always check the data in & out arrows of flora neopixels
  • Double check that your circuit works with alligator clips first
  •  As you build, check one item at a time as you add it into the circuit so that similar to debugging you can know where you’re having issues due to isolation – See A Brief Introduction to Debugging
  • That always check if the example you’re looking at is for Circuit Playground express vs Circuit Playground Classic
  • Shorter alligator clips for quick prototyping

 

 

To Consider Next: 

  • Office hours with:
    • Jingwen to troubleshoot BLE circuit
    • Jasmine to review APIs
  • Back it up and try examples w/ maker 1010 first before trying bluefruit
  • Over the summer – looking at CircuitPython environment + the Flora

 

Reference Links:

 

 

Thank you! 

  • Madison for trying to trouble shoot the bluefruit BLE module alongside
  • Mary for brainstorming live vs static API parsing with Arduino // & how A Storm’s a comin works on the code end
  • Arnab for sifting through / trying to help me and Madison troubleshoot our circuits
  • Jingwen for patience & guidance

 

 

 

 

3944-06Screen Shot 2019-04-19 at 4.34.02 PM.png

 

 

 

 

No to NoUI reading

 

 

Invisible-design.gif“Towards legible, evident interaction

We must abandon invisibility as a goal for interfaces; it’s misleading, unhelpful and ultimately dishonest. It unleashes so much potential for unusable, harmful and frustrating interfaces, and systems that gradually erode users and designers agency. Invisibility might seem an attractive concept at first glance, but it ignores the real, thorny, difficult issues of designing and using complex interfaces and systems.

We might be better off instead taking our language from typography, and for instance talk about legibility and readability without denying that typography can call attention to itself in beautiful and spectacular ways. Our goal should be to ‘place as much control as possible in the hands of the end-user by making interfaces evident‘.

Of course the interfaces we design may become normalised in use, effectively invisible over time, but that will only happen if we design them to be legible, readable, understandable and to foreground culture over technology. To build trust and confidence in an interface in the first place, enough that it can comfortably recede into the background.” article link

 

 

Thinking about Microinteractions 

 

Office Hrs w/ Danny

 

 

Today I scheduled a couple office hours, one with Danny & one with Jingwen later tonite for Intro to Wearables. I wanted to talk about the possibilities of using a servo motor on a garment to help reveal elements in an automated way. We talked about lots of possibilities from complex to more simplified, with the simplest option being a drawstring pull that would reveal an element on the back like a curtain pull.

 

Initially talked about / thought through a couple concepts / questions:

  • Gravity is our friend: 
    • how to take advantage of gravity when designing for automation?
      • ex: instead of it being a horizontal reveal? Make it vertical instead for a smooth motion
        • this will also help with not creating a feeling of a new appendage due to the metal dowel sweeping out

 

  • Storytelling:
    • What is this interaction trying to articulate?
      • Are there symbolisms or analogies its conveying?
      • What is it about eye mimicry that I’m hoping to incorporate?
        • thinking about its actual protective or attracting functionality in nature
    • Using Natural mechanical processes to guide the design decisions?
      • How aspects of our body already perform similar motor functions / how to mirror it like an eyelid shutting & opening?

 

  • How to make it soft vs hard:
    • how to hide the mechanical parts to make it feel more incorporated & soft?
      • ex: hiding the servo in a michael jackson style shoulder pad, epaulettes or a puffy collar
      • Thinking about how to have a external layer that could protect the hardware / hide the servo + metal dowel? Maybe elevated shoulder pads that slightly project backward

Continue reading “Office Hrs w/ Danny”