Planet Rockalypse Rotating Header Image

That darn Murphy…

This week, everything that could go wrong for me, did.
I got the transistor and diode I needed to build the Frankenshteen car, but I had the wrong resistor. I guess that’s not that big of a deal.

I soldered together my DC jack and my battery holder, and I’m pretty sure it’s wired up correctly. However, it’s not working. I can’t run around after the car with my laptop, so somehow I have to get that battery to work. But it doesn’t work yet.

The wires coming from the motors on my R/C car won’t reach my bread board, but I forgot all about that until I was ready to plug in the motors. By then I was far away from all the tools I needed to fix that problem.

The other thing Kathryn and I were supposed to do this week was turn our C code for the car into occam-pi. It’s been almost a year since I’ve programmed in occam-pi, so I wanted to refresh my memory. I tried to download the Plumbing for the Arduino book, and it says it cannot be found. Great.

Then, while walking to class today with my project stuff in hand, I was caught in a torrential downpour.  Of course, my Freeduino, which is connected by a bunch of wires to my breadboard and taped to a piece of cardboard, fell out of my box and into a puddle.

Hopefully this week goes a little smoother, and I get something accompished fully.

Temperature Sensor Calibration

One thing I did this week was test our LM335 temperature sensor in an environment where we knew the temperature. That way we could see how accurate the LM335 is.
First, I need to get my circuit to work correctly. After talking with the rest of the group, I realized that I wasn’t using a resistor, and I needed to be. Plus I didn’t realize the + and – in an electronic diagram were important. Basically I didn’t know anything about electronics and physics. So, my circuit went from this:

to this:

After finding a 2k resistor and actually using it in my circuit, I was getting readings around 75 degrees fahrenheit for my room, which is basically correct. To find out how accurate the LM335 is, I tested the temperature of a glass of ice water. I soldered extra wire onto the end of the LM335 prongs so I could reach the glass of water with the LM335 and still have it plugged into the bread board. I crushed up the ice in the water to try to increase the surface area of the ice. I stirred the ice i the water for a little while, then made a little puddle of water in the middle of the glass around the ice. This is where I tested the temperature.

The temperature was up and down, but the average was about 34 degrees fahrenheit. That’s what I would have expected for this puddle of water. With this, I can conclude that the LM335 is pretty accurate at the temperatures we are working with.

I also went to the store and bought the same R/C car that Kathryn has. I’ve taken all the frills off and am left with the bare bones R/C car. I’m still missing some of the bits I’m going to need to put together the same Frankenshteen car that she put together, but I hope to have the parts soon so I can get my car working as Kathryn’s is working.

Photo-resistors, Buttons, and Transistors!

This week I studied the RC car robot and the parts that make it work. First, I built another RC robot so that pictures could be taken at each step, these pictures can be found in our repository or a quick and basic picture summary can be found here. This second robot only had one transistor and I did not hook the turning wheels to anything.

Because this robot didn’t do much, I decided to attach a photo-resistor to it. The photo-resistor was hooked up and programmed so that in bright light, the robot moved faster, and in low light, it moved slowly. As I experimented shining a flashlight on the robot, I noticed that once the light was too low, the robot couldn’t move while on carpet. The breadboard, Arduino, cardboard, and 9V battery simply made for too heavy a platform. The force of friction between the wheels of the robot and the surface it is on is given by F = Coefficient of friction between wheel and carpet(Mu) * mass(m) * acceleration due to gravity(g). The coefficient of friction between the wheel and a hard surface such as wood flooring is different than between wheel and carpet, so the robot could move more easily on wood. To move, the motor must generate a torque greater than this force of friction * the radius of the wheels. Thus, we cannot have these RC robots move very slowly without the risk of it not being able to move on a certain material. I think we’ll need slower moving, higher torque motors.

Next I decided to add push buttons to be able to turn the motor on and off rather than having to unplug the 9V from the Arduino. One button turns the motor on and the other turns it off. I’m not sure how to wire and program a single button to do this.
Finally I wanted to learn more about transistors. Bipolar transistors come in two types: PNP –Positive-Negative-Positive and NPN – Negative-Positive-Negative. The ones I have been using are all NPN. There are three pins on a transistor which match up to these negative and positive charges. The Base(Negative. Receiving from Arduino) and the Collector(Positive) and Emitter(Negative) pins. Transistors can act like amplifiers and switches for high power devices.

When using it like a switch, a small base current flows when the voltage between Base and Emitter is higher than 0.7 V (the voltage necessary for silicon devices) making Base more positive than Emitter. Once the voltage is high enough, a Collector current can flow, turning the device on. When using this for relays, solenoids, or motors, a diode is put in place to protect the transistor. These items are inductive loads and thus use magnetic fields, which after collapsing when voltage is switched OFF by the transistor, can cause kickback voltage. A diode only allows voltage to flow in one direction, so by placing it in the circuit as I have done, no voltage can travel back to the transistor. Transistors used as switches are reliable and inexpensive compared to using mechanical relays. Using a transistor like an amplifier and the Hfe value will tell you the DC current gain.

*Edit: I also downloaded Fritzing and drew a circuit diagram of my light sensitive, push button RC car robot.

RC Robot

This week I wanted to put something fun together, so I found an RC car and took it apart. Once I had it apart, I made a list of what I would need to have the arduino control the toy. First, I needed a power supply, thus I rigged together a 9V battery hook-up to supply the arduino with power. Next, I looked at the motors of the toy. I found that this particular toy had a motor for driving the back wheels, and a motor for turning the front wheels. Having only one little transistor, a PN2222A, I decided to wire up the car with both motors going to one transistor. This turned out to be a problem because I could not control the motors separately, and the transistor was just not to the right specifications to handle the motors.

Instead, I acquired a few different transistors and resistors to play with. I decided to use a TIP31 first. I used this transistor to power both motors, this is the first robot seen in the video. After deciding to control the motors separately, I used a TIP120 to control the steering. This is the second robot seen in the video, which can go straight, turn, then go straight again rather than continuously turning.

The main problem I encountered was shown using Robot 1.0 in the video. Despite moving quickly, the little motors just didn’t have enough power to let the robot climb a small bump in a carpet. While the robot doesn’t have any sensors, putting it together and programming its movements was fun and educational. Now if only I could get it to go backwards and turn the other direction…

Temperature Change Experiment

Discover Simple, Private Sharing at Drop.io

Last week I ventured to my high school to use a gizmo called the LoggerPro by Vernier. I wanted to see what kind of temperature change I could detect and how close to the candle I had to be before I could get a reading.

I quickly found out that there is no way to detect a temperature change when you are next to the candle. Heat rises. I had to be above the candle or in the candle from the side before I could detect any temperature change. This is crucial information if we are going to use a temperature sensor to find the candle. Maybe there are better things out there to use…

Graphs of experiment

Temperature sensors are not heat sinks

This week has been about learning the different types of temperature/light sensors available to us and the disadvantages and advantages of each type. As Molly experimented with one sensor, I set about wiring the circuit for the LM335A temperature sensor to the Arduino. However, I quickly learned that the Sparkfun Arduino book was written with a different temperature sensor in mind. They appear to have just replaced the name of another sensor (TMP36) with the the LM335A without changing the circuit. The LM335A and TMP36 are very different, the TMP36 not needing a resistor while the LM335A requires one, and the three pins do different things for each sensor. I researched the correct circuit configuration, but the numbers were always very off – freezing or boiling – therefore, it appears I was led into breaking the tiny $1.50 sensor. Live and learn, I suppose.

Next I was advised into researching thermocouples. These detect temperature differences using different metals to detect voltage. These are inexpensive and I was given an invitation to make one with a professor, but they are much too local for our needs. They wouldn’t be able to detect a candle until it was nearly to it, so they’re not practical.

I found a very popular sensor called the UVTron Flame Sesnor. It uses UV detection to find fires, even small ones like candles! It’s much more expensive than other sensors we’ve looked into, but it appears to be an excellent sensor for what we need. It also wouldn’t hurt to have more than one temperature/light sensor, as we want to cover different variables. Infrared sensors are usually expensive and things in the environment might interfere with them, but these little sensors can be bought in bulk cheaply, and if mounted all around the robot, can provide sensing detection at all angles.

Next, I will be working with Molly to try to get her LM335A working (without breaking it). I also found a light sensor made by the same company as the flame detector in Centenary’s physics lab, and may try to experiment with it, but I’m not sure if it’s sensitive enough. I’d also like to dissect some old childhood RC cars this week to study different wheel mounting techniques.

Wonderful World of Sensors

I’ve been looking up information about different types of sensors this week. I focused on sensors I could find that are compatible for the Arduino.

Before we purchase any type of temperature sensor, I think we need to do a little experimentation in the physics department. In high school, the physics department had this really cool gizmo that you could plug all kinds of sensors into and it would record information onto the computer. I’m hoping one of our colleges has such a thing. It says in the 2010 TCHFFRC rules that some robots can detect which room the candle is in just by being in the doorway of the room. If we can find a sensor that is sensitive enough to detect a temperature change in a competition size room just by being in the doorway, that would save a lot of time in the competition. However, it still needs to be within our budget. I found a temperature sensor, I just don’t know if it is sensitive enough.  Some experiments need to be done to determine whether this is possible within our budget or not.

I also found a sensor for sale that can detect an object at 5mm. It also can detect the difference between black (low reflective conditions) and white (high reflective conditions). This would be great, since the halls between the rooms in the competition space are black and the floors under the doorways are white.

This week, I would like to find out if I can use experiment with temperature change in the physics department. Hopefully the 2011 official rules will be released, so we can be certain we are planning for the right thing.

Motors are finicky

Last week I began researching the different types of motors available. I was recommended to look into stepper motors. Stepper motors use magnets to ‘step’ through a rotation at some number of degrees. Therefore, it seems, stepper motors can be positioned well, but if you needed very accurate position, you could have problems. (The step degree could be more than the degree of rotation needed).

The other types of devices we could use to drive the wheels are DC motors and servos. I have no researched these as well, but I have learned that servos are mostly used for movement though only 180°, but are modified to go through 360°.

The small motor which came with the Sparkfun Arduino had very fine wire attached to it, rather than the sturdier wire of the other components. While trying to complete the motor circuit, the red wire snapped off. In my first attempt at using a soldering iron, it was decided it would be best to solder better wire to the motor rather than use the old wire. Once the motor was fixed, I began coding for it using Plumbing, and it works!

The rules for the fire fighting challenge should be posted by Monday. Once we know the exact rules, selecting our components may be easier.

computers and college

This past year, I’ve been serving on a task force at my institution. Our charge is to investigate the intersection of technology and learning on campus, make recommendations regarding where we might focus our energy in the next five years, and (perhaps most importantly) recommend political structures that might then provide guidance and insight on an ongoing basis.

This post at CunchGear struck a chord. The author’s recommendations for new college students are (simplifying):

  1. Don’t buy a new laptop. Buy a used one.
  2. Install free software on it.
  3. If you want to play fancy games, use someone else’s fancy game machine.

Scott Merrill, the author, even addresses two major constituencies: engineering/computing-type students and liberal arts (literature, history, etc.) students:

  • [ COMPUTING ]
    No matter what you buy, you’ll probably have better facilities on campus. And networks are everywhere: remote into powerful machines.
  • [ LIBERAL ARTS ]
    You’re just typing papers and checking Facebook. You don’t need an expensive computer.

And do you know what? I think he’s right.

Sadly, institutions are slow to change. I would love to push for the following:

  • Install a free operating system on all public machines.
  • Offer a netbook/laptop programme that provides low-cost, robust laptops running open software. System76, for example, provides netbooks and laptops ready-to-go with Ubuntu. I’d love to have an EduBook to trial – my suspicion is that this little laptop would cut it for many students.
  • Establish a grassroots initiative to provide training and support for students. On my campus, we’re starting a learning/living community initiative, and I could see that new community structure playing a role in this way.

I might be able to go further in my recommendations, but that’s what comes to mind at the moment.

This re-statement/reflection on Scott’s piece was inspired by a post over at TeleRead. Chris at TeleRead closes with the following statement:

Perhaps the emphasis on college students having the latest and greatest technology should be reconsidered, at least from the perspective of giving them them the best ability to focus on the important thing—their education.

Now, making a bit of a 180º turn from what I was just saying, I’ll claim that this is a naive, sweeping statement that fails to take into account any of the realities or pressures I think many faculty feel in higher ed: students expect new media. Their world is made up of interaction and video, and we’re still giving them chalkboards. So when the sweeping claim is made that they should focus “on their education” (at the same time as you’re calling for new modes of interaction, collaboration, and problem solving), please consider what tools we’re currently working with, where the technology is headed, and how we might be leveraging that technology to improve our students’ learning experience. No one I know is considering technology for technology’s sake… but we’re pretty sure that there’s some really amazing learning we could be supporting… if we could just get the tools in the students’ hands.

The fact is, some of these devices do enable real-time, community-driven collaboration (many-to-many interactions) that simply were not possible a few years ago. Yes, I could photocopy a student’s paper and hand it out to everyone… but doing that with 20, 3-page papers means 60 x 60 pages (roughly 3600 pages). Using tools like iAnnotate allow students to comment on and mark up each-other’s papers instantly and digitally. And, perhaps more importantly, tools like that allow me to handle my digital workflow more easily. (I do not, at this time, own an iPad, but I’m reasonably confident that a lightweight tool designed for media creation, annotation, and consumption would be a boon on a day-to-day basis. Netbooks simply don’t cut it (for many reasons), and my 13″ MacBook is too big and has too short a battery to be practical.)

In my mind, we’re in a Catch-22 situation in higher ed: we can require our students buy tools that let them engage in distributed, real-time media creation and collaboration surrounding digital artifacts… but that implies that our pedagogic approach is going to change to support their purchase of those tools. Down that road lies a commitment to change when many think that we’re doing fine as it is. Or, we could adapt our pedagogy (which is fine as it is), but our students won’t have the tools to engage the way we want them to. How do you drive change in a system that is (at best) mildly elastic, but ultimately static and resistant to change?

I’m teaching a first-year seminar this year titled Creativity and Leadership. I’ll put the question to them. Perhaps they’ll come up with something.

First Steps

Summer is over, so it’s time to get to work! Of course, my summer wasn’t spent being lazy all the time. With Dr. Jadud’s advice, Dr. Goadrich obtained an Arduino – open source hardware –  in order for me begin learning how to wire circuits and code programs for it. I began working with the examples given by the kit. The Arduino code is written in C, thus making some the simple circuits of multiple LEDs require many lines of code.

To combat this problem, I began learning to program the Arduino using a library of code written in occam-pi called Plumbing. This allowed programs trying to handle multiple things at the same time to have only a few lines of code.

As the summer ended, I began trying to wire my own circuits and branching off to write my own programs with Plumbing. I am having trouble getting the motor in my circuit to turn on, and that is what I will continue working on this week.