Leilani | How to Make

Creative

Final Project

There is no hand bag in the market designed for women that will protect the notebook from wear, weather, and liquids while remaining a fashionable handbag. This bag will be functional enough to be carried to work and fashionable enough to be taken straight from work to a dinner out.

Original design original drawing

Innovation in purse technology is focused on electronic power and charging and not safety and usability. There is no hand bag in the market designed for women that will protect precious belongings from liquid damage. The goal of this project is three-fold:

  1. Water and liquid damage is the #1 cause of computer damage, yet no purses on the market protect electronics inside the bag.
  2. Most high-functioning women carry multiple bags to work when they should only need one.
  3. Modern stylish purses have no organization.

Week 1 - Design

For my final project, I want to work on a "smart" purse that can determine when liquids are present to prevent electronic damage. I want to design the purse similar to the style of a Longchamp le pliage bag.

Design Idea

I also thought about how to change integrate the bottom of the bag, and I drew up a preliminary design in OpenScad.

Design Idea

Week 2 - Research

I started doing some research on the state of the art in liquid sensing for materials. Zack found some nice papers on this.

Week 3 - More Research (Design)

Unfortunately, most of this week I have been out of town at DSAA (IEEE Conference on Data Science and Advanced Analytics. Luckily for me, the conference is in Italy, so I have focused on some style and bag-designing research. (I am in the fashion capital of the world.)

I've been struggling to find good software to design my bag. Right now, I have been using SketchUp, but I have had trouble using the 3D warehouse. In particular, I cannot get the objects (zippers, handles) to attatch to my bag model as I would like them too.

After doing a bit of research, I found that many fashion designers like optitex. However, it seems like it may cost a lot of money. It's also very targetted to designers that need to know about the "fall" and "feel" of fabric. This is important to my design, but not essential.

Week 4 - Materials

This week I've been trying to see what would be the best types of materials to use. I really want to use the types of materials that a Longchamp bag is made up of (nylon and a water proof layer). But I also wanted to see if there would be a conductive material that I could weave inside to see if the bag is leaking or not.

Week 5 - Printing Bag Straps

Unfortunately, this week I have been very busy with the "Make something" big assignment, but I want to 3D print some bag straps later this week. I'm thinking of ways to use small pieces and chain them togehter into a sturdy strap.

One thing I have been looking at is different ways to 3D print fabrics.

Week 6 - Embedded Programming

Unfortunately, this week I have been very busy with the embedde programming asssignment , but I've been thinking of ways that I could use my board (and the light, to alert a person when there is water damage in their bag.

Week 7 - Sensors and bag molds

I was hoping that I'd be able use the molding and casting a ssignment for my project, but that wasn't able to happen with the small machinable wax.

I had started to think about ways to incorporate lights into the bag for alerting the bag owner that water was leaking. I have been brainstorming ways to mold the bag in a translucent material, so that lights could show through, but individual items in the bag would not be identifiable.

Another development is that I bought a pair of water and humidity sensors that I will be using for my input device week. Updates to come!

sensors

Week 8 - Sensors and fabrics

I've been struggling to find some 3D printed materials to incorporate into the bag. Although I did find a few interesting candidates.

I've also found an old bag that I can tear apart and play with for my first prototype! I've already ripped up some of the waterproof lining inside to start testing the water sensor.

dummy bag bottom

Week 9 - Connecting input and output

Since I had some trouble using an existing water/humidity sensor, I spent most of this week making my own water sensor. The idea comes from a couple papers that Zach sent me early on. The key idea here is to sew two wires into the bottom of the bag, very close together, but not touching. One wire is attached to high, and the other wire is attached to low. If water or another liquid is spilled and reaches the bottom of the bag, then the liquid connects the circuit and the higher the current the bigger the spill.

idea wires

I also added some thicker wires to connect to the screw terminal. I also had to design a new board for this purpose.

idea wires

One frustrating thing was that I had to sand the edges of the thin wire for connectivity. I unfortunately realized later that I will probably have to do this for all of the thin wire if I end up sewing it into the bag. Although I haven't thoroughly tested it and sewn in the wires, the hand-crafted water sensor board is complete!

wires

Week 11 - Bag strap design

After being in charge of a lot of the 3D printing for machine week, I have started designing the 3D components for my bag.

Week 12 - Crunch Time

Now that we only have a few weeks left in the course, I will start documenting TODOs and indicate progress

  • Get the "conductive thread" input water sensor to work and find a suitable fabric for integrating
  • Use the servo motor to turn just slightly when water is detected by the input board
  • Laser cut moving part of bag that is connected to the motor
  • 3D print bag handles
  • Laser cut and sew together outside bag

Back to the Input Board

I was having a lot of trouble getting the input board working, so I decided this was the first important step to making progress in the bag

  • Board is plugged in with a green light (HORRAY!)
  • Starting with hello world example (for sanity)

In earlier designs of the input board, I didn't have reset connected on together. This caused the board to not be connected and not be able to work. This was difficult for me to figure out, because I had not realized that reset needed to be connected to RESET (not just another pin on the ATTiny). In order to make sure the board could function as expected, I started by running Neil's hello-world.

make -f hello.ftdi.44.echo.c.make
sudo make -f hello.ftdi.44.echo.c.make program-avrisp2-fuses
sudo make -f hello.ftdi.echo.c.make program-avrisp2
ptyhon term.py /dev/ttyUSB0 115200
  • That runs the hello world just fine. Step 2, let's try to turn on the light.
  • led is connected to pin 5 – PB2
  • Let's just try to turn on the light…
while(1) {
 set(PORTB, (1 << PB2));
}

I was really happy that this worked. The light is on!

Input light is on!  Finally!
make -f light-on.make
sudo make -f light-on.make program-avrisp2

Now, came the input thing to figure out. How do I figure out the information (voltage or current) from the two connected wires? Here is what I know:

  • Pin 10 is connected to 5V
    • High value
    • PA3
    • Also seems to be ADC3
  • Pin 11 is connected to Ground
    • Low value
    • PA2
    • Also seems to be ADC2
  • How do I read in the values of these wires?
  • What does it mean if they are bridged
  • PA3 is high
  • PA2 is low
  • Spilled liquid connects the circuit, and the higher the current, the bigger the spill

I knew that I wanted to use ADC for something, but I didn't know how to use it. I found this link how to read a single pin, but that didn't really help. I found the following code snippet, but it didn't do anything useful for me.

DDRA = 0b00000000; //PORTA set as input?
PORTA = 111111100; //internal pullups on except switches.

I did find some of Neil's code which was very helpful! Ok, what do we know about this.

  • So what really is ADCSRA?
  • I see that Neil has a readADC!
  • ADC has it's own clock. WOMP
  • ADC read stat is a macro
  • Write to start a conversation, read to see if one is happening.
    • ADSC : bit 6 of ADCSRA
    • Moving to bit zero, and bit-wise anding with bit 0 set.
    • If not zero, conversion in progress
    • If zero, conversion not in progress
  • readADCeight - Do a conversion and grab the 8 most significant bits.
    • highByte is where the return value is placed
  • ADC Mux
    • 0 through 5 are important
picocom /dev/ttyUSB0 -b 115200
  • Check the low value
  • Prints, otherwise not.
  • [ ] Read in information from serial, read the number and disply the number
  • [ ] See how this setup responds to water.
  • I have a touch sensor!
>>> ser.read(100)
'@\x00@\x00@\x00\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@\x00@'
>>> ser.read(100)
'\x00@\x00@\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
  • Note that we get \x00@ when the wires are touching, and \x00 when they are not
  • It remains to think about the best way to parse this serial code.

I was also able to send that it could communicate with my output board with the following commands.avrdude -p t44 -c avrisp2

Boards and Wires 2.0

I designed a motor board with my water sensor that can detect if water is spilled, and then move the motor.

bag bottom Fabric for the bottom

The water sensor wires also need to be very thin. I had been testing prototypes with the thicker wire, but the thin wire works much better.

bag bottom Fabric for the bottom

Another important thing to test was how well the wires were connected with water. At first I wanted to use very thin wire, but it was tough to sand wire (since it had a non-conductive outer layer). The thicker wire looked just fine too.

Testing different types of connectivity.

Remaining TODOs

  • [x] Read in the wire values for the input. How to test this in a meaningful way with water?
  • [ ] 3D Print bag straps
  • [ ] Integrate input with motor code

Organizing Myself

The next few sections are written in terms of the tasks that had to be done, they were namely:

  • Laser Cutting - fabric pieces for the bag (outside of the bag+ straps), base of the bag (firm accrylic)
  • Textiles - mostly covered by laser cutting, but also sewing pieces together
  • 3D printing carriages for different electronics
  • Programming

3D Printing

Laser Cutting

Laser cutting ended up being one of the major components of my project. I knew that it would be difficult, but I wanted to laser cut the individual parts for to have the bag be sewed in. This took a lot of designing, testing and redesigning. In particular, I wanted to be able to put the 3D printed motor "home" on the bottom of the booard.

Testing design pieces.

Textiles

One of the biggest components of my bag that I haven't been able to spend much time on is what the outside of the bag will look like. Since I already have a dummy bag, and the bottom of the bag which I machine knit.

bag bottom Fabric for the bottom

I thought a new reasonable thing would be to cut out a design in cotton. Unfortunately, we did not see a setting for cotton on the laser cutter. There is a settting for felt, which would be nice for a decorative component. I was thinking of reusing the voronoi design that I used in machine-controlled cutting, but on felt. I hope to achieve something like this: cut felt

Fabrics for the laser cutter

If time permitted, I wanted to add a pattern to my bag. Since I really enjoyed the Voronoi design from Make Something Big Week, I decided to also add the similar pattern to the outside of my bag.

Fabrics for the laser cutter

The OpenScad final I used, with [mostly] parametric design is here.

Putting It All Together

One of the tough parts with the bag is that once it's all sewn together, you can't really do anything else. So I tried to set in the construction of the bag into pieces.

  • The servo needs a holder to attach it to the base board
  • There needs to be a bottom mesh that holds everything together
  • The bag needs to attach to the base.

The first thing I decided to do was to 3D print a holder for the motor. This involved a design in OpenScad, and a new laser cutting of the base board.

The position where the motor holder should be.

A Big Set Back

When I finally got the motor holder printed, to the exact specifications that I wanted, I had a little trouble getting the motor into holder. It was a VERY tight fit. Then, as I was gently pulling the motor wire through the side, it disconnected. This would have been a small mistake, as the EECS section has many spare servo motors, but, it was a different brand, with slightly different specifications. This meant that I had to reprint the holder, and re-attach many of the servo components. Most importantly, I had to change the holes on the moving vinyl cut piece, since the motor attachments were not the same size. You can see that I had to use the other side of the vinyl cut portion.

Motor broke in the holder Changed to match the specs of the motor

Another Big Set Back

I was finally starting to get the hang of thing (working with serial), when I got an RC=-1 error. Actually, this was one of the few times I had gotten this error in the class. I guess I had kind of deserved it; after all, I did end up attaching an FTDI jumper cable to be able to check the serail output. I tried to check all the problems that were outlined on the website, but I just decided to design and print two new boards. I decided that one would be my safe board, just a button with a flashing light in case anything went wrong (cycle 1, in Neil speak. And the other would be my more experimental board. The right below photo is a picture of my schema for the board with the attached FTDI.

This ended up getting me an error. This ended up getting me an error.

Glue is Your Friend

Thanks to glue, I was able to attach many parts of my project together. Most importantly, this consisted of gluing the motor home together, to the base board, and also gluing the fabrics to the base board. I also ended up gluing together a lot of the fabrics; sewing by hand was going to take a lot of time.

An important design decision that I made early on was to glue a mesh to the bottom of the Clamping down parts. Gluing the bag straps Mesh with a protectant

Masterpiece Summary

What Does It Do?

Who's Done It Beforehand?

What Did I Design?

What materials and components were used?

Where did they come from?

How much did they cost?

What parts and systems were made?

What processes were used?

A huge shout-out to org-mode, and Dylan on helping me get started with it!

What questions were answered?

How was it evaluated?

What are the implications?