The marquee design assignment for this week definitely took a lot longer than I expected! The schematic I used was slightly adjusted from the one Andy shared in class, seen below:
I was assigned the letter M. Arranging and connecting everything was quite the challenge, especially since James and I decided to coordinate the interactions on our board using RF signals. This meant that we had to make adjustments to Andy’s schematic in order to incorporate both an RF reciever and transmitter (in addition to a simple switch for base interaction with the LED lights).
The final design looked like this:
I used header pins where the RF modules would go (in case I wanted to replace them for any reason).
Milling and soldering the board was not as bad as I expected, given how intimidated I was by the Othermill at first. It was actually pretty fun!
(The label on the parts for LEDs is not completely accurate – I have 25 LEDs there, and did not separate our the 3 extra LEDs as my markings would suggest).
You can view the simple button press interaction here:
It seems that my button sometimes gets stuck in a down position, but I enjoy it.
James focused on coding RF interactions. His code, roughly based on this tutorial: Instructable. This particular iteration of our code relies on a library called Manchester, which seems to work well with the limitation of the ATTiny’s memory. (Previously, James had experimented with a Radiohead, yet another another RF library, but this ran into issues on the Tiny).
When I had experimented with the version of the code from this tutorial, I ran into quite a bit of trouble detecting why it wasn’t working. (It’s quite hard to detect whether your transmission is sending if you’re not sure if your receiver is working). A key difference between the code I been using and the code below was this line: man.workAround1MhzTinyCore();. (And James has also structured his code nicely to handle RX and TX events in separate functions).
#include <Manchester.h>
#define RXPIN 2 //<< RADIO RECEIVE PIN
#define TXPIN 4 //<< RADIO TRANSMIT PIN
#define LEDPIN 0 //<< PIN FOR LED TRANSISTORS
#define BTNPIN 3 //<< PIN FOR BUTTON
bool ledState = false;
bool triggerState = false;
int t_msg = 0;
int c = 0;
void setup()
{
pinMode(LEDPIN, OUTPUT);
pinMode(LEDPIN, OUTPUT);
pinMode(BTNPIN, INPUT_PULLUP); //<< PIN FOR BUTTON/SWITCH
man.workAround1MhzTinyCore(); //add this in order for transmitter to work with 1Mhz Attiny85/84
man.setupTransmit(TXPIN, MAN_1200);
man.setupReceive(RXPIN, MAN_1200);
man.beginReceive();
//Startup Seq, things are A-Okay!
for (int i = 0; i < 5; i++) {
digitalWrite(LEDPIN, HIGH);
delay(100);
digitalWrite(LEDPIN, LOW);
delay(100);
}
}
void loop()
{
handleTX();
handleRX();
handleLEDs();
if (c == 10000) { //<< Repeat for redundancy
sendMessage();
c = 0;
}
c++;
delay(5);
}
void sendMessage() {
man.transmit(t_msg);
}
void handleLEDs() {
if (ledState) {
digitalWrite(LEDPIN, HIGH);
} else {
digitalWrite(LEDPIN, LOW);
}
}
void handleRX() {
if (man.receiveComplete())
{
uint8_t r_msg = man.getMessage();
if (r_msg == 1) {
ledState = true;
} else if (r_msg == 2) {
ledState = false;
}
man.beginReceive();
}
}
void handleTX() {
if (digitalRead(BTNPIN) == LOW) { //<<Button ON
if (triggerState == false) { //<<Ensure triggered only once
t_msg = 1;
sendMessage();
triggerState = true; //<<Ensure triggered only once
}
}
else { //<<Button OFF
if (triggerState == true) { //<<Ensure triggered only once
t_msg = 2;
sendMessage();
triggerState = false; //<<Ensure triggered only once
}
}
}
Another important difference between our two tests may have also been antenna design. In my initial tests, I was just using the antennas on board the RF modules. James, when our initial tests with various libraries failed, attached a seperate antenna to the board and we had much more reliable success after this point.
We still need to test and document our final interaction between our board, but initial tests seem promising for our printed and newly coded versions.
I’ve always been drawn to the octopus. Octopuses are creatures of remarkable intelligence that seem to have evolved a number of really novel solutions for vision, camouflage, movement, and dexterity.
A few things I found most interesting:
Camouflage: Octopuses have special pigment cells in their skin called chromatophores, which can change color to mimic both the color, pattern of texture of their surroundings.
Movement: Octopuses are their own jet propulsion laboratories: they get around by sucking in a water, and then quickly expelling the water. They also sometimes use their arms (and the attached suction cups) to crawl along surfaces.
Dexterity: Octopus arms, covered in suction cups, are remarkably dexterous. Each is capable of moving independently and has the ability to grip and manipulate objects. These capacities make octopuses surprisingly proficient at physical puzzle mechanisms.
There’s a lot of inspiration to draw from octopuses. Possible technologies:
“Decentralized” grip actuators, capable of independent control but reporting back to central server.
Suction as a mechanism for vertical or gravity-independent movement
Small, multiple suction cups for small object manipulation
For my flat-patterned inflatables exploration, I focused on a butterfly-like shape and tried a few different styles of internal restrains/internal welds to attempt to direct the movement in a more intentional manner.
The main factors I varied throughout my designs were the orientation and size of the internal welds. For one of the designs, I played with changing the shape of the primary air channel, but that was my least successful form (Experiment #3).
I’ve presented my sketches below, along with the relevant videos.
(Special thank you to Jackie Liu who appears in some of the documentation!)
Experiment #1
Experiment #2
Experiment #3
Experiment #4
Experiment #5
If there’s time, I would love to try some of my “Designs I did not built (yet)” drawings on the lasercutter.
This was my first time designing in Eagle, and for each of the boards below, and I had the creeping suspicion that there were better ways to do things. I had a few “Via” routes on my board, and I’m curious to know if there’s a elegant way to reconfigure things.
I’m not entirely certain if Blick counts as a “big box store,” but that’s where I hunted down potential soft materials this weekend. Some were materials that felt a bit obvious as soft materials, and other items felt that they could be considered within our particular realm of soft things depending on how they were used.
1: Socks
Socks are soft in texture (particularly these), and has some built in elastics. Socks do tend to stretch out over time, but for a while, maintain some tensile elasticity.
2: Rubber Toy
Stretchy, delightful! Has both compressive and tensile elasticity.
3: Rubber Roller
This is technically a combination of both soft and hard materials. I liked the squish of the roller, and I liked its potential as a point of interaction.
4: Felt/Wool
This material can be reshaped into felt structures. It has “squish,”” and somewhat more limited “stretch.”
5: Ribbon
This material is not very elastic, but is quite flexible. It could be used in cable-control projects, and has a nice silkiness.
6: Linoleum Square
I don’t recall encountering linoleum squares like this before, and I kind of loved them! They are not very elastic, but has a really interesting flexibility (a pleasant amount of resistance to force).
7: Dual-toned Sequins
The stretchiness of the dual-toned sequined cloth varies quite a bit from fabric to fabric, but I really enjoy both its the texture and visual effect.
8: Chain
Chains aren’t really soft materials, but they behave like soft materials in how it moves as a whole (rather than its individual links). The whole is flexible, though it is made of rigid parts.
9: Open Weave Muslin
I liked the netting of this fabric – it seems like it would be quite easy to attach other items through its structure. It reminds me of a breadboard!
10: Tape
This feels like a soft classic, like paper or string! Fairly flexible, but not very elastic.
11: Leather
Another soft classic – limited tensile elasticity.
12: String + Yarn
Quite flexible, and elasticity varies quite a bit from string to string. For the materials represented here, most are tougher fibers with limited elasticity.
13: Silicone
Silicone has a really great feel. Julia Rich ran a workshop in which we made silicone copies of our thumbs, and since then, I’ve been really interested in using more silicone in my projects.