Tuesday, October 30, 2012

"Secret Knock" Detecting Door Lock

     Many students at college have a really hard time keeping up with their keys or even locking there keys in their rooms. A good solution to this would be the "secret knock" detecting door lock. This device would allow the user to program a secret sequence of knocks for the Arduino to listen for. When the correct sequence of knocks is obtained, the Arudino will then send power to a servo attached to a door lock, thus unlocking the door. The main purpose of this would be just a cool project that college students could use instead of keys.
This is a sample of a "secret knock" detecting door lock.

     This project only requires a handful of hardware components. These components include LED's, a Piezo element, a push button, a servo, and of course, a door and lock.

Interactive Object - Willy Wonka Vending Machine

     The interactive object I decided to review was the Willy Wonka Vending Machine. This machine is located inside the food court and Mount Berry Square Mall. Many people use this machine each day to buy the candy that they desire. The machine offers a selection between eight different types of candy. The majority of people who use it are either parents or small children. You can also choose to pay with cash or credit card, whichever is more convenient.
    When secretly observing people using the machine, I found that most people would go get change so that they could pay with cash. I think this is generally because that most vending machines don't accept credit cards. Maybe there should be a large block of text on the machine that says credit cards accepted. The main difficulties of this machine is determining which candy to buy. It seemed as though most people could use this machine fairly easy since the instructions are very simple. The instructions were written for small children since they would be the most likely to use it.
     The instructions are shown on a large touchscreen. The machine first prompts the user to choose to pay with cash or credit card. An amount is then displayed on the screen and the user either swipes their card or inserts enough money to purchase the candy. The user then selects the desired candy, and the machine determines the correct candy to dispense, and puts it in a plastic cup.
     This machine generally good design since it does its job well. It is not difficult to use and its a lot of fun!

Tuesday, October 9, 2012

Automatic Pot Stirrer

     When we were asked to create a kitchen object, Cal and I thought for a while and came up with numerous ideas. We finally decided on an idea which was the automatic pot stirrer. We thought that many people get distracted while cooking or have other things to do while they are cooking. Some things require constant stirring while others need to be stirred every 5 minutes, 10 minutes, and so on. Our idea was that we could create a stirrer that could be set up to a timer. We then began working on our project.
This is what most people think of when they think of a mixer.

      We began by setting up all of the components without hooking them up to the pot. This was so that we could write our program and make sure we could get it to operate in the desired manner. We began by wiring up a potentiometer to our Arduino. We then connected a continuous servo to our circuit. These were the only major components needed to complete our project.
     After we had everything wired up, we began writing code. After a few minutes of brainstorming and implementing, our code was done. Everything acted in the way we desired so we began building the automatic pot stirrer.
Here is the pot stirrer after the mount for the servo was connected.
   We ran into a few problems with our program for our pot stirrer. The major problem was that if the potentiometer was changed while it was in the waiting period. It would have to fully cycle again before the timer would change. After our presentation, Dr. Hamid gave us some advice, so we changed our code. Now, our stirrer will immediately change the timing cycle at the time the potentiometer changes. The other problem was that the spatulas we used were very close together. This could be changed by making a bigger diameter plastic circle to attach to the gear on the servo.
Here is the automatic pot stirrer all hooked up and ready to go!

Shift Register Lab

     There is one key question that comes up at times when working with an Arduino. What happens if you need to hook up more components to your Arduino than you have pins for. In the recent labs, this was not a problem since we only hooked up a few components at a time. The shift registers used in this lab were used to control 8 bits at a time. This means that you can control 8 bits an only take up a few pins on the Arduino. This works by a process called synchronous serial communication. This means you can pulse one pin up and down by communicating a data byte to the register bit by bit.
     For our first shift register, we were asked to hook up 8 red LED's and 8 220 ohm resistors to our Arduino. The short pin was connected to ground and the other pins were connected to the shift register. Power along with ground was applied to the shift register by using the necessary connections as described in the directions. By using a shift register, we were able to hook up 8 LED's while only taking up 3 DigitalPins on our Arduino.
    This is the "Hello World" example program for the first shift register.

     When we began adding the second shift register, the same steps were used, but we used green LED's so that we could see the difference in the two sets of examples.
     We ran into a few problems when creating our shift registers. The major problem was basically wiring it up. There are many wired needed to hook up a single shift register. When adding the second register, the number of wires was insane.

Tuesday, October 2, 2012

Analog Output

     Analog output is a very useful tool when it comes to building things. Analog output is used when we need to change the range of the output value. For instance, if the brightness of a lamp needs to be changed, if the correct components were wired up to it, we could make this happen.
     In the first section of this lab, Cal and I wired up our breadboard and Arduino to begin working on the pulse-width modulation. This portion was used to control the speed of a motor, as well as the duty-cycle of the motor. The image below shows our final wiring of this motor. The potentiometer was used to determine the speed of the motor. Our motor would run for 50 msec and then stop for the same amount of time.
Final assembly of the PWM motor.
     After the PWM portion of the lab was completed, we moved on and began working with servos. Servos are motors, but servos make use of gears which gives them much more torque. A standard servo has a range of movement from 0 to 180 degrees. However, there are continuous servos which can rotate 360 degrees. The position of the servo is based on a timed interval. This means that some servos must be programmed differently than others. Below is a video of our servo in action!


    The final section of this lab dealt with a piezo element. In this part of the lab, Cal and I learned how the Arduino could control the notes of sound. A piezo elemnt makes a clicking sound each time it has current running through it. If the pulse is at a certain frequency, a note is played. In essence, different frequencies mean different notes. Cal and I wired up our piezo element and copied the sample code from the lab. Upon running this code, our piezo element played "Twinkle, Twinkle Little Star" as shown in the video below.



Norman Response

  • Simple objects should be self-explanatory when being used.
  • Things now are being built for beauty instead of functionality.
  • The parts on an object that are essential to make that object function must be highly visible.
  • Whenever the number of actions exceeds the number of controls, that screams difficulty.
  • Natural mapping leads to immediate understanding because it is all self-explanatory.
  • If an object has the necessary feedback, his object becomes much easier to use because it gives the user a sense of what they are doing.
  • Objects are often built with good intentions and principles, just poor design.

Lab 4 - Analog Input

     This lab dealt with analog input for our Arduino. The difference between analog and digital inputs is that analog inputs take in a certain amount of voltage and convert it to a digital number while digital inputs can not change voltage. A good example of this is a potentiometer can change the voltage running through it from 0 to 5 volts.
     Cal and I started off this lab by wiring a potentiometer, an LED, and a resistor to our breadboard. We then got to see first-hand how the potentiometer worked. As the dial was turned, the intensity of the light would increase/decrease depending on which way the dial was turned. This was the increase/decrease in voltage across the potentiometer.
     Next, we moved on to the photo resistor section of the lab. This required some of the same components such as the LED and the 560 Ohm resistor. However, there were a few new components to the circuit. These components were a photo resistor and a 10K Ohm resistor. The photo resistor uses the same principles as the potentiometer, but uses light intensity to change the voltage. A low voltage was produced when the sensor is under bright light and a high voltage is produced when the sensor is under low-light. This is sort of confusing since common sense would think it would be the other way around.
This is the LED being lit up while minimum light is being input into the photo resistor.








    
This is the LED being lit up while a high amount of light is being picked up by the photo resistor.








     After completing the photo resistor circuit, Cal and I moved on to the temperature sensor. The temperature sensor we used has three pins (ground, 5 volts, and signal). This sensor outputs 10 millivolts per degree centigrade on the signal pin. This allows this sensor to measure temperatures below freezing. The proper code was obtained from the maker of the sensor's website which allowed us to view the current degrees Fahrenheit of the environments we were measuring.
     The final section of the lab consisted of wiring in a pressure sensor. This sensor was very similar to the potentiometer. Instead of turning a knob, this changes voltage by using pressure applied to the sensor. The resistance is high when there is no pressure, and the resistance is low when there is high resistance.


Wednesday, September 19, 2012

Lab 3 - Digital Input/Output (I/O)

     In today's lab, we learned how to perform digital input/output with the Arduino. This was a follow up from last weeks lab. In this lab, we completed tasks such as making LED's blink, making an electric motor spin, turning LED's on and off with push buttons, and changing the color of an RGB LED.
     To start the lab, Cal and I set up our arduino, breadboard, and equipped the breadboard with an LED and a resistor. We then copied the code from the exercise worksheet and ran it. Our LED then started blinking, thus this task was successful. Next, Cal and I hooked multiple LED's into our breadboard and copied the code corresponding to the exercise we were working on and ran it. It also ran successfully.
     After that, we began working on the electric motor exercise. The electric motor we used is a much larger object than anything we had worked with before, thus a transistor was required. Our transistor gave enough voltage and current to power our motor without burning the motor up. If the wrong transistor is used, the motor could have too much current and thus burn up or cease to function. Cal and I organized our circuit as shown below. We then ran the test code and our motor would run for the designated time, then turn off.


Next, Cal and I began working on setting up multiple push buttons to power on/off a LED. This was pretty interesting since we had only used one push button in the past.






     In the last section of the lab, Cal and I configured our breadboard with an RGB LED and multiple resistors. The RGB LED has the ability to change the intensity of its red blue and green components. This gives this type of LED the ability to shine different colors at the same time. Cal and I copied the sample code and loaded it onto our Arduino. The results are shown below.

Monday, September 17, 2012

Lab 2 - Simple Circuits

All the elements of our arduino kit.
     In this lab, we were introduced to the basic principles behind simple series and parallel circuits. The pieces Cal and I used consisted of a solderless breadboard, jumper wires, LED's (light emitting diodes), a potentiometer, resistors and a switch.

     The breadboard was used to connect each of the components together. The jumper wires tied the circuits together. The LED's were used to show that the circuits were complete. The potentiometer was used to regulate the voltage which made the LED's go from bright to dim. The resistors reduced voltage across the circuit. The push button switch was used to open and close the circuit.
     To start the lab, Cal and I tested our multimeter to make sure it was working properly. We did this by setting the multimeter to the continuity mode, and touched both probes of the meter together. When the probes were touched together, the multimeter beeped until the probes were no longer touching.
     Cal and I then hooked an Arduino up as a power supply for our breadboard instead of using our dc power supply we made in the previous lab. We then hooked the jumper wires to the appropriate sections of the breadboard. Next, we tested the resistance capacity of each of the three types of resistors. We then wired a led and a resistor to our breadboard to make a simple led circuit.

 A push button was then added with a few more led's to make our circuit a little more complex.
     In this final step, Cal and I integrated a potentiometer into our circuit. A potentiometer is a resistor that can change its resistance. A potentiometer has three different leads. The resistance between the center lead and either of the outside leads changes as the pot's knob is moved.This is shown in the video below.




Monday, September 10, 2012

Imaginary Expressive Object - Personal Jetpack

When I was asked to think up an imaginary object, the one object that immediately popped into my head was for people to have their own personal jetpack. The jetpack would operate by taking two small jet-powered engines and strapping them to a heavy duty backpack filled with fuel. The jetpack could even use high powered fans and a battery to function. To operate it, there would be two hand controls on each side. On one side, a user would have the thrust for desired height and the other side would be forward/backward and side to side movement. Though the jetpack does exist, it is rarely seen and is not used by the majority of the population today. The jetpack is both necessary and fun. It is necessary because if the engines are made efficiently, it would cut the cost of fuel when compared to modern day cars. It would also be fun to just fly around everywhere you go. However, there are some downfalls to the jetpack. On one hand, you could be 2000 feet in the air and run out of fuel. Another case would be if one or both of the engines malfunctioned. These problems could be fixed by mounting a parachute mechanism somehow inside the backpack section of it

Tuesday, September 4, 2012

Assignment 1 - Sensor Walk

This is a guitar effects pedal which distorts the sound going to the amp to give it a more grungy sound. (Push sensor)








My guitar has different sensors in it. It has the pickup sensors which are the chrome boxes under the strings, as well as the sensors that change the volume and the treble/bass in the guitar.







This is a wireless sound sensor for use with Turtle Beach gaming headsets. 








There are various other sensors I have seen such as the motion sensor hand sanitizers, the smoke sensor fire alarms, as well as temperature sensor thermostats and sprinkler systems.




Lab 1 - Soldering

Introduction

     Our first lab covered the steps required to permanently solder two objects together. I had done some soldering in the past, mainly just soldering wires, so this lab was a good refresher for me. I have a feeling soldering is going to be a very useful skill when taking this class. Cal and I breezed through this lab, and our circuit successfully passed the voltmeter test.

Steps:

     The first step Cal and I took was to strip all the wires we used and pre-solder them. This made future soldering much easier because the smaller copper wires would not separate, thus giving us a better connection. Next, we soldered a red wire into the center of the 2.1 mm DC power plug, and the black wire to the outside of the power plug. We then applied heat-shrink to the soldered joints to keep the wires from touching or shorting out. We then reassembled the plastic cover on our power jack. We then took the other sides of the wire and soldered them to the battery snap which is used for a 9V battery as a power source. We then broke off two header pins and inserted them in the "helping hands" to secure them. We soldered both a red and a black wire to both the gray terminals on our header pin. We also applied heat-shrink to these connections to keep them from grounding or shorting out. Next, Cal and I soldered the red wire to the inside of the 2.1mm DC power jack and the black wire to the outside of the power jack. After the power jack was reassembled, we tested our soldering skills by using a voltmeter to see if power was making it through a complete circuit. Our soldering was successful as there was voltage passing through the wires and out the connections. Cal and I further tested it as shown below, which lit up the led from the breadboard.
     

Introduction

This is a blog about my progress and assignments throughout the course of CSC 420 - Physical Computing. I find physical computing to be very interesting and I am looking forward to making a lot of progress in the class.