The Concept: Separation of loved ones is never easy, and distance can put a strain on any relationship. For this project, we aimed to let people who are physically separated know that one is thinking of the other.
Supplies: Two lilypads, two lilypad arduino adapters, heating pad (USB), FSR pressure sensor, relay module, neoprene, elastic, wires, a perf board, XCTU software, and XBEE to USB adapter, one of the 12V battery packs, and two 3.7V batteries.
Inspiration: Alanna originally proposed the idea by mentioning a book her mom read to her as a child. The book told the tale of two raccoons; a mother and its baby. The child raccoon was afraid to be apart from its mother, so its mother told it a way to always keep her near. The mother raccoon would kiss its child’s palm, and whenever the baby raccoon was away, it would put its palm to its face and it would be as if its mother was kissing the baby raccoon’s face.
Our goal was to reflect this story with a much more tangible response. We wanted one person to be able to send a direct message to another person who was not nearby imitating the concept of touch. One user holds the glove, while the other holds the band. When the glove-holding user wants to send a subtle message to the user with the band, they can kiss the back of the glove. On the receiving end, a gentle heating pad is activated, sending the message that their loved one is thinking of them.
We Go Shopping: To do this, we first made sure that we could use a heating pad. We went to a nearby mall, where we acquired a stuffed pink flamingo. Inside the flamingo, we found a heating pad that was USB powered. The pad wasn’t even secured inside, and we simply slipped it out of the flamingo for our own use. We then cut the cord of the USB to find out just how complicated our use of the heating pad could be. We cut it to find that we were in luck: our USB only had two cords for power and ground, rather than several. We then tested our heating pad to see if it indeed worked with a battery! But in order to use the battery, we had to raise the current. We first tried several resistors, then some transistors, but finally found the relay to work best for our needs. The relay also clicked when activated, which let us receive immediate feedback as to whether or not the signal was sent. To our amusement, it did in fact work, and we were grateful to move on to the next step of our project.
A Message in A Bottle (or wire): We then worked with serial communication code that Antonius provided. With the two ardiunos connected through tx and rx pins, we were able to make an LED blink. Our next step was to use the pressure sensor to activate the response. Our pressure sensor worked just fine, but our next challenge was to power the heating pad. Our heating pad worked on 5V, but we had to keep increasing the current in order to make it heat up. We started with a few different transistors, until we finally arrived at a relay. The relay helped us test whether our heating pad was heating (because it would click when the message to activate was sent to it), and provide enough current to make our heating pad work.
To XBee or not to XBee: Then came the XBees. After checking out a mountain of different shields and adapters, we began trying to use the XBees. We added the XBee onto a shield for XBees for the Arduino Uno, we took on the challenge of sending serial communication without being physically connected. Because the XBees use the serial pins to communicate, the serial monitor could not be used to log values received or sent on the XBees. Instead, we had to remove the XBees, put them on a different reader, and log values through that instead. We also used an XBee adapter for USB in order to program them. XCTU was used in order to program the XBees. We set default values to them first, and then chose random numbers (that were the right amount of digits) for PAN ID, destination address low, and 16-bit-source address. The PAN ID for both XBees are the same, because the PAN ID is basically the channel that both XBees connect over. The Destination Address Low and the 16-bit Source Address can be random numbers, as long as the destination address low for one XBee is the 16-bit Source Address for the other one, and vice versa.
We also used XCTU to run diagnostics on the communication and to organize which message was going where. We made sure that the number that both xbee’s would communicate under was the same, and that the receiving number and the sending number for each Xbee went to each other. Luis helped a lot with this process and was essential to helping us decode what we tried to read online. Once we had them communicating, we aimed to move to the lily pad.
Lily Pad Life: Moving to the lily pad was not incredibly difficult. We used the same pins that we had before on the arduino uno.
Send Lily Pad Schematic (3.7 volt power was just connected to power and ground of one of the lily pads)
Receive Lily Pad Schematic. 3.7 volt power was connected to power and ground of one of the lily pads, and the power jack (the blackish thing in the diagram) was connected to 12V battery pack.
It is important to note that we did not include the power source to the lilypads that we needed. We ended up figuring this out after soldering everything that we forgot the power source. Each lily pad set (one lily pad and one lily pad Xbee), needs one of its plus petals connected to the positive end of a battery and a negative petal to the negative end of a battery. We used batteries under 5 volts to make sure we didn’t fry any lily pads. We also came to the conclusion that we misunderstood that we had to program the lily pads themselves, and that we only uploaded code to the xBee’s. Somehow, some things still worked. Others definitely did not. We uploaded the same code from the Arduino to the lily pad via a USB adapter (but we took the shields off first!). Finally, everything worked!
Sewing the Fabric of Our Love: We first decided on an elastic strap that could be placed anywhere on your body. However, when we discovered how big the wiring of the lilypads and the batteries were, we decided to put them in a backpack to easily move around. The glove was derived from the original story, but we decided to put the pressure sensor on the back of the hand so that sending the message would be more intentional. Instead of accidentally setting it off, we could be sure that the sending person meant to send their love at that moment.
Code: In the send code, we define a few variables that we’ll later declare with the values from the pressure sensor. We read the analog values from the sensor, and then add a delay. In the receive code, we set the pin modes, and used the original serial code to check if there was an available value from the sending XBee. If the value is above 50, which would indicate that the pressure sensor had been activated, we set the state to HIGH. If the value received was less than 50, we set the pin values to low. When the pins were HIGH, the heating pad would be activated.
Future Steps: Thermochromic paint would definitely help with documentation and for displaying purposes. Unfortunately, we didn’t have time to paint the heating pad earlier on in the week, and we were afraid to paint it before the show because we didn’t know how long it would take to dry. We also would definitely work with smaller electronics, so the heating pad could move to locations other than above the rib cage.