Creepy Guy by the Water Cooler

You know that creepy guy at work that is always hanging out by the water cooler? Well, I have been working from home quite a bit, and I have a water cooler. By default, that made me the creepy guy by the water cooler. Notice, I said “made” and not “makes”. I have the problem solved! Now there is the pictured creepster to take my place.

I also always wanted an aquarium. However, I didn’t want to worry about keeping up with it, figuring out what kinds of fish get along, deciding on salt water vs fresh water… you get the point. Now there is no need. I have a maintenance free aquarium!

All joking aside, it is always fun to play around with paint. What started as a face drawn with a Sharpie turned into various attempts with paint. If you want to play around with this, I have a few suggestions:

  • Roughen the surface: the aquarium jug images rubbed off fairly easily when transported for refill, so I lightly sanded next jug and it was much more durable.
  • Acrylic paint seems to work fine. I used the cheap acrylic paint from Wal-Mart.
  • If you are going to look through the jug at the painted images, be sure to think it out and paint in reverse order. For instance, paint the things that will be in the foreground before the things in the background.
  • On the fish tank, my wonderful wife had the idea of drawing the outline of everything in black and then filling in the color. I think it turned out great that way. You don’t even have to be careful to keep inside of the outlines because you won’t be able to see it!

This wasn’t the most intricate DIY project in the world, but I thought it was fun and added some color to the pantry. I can’t wait until I break one of these jugs so we can paint another!

If you try it, you can celebrate with some good old fashioned fire water when you finish!

Chicken Feeder and Precrastination

In some of my previous posts (Chicken Coop Automation 1 and Chicken Coop Automation Part 2 ), I mentioned preemptive laziness and how it relates to my chicken habit. After reading those posts, my wife coined a new word: precrastination. I liked the term, and I defined it to mean doing a task ahead of time to allow more free time in the future. It turns out precrastination is a real psychological term, and its real definition is performing a task before it is beneficial or optimal to do so. I just can’t win. I guess I need to procrastinate my precrastination to reach an optimal state of crastination.

Regardless, I think I crastinated this chicken feeder just right. The idea actually came from the internet of googles, but it works very well so I thought I’d pass it on.

Originally I had a traditional chicken feeder that fed the ground better than it fed the chickens. I would fill it up with a couple pounds of feed, and most of it would end up on the ground the next day. This didn’t align with my laissez faire chicken policy.

Some research provided some exotic and elaborate feeding systems that had been created: from electronic rationing systems to screw drive feeders with an auger. While I am a firm believer in over engineering and Rube Goldberg devices, I didn’t want to deal with the calibration, sensors, programming, and expense for this particular project. I did some more research and discovered that I could make a very simple feeder with some advanced engineering materials: hot glue, a bucket, and some PVC… pretty much all of the good stuff minus duct tape and zip ties.

The feeder is pretty basic and shouldn’t require much explanation.

  • Get bucket.
  • Get PVC elbow
  • Get hot glue gun
  • Cut hole in bucket
  • Trim one end of PVC elbow
  • Hot glue PVC elbow in hole

Right now, I have one of these made from a square bucket and two made from round buckets. Rather than putting feed in a couple pounds at a time and having it trampled into the ground, I fill up all three about once a month with 50# of pellet feed and have virtually no waste.

The only variable I’ve played with is the height of the internal mouth of the PVC above the floor of the bucket:

  • 1/2″: too low, and the feed does not feed very well
  • 1″: the feed feeds fairly freely
  • 1 1/2″: (.125 feet) feed feeds forth flawlessly forming a fully functional first-rate fowl feeder

I would also like to note the importance of using feed pellets rather than crumbles. Crumbles muck up the whole works.

The neat thing about this project is that more time is spent driving to the store and buying the components than actually building the feeder!

Hot Paint On a Cool Chair

After one of my frequent plunges to the depths of the the internet, I returned with a neat idea. It began with the plan to update an outdated couch that my friend (now wife) gave me from her church. While it ended with no changes to that couch, the plunge down that particular rabbit hole yielded a fun project:

  • Started searching for appropriate fabrics to reupholster the couch.
  • Found out that I can have custom fabric printed with my face on it!!!
  • I didn’t want to wait for custom fabric, so I researched the types of ink that they used.
  • Found out fabric paint exists.
  • Decided the fabric paint is too expensive for the size of project I wanted to do.
  • Found something called Textile Medium that changes acrylic paint into fabric paint.
  • Calculated the number of little acrylic paint containers needed for the size of my project and got frustrated.
  • Discovered Latex paint is acrylic paint.
  • Lost interest in the couch and decided I wanted a wing back chair with flames.
  • Purchased a wing back chair (my mom actually got it from Goodwill).
  • Purchased Latex Paint and Textile Medium.
  • “Commissioned” my mother and beautiful wife to paint the chair (my artistic talents are somewhat lacking).
  • Enjoyed my Flaming Chair!!!

I was kind of surprised with how well the chair turned out, so I want to quickly post some things I learned. It might help the next person with some project, but it will definitely help me remember when I will get back to that couch someday.

  1. I am not sure the Textile Medium is necessary. We used it on parts of the chair but not other parts. Next time, I probably won’t mess with it.
  2. The fabric should be lightly sanded with fine grit sandpaper before painting and between coats to improve pliability and adherence.
  3. Latex paint from the hardware store seems to work fine.
  4. Plan on multiple coats.
  5. Plan on it taking a LONG time to dry.
  6. Let it dry between coats as much as your patience will allow.
  7. The final surface of this project is not what I would call “plush” or “soft”. It is not advisable to scrape newborns against the painted fabric surface.
  8. Sanding at the end might offer a softer feel, but it also might dull the colors and require another thin coat to bring them back. Some experimentation is in order.
  9. Due to the non-plush texture of the final product, I am looking at alternate options for my Flaming Underwear project.

As always, please comment if you have any ideas or suggestions. I am always anxious to learn from the experience and ideas of others.

A Cool Trick for Working On AC Systems

Last week was Mechanic Week for me. I knew I was going to put a new clutch in my wife’s little car, but I was also provided the surprise opportunity to replace the locked up AC compressor on Red Truck. With about 200k miles, I am kind of proud that it made it this long.

Everything is really easy to get to and the truck has high mileage, so I decided to do it right: new compressor, flush everything, new dryer, new orifice tube, pull vacuum for an hour, etc. With everything out in the open, I figured I might as well. I was able to replace the compressor and dryer in about 30 minutes. Then I got the orifice tube.

If you are not familiar with AC systems, the orifice tube is a small nozzle that allows the freon to expand from liquid to gas. Cooled gaseous freon subsequently goes through a heat exchanger to cool the car. The orifice tube is a small 1-piece device that simply slides into the high side freon tube before the evaporator. The orifice tube has an integral tang at the top for easy removal. Pull on the integral tang, and the whole device slides out of the freon tube. It would make sense to place that tang near the opening of said freon tube. Ford thought otherwise (shown to the right).

It turns out that needle nose pliers can be modified to reach the tang of the orifice tube. Modified needle nose pliers are very good for un-integral-ing the integral tang from the 1-piece orifice tube, leaving nothing to grab. Luckily, Al Gore loaned me his internet so that I could find a solution.

This seems to be a fairly common problem. I found that the “old guys” get a long wood screw, wrap tape around it as a guide, screw it into the top of the orifice tube, and yank on it with unmodified pliers and all of their might. Despite Ford’s best efforts, I had it out in minutes. Does this mean I am now an “old guy”?

While I am talking about Ford A/C systems, I would like to complain about something else they did. Some engineer somewhere decided to use a rubber ball instead of a shrader valve on their high side service ports. It might have saved a penny at some point, but I’ve never met one that didn’t leak. I’ve also met very few high side couplings that will reliably press the rubber ball enough to get a consistent reading. Why, Ford? Why?

Pulling all of this together, I wish someone would take Ford’s high side service port design and shove it up the engineer’s orifice tube. Also, try using a wood screw and some tape to remove your orifice tube if you (or it) are in a bind.

 

Needless to say, the gallant steed is all back together and on the road. Hopefully the AC system in Red Truck will keep together for another 200k miles.

Laziness or Chicken Coop Automation Part 2: Door Control Algorithm

Don’t understand the title? Read “It’s Hard Work Being Lazy or Chicken Coop Automation Part 1: Door Hardware” to elucidate the title and offer some background.

How hard can it be to control a chicken coop door with a microcontroller and DC motor? Just send a voltage to the door’s motive source to open it and reverse the voltage to close it. Right? You’d think so before delving in, but things quickly get more complex.

To explain, let’s use an example to show how the complexity grows :

  • You have a DC motor you want to use for control of a chicken coop door. you also have a microcontroller with plenty of output pins, each of which can be programmed to 5 volts or ground. Great. Wire each of the two wires from the motor to an output pin. Program one pint to be +5 V, the other to be ground, and the motor rotates. Reverse the +5 V and the ground, and the motor reverses. Now put a load on the motor. The motor quits rotating and and the microcontroller releases its smoke. It couldn’t supply enough current.
  • Put the smoke back into the microcontroller and get a proper power supply. Hook it up to the motor, put a load on the motor, power it up, and the motor rotates. Unfortunately, you are only able to rotate the motor one way. You need a way to reverse the motor polarity.
  • Now get an H-Bridge or series of relays to revere the polarity to the motor. Wire it up, program the microcontroller to control the H-Bridge or relays, and you have a reversing DC motor.
  • You hook everything up to automate the chicken coop, but now the microcontroller needs to know when the door reaches the end of its travel. You need sensors. Limit switches? Eddy current sensors? Reed switches and magnets?
  • Limit switches installed. Now, how does the microcontroller know when to open or close the door? Light Sensor? Timer? If using a timer, what about the changes in sunrise and sunset?
  • Do you need any manual external controls to give commands to the microcontroller? Like buttons?

Once you get all of that sorted, you also need to think about the algorithm the microcontroller will use to make its decisions. Most of the things listed above relate to specific motive sources and configurations, so I will not go into details. Each of my coops are set up totally differently, and what applies to one does not apply to the other. The control algorithm is common between the two, and I will elaborate on that.

Algorithm Considerations:

I wanted a couple features integrated into the control methodology:

  1. External inputs to adjust opening modes (do not open in the morning, open now, close now, etc)
  2. Decisions can be made mid movement (you can command the door to close while it is opening or vice versa)
  3. Controlled by a timer
  4. Account for changes of season
  5. Account for daylight savings

The first feature was to override the automatic controls. For instance: the yard crew is coming the next day and I want the chickens locked in their desolate little cells.

The second feature was mainly needed due to the speed of the actuator. One of the doors moves very v-e-r-y   s–l–o–w–l–y, and I didn’t want to wait for the door to move all the way before making another command. It would be like a windows update… me standing there helplessly slack jawed and gawking at something with no apparent progress. I would like to mention that even moving at a snails pace, the coop managed to capture the pictured cat. I came home one night heard one of the chickens meowing, and found the cat in there.

As far is the third feature goes, I thought about using a light sensor versus a timer. I opted for the timer because I didn’t know how well a light sensor would handle inclement weather and eclipses… I didn’t want a hen squished in the door when she was trying to rush out with her pinhole projector.

I wanted the fourth feature to account for the changes in sunrise and sunset between seasons.

I intentionally did not include the fifth feature because daylight savings is an annoyance, the microcontroller doesn’t know what it is, it stresses out the chickens, and I don’t think it should exist. In fact, it didn’t enter into consideration. I made reference to daylight savings to tell a quick story. I once knew of a man convinced daylight savings causes it to cool in the winter because it takes an hour of afternoon sun away. “That hour of sunlight is just added to the morning,” one might protest. He had already thought about that. “The hour is taken from the hot part of the day and added to the cool part of the day.” Sounds legit.

Control Algorithm: State Machine

The initial consideration for controlling the given example might be to simply apply voltage to the DC motor and wait for the door to trigger the limit switch at the end of its travel. However, what if a particularly stupid chicken is in the way and the door cannot finish its travel? Do you keep applying power and burn up the motor? What if the motor overheats, catches fire, and the other chickens attempt to save the burning, squished chicken? Do you want to risk losing the whole flock? I think not.

Taking all of the mentioned features into account, the algorithm I used was that of a state machine.

This state machine essentially:

  • Reads all inputs (user input, current time vs sunrise/sunset, reached limit of travel, timed out)
  • Interprets inputs to determine the desired state
  • Looks at the current state(door position or door movement)
  • Commands new state (or leaves it alone)
  • Repeats

Rather than telling the motor to do something and waiting for it to happen, the microcontroller continually polls its inputs, makes a decision, makes a command based on the current state, and goes back to polling its inputs. It does not make a command and lock everything up while it waits for verification. It goes back to work looking for inputs and making decisions. Practically, the processor can take new input,  process new information, make commands, and squish a chicken at the same time.

Calculating Sunrise and Sunset:

One of the “inputs” mentioned above is not what one might think of as an input. The processor calculates sunrise and sunset times on a daily basis and uses them to decide when to open and close the chicken squisher. The internet machine told me that sunrise and sunset times roughly follow a sine wave. Therefore, the algorithm estimates sunrise and sunset using a sine wave with periods, amplitudes, and offsets to match the peaks at the summer and winter solstices. I am including the snippet code so nobody else has to look for it. I hope that my comments are clear to others.

If you use this, you will have to match the times to your particular latitude, longitude, and time zone. If it is not clear, feel free to comment and I can provide more info.