Homemade Hardware: Final BOM

I’m hoping to combine my final for Homemade Hardware with my final for Energy. James and I are constructing a solar-powered rover that seeks light. My work on the rover has focused on the use of a 555-timing circuit. The circuit is based on this tutorial: 555 Oscillator Tutorial.

The schematic I’m interested in can be seen below:



I’ve breadboarded this particular circuit a million times, but I would be very interested in having an Eagle design of this circuit because I think it can be useful in many applications beyond our solar rover. Essentially, it would allow me to power any load for a given amount of time (and then be off for a given about of time, as per my RC duty cycle).

I would like to keep R1, R2, and C1 modular, so I would likely put in header pins in place of those components.

BOM:

  • 555 Timer IC
  • 2 diodes
  • 2 resistors (or 2-prong headers)
  • 2 capacitors (or 2-prong headers)
#homemade_hardware 


Soft Robotics: Experiments with Silicone

This week, we were supposed to cast a mold to create a silicone bibenda actuator. This assignment was definitely challenging for me, as I am not the best fabricator. I’ve included some of my process photos below, along with some notes on what went wrong.

I’m hoping to do a second cast early tomorrow morning to see if I can produced a better second version, because this one was bit of a disaster.

I 3D-printed the inner mold, but foolishly forgot to take process photos.

For the outer mold, I actually found a piece of PVC pipe that was the correct size, but as I had never used a pipecutter before, I decided to cut another piece anyhow.



Proof!:



For a while, I unable to glue the out mold together because I could not open the PVC primer or cement. I had to enlist the help of a friend with a wrench(?).



This is how the outer mold came together:



Next, I cut some stretch fabric to fit it over the inner mold, as per the instructions. There are no words:



I then began to mix part A and B. I realized I was moving too slowly too late. The first degassing can be seen below:



This shows the second degassing. It’s a bit too difficult to see in the picture, but there were way too many air bubbles, and because of how think the mixture had gotten, a lot of it was spilling over the edges. That seemed to be my biggest error: I had allowed the mixture to get too thick by the time I was pouring it into the mold. This meant that 1) it was really difficult to poor into the small mold at all, and 2) I introduced many air bubbles trying to get the mixture inside.



Bit of a mess, but here is the setup at rest:



It did not come out very well. There are VERY large air bubbles near the gaps in the stretch fabric.



If there’s time I’d love to redo this one. I know my error: I took way too long to coat the inner mold, degas, and pour. I was also reading and rereading the instructions to make sure I was doing things exactly right (even though I read the instructions prior to starting, I was a bit paranoid about missing something). Ironically, that did me in.



#soft_robotics 


Soft Robotics: Materials ConneXion

Our field trip to the Materials ConneXion library was really interesting. I found a few items particularly exciting:

1) Veilshield (link)



Veilshield is a mesh conductive fabric with stated applications for electromagnetic interference and field shielding. I’m very curious to understand how these fabrics maybe be layed with clothing, and how to test its shielding capabilities. In previous wearable projects that involved a capacitive touch sensing over conductive fabric, I ran into some EMF interference issues. I’m curious how layering this fabric with non-conductive layers would better my previous designs. The fabric itself is quite flexible, but not very stretchy. The manufacturer is apt named Less EMF Inc, and the material can be bought from directly from them.

2) Textile-based Conductors (link)

This is a conductive silver-ink that can be inkjet-printed onto fabric to create highly conductive traces. The limitations of this product seems only to be the imagination of the designer. Applications noted by the manufacturer include: ECG monitoring and other medical/fitness sensing, interconnects, proximity sensors, and capacitive touch sensors. The manufacturer is Liquid X Printed Metals, and the ink can be purchased directly from them.



I’m most interesting in creating subtly “smart” wearables, and these items fit that bill.

#soft_robotics 


Homemade Hardware: Marquee Letter

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.

#homemade_hardware 


Soft Robotics: Bio-Inspiration

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
#soft_robotics