Thursday, June 6, 2013
Ars Technica reports that AT&T doesn't want all its users making video calls over cellular data just
Storing garden tools with style (aka Zombiewall)


3D Printed Sound Bites

talking strip birthday card:
It's even possible to tune rumble strips on a road so that your car turns into a musical instrument as it drives over. Here is a musical road near MT Fuji, Japan:
another musical road - Lancaster, CA:

1. Download Audacity.
2. Open an audio file of your choice with Audacity. Use Effect>Normalize to amplify the signal as much as you can without clipping. Trim any excess blank space off the beginning an end of the clip, you will want to keep the audio as short as possible. File>Export this file and save it as a WAV in a folder called "soundBites".
3. Download Python 2.5.4.
4. Copy the Python code below and save it in the soundBites folder, this code converts the information stored in a wav file (audio) into a series of numbers inside a text file (txt).//3d printed sound bites - wav to txt//by Amanda Ghassaei//May 2013//http://www.instructables.com/id/3D-Printed-Sound-Bites//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version.*/import waveimport mathimport structbitDepth = 8#target bitDepthfrate = 44100#target frame ratefileName = "your_file_name_here.wav";#file to be imported (change this)#read file and get dataw = wave.open(fileName, 'r')numframes = w.getnframes()frame = w.readframes(numframes)#w.getnframes()frameInt = map(ord, list(frame))#turn into array#separate left and right channels and merge bytesframeOneChannel = [0]*numframes#initialize list of one channel of wavefor i in range(numframes): frameOneChannel[i] = frameInt[4*i+1]*2**8+frameInt[4*i]#separate channels and store one channel in new list if frameOneChannel[i] > 2**15: frameOneChannel[i] = (frameOneChannel[i]-2**16) elif frameOneChannel[i] == 2**15: frameOneChannel[i] = 0 else: frameOneChannel[i] = frameOneChannel[i]#convert to stringaudioStr = ''for i in range(numframes): audioStr += str(frameOneChannel[i]) audioStr += ","#separate elements with commafileName = fileName[:-3]#remove .wav extensiontext_file = open(fileName+"txt", "w")text_file.write("%s"%audioStr)text_file.close()Copy the file name of the audio file you just saved and paste it into the following line in Python:
fileName = "your_file_name_here.wav"
Hit Run>RunModule, after a minute or two you will have a .txt file saved in the soundBites folder.
5. Download Processing.
6. To export STL from Processing, I used the ModelBuilder Library by Marius Watz. Download the ModelBuilder library here, I used version 0007a03.
7. Unzip the Modelbuilder library .zip and copy the folder inside called "modelbuilder". Unzip the processing .zip and go to Processing>modes>java>libraries and paste the "modelbuilder" folder in the "libraries" folder.
8. Copy the processing sketch below and save it as "soundBites.pde" in the soundBites folder. You can adjust many parameters in this code: the x/y/z resolution of the printer, the speed that you want to playback, the amplitude of the waves, the thickness of the strip, and more... you can even invert the wave to make it recessed within the strip.//3d printed sound bites//by Amanda Ghassaei//May 2013//http://www.instructables.com/id/3D-Printed-Sound-Bites//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version.*/import processing.opengl.*;import unlekker.util.*;import unlekker.modelbuilder.*;import ec.util.*;String filename = "amanda.txt";UGeometry geo;//storage for stl geometryUVertexList lastEdge, currentEdge, end1, end2;//storage for conecting one groove to the next//parametersfloat samplingRate = 44100;//(44.1khz audio initially)int rateDivisor;//ensures we pack only as much data into this stl as the resolution of the printer can handlefloat speed = 26;//inches/sec that the data will be "read" from the surfaceboolean invertGroove = true;//false = grove is below surface, true = groove extends above surfacefloat dpi = 300;//objet printer prints at 600 dpibyte micronsPerLayer = 16;//microns per vertical print layer//variable parametersfloat amplitude = 50;//amplitude of signal (in z layers)float sideWidth = 0;//amount of extra space on each side (in pixels)float bevel = 25;//bevel width (bevel on either side of groove (in pixels)float grooveWidth = 450;//in pixelsfloat depth = 1;//measured in z layers, depth of tops of wave in groove from uppermost surface of recordfloat zHeight = 0.075;//thickness in inchesvoid setup(){ //set up storage geo = new UGeometry();//place to store geometery of vertices lastEdge = new UVertexList(); currentEdge = new UVertexList(); end1 = new UVertexList(); end2 = new UVertexList(); setUpVariables();//convert units, initialize etc drawGrooves(processAudioData());//draw in grooves using imported audio data //change extension of file name String name = filename; int dotPos = filename.lastIndexOf("."); if (dotPos > 0) name = filename.substring(0, dotPos); geo.writeSTL(this, name + ".stl");//write stl file from geomtery exit();}float[] processAudioData(){ //get data out of txt file String rawData[] = loadStrings(filename); String rawDataString = rawData[0]; float audioData[] = float(split(rawDataString,','));//separated by commas //normalize audio data to given bitdepth //first find max val float maxval = 0; for(int i=0;i
10. Hit "Run" in Processing, you should see a file appear in the soundBites folder called "your_file_name.stl", you are now ready for 3d printing.
Road bike shift indicator using scrap packaging

Warning - if you get frustrated fiddling around with small things until they're just right, don't even start this project. And, I'm the only one who ever handles my bike, so the fact that it's a bit fragile isn't a problem for me.

And a bit of duct tape, which I forgot to put in the picture.
Wednesday, June 5, 2013
DIY Infrared Night Vision Device
Cost:
I spent about $60-$70 on electronic components for this project (excluding replacing a part that I ruined), and around $25-$30 for the boxes for the enclosure. If you build your own enclosure, you can probably save a lot of money. If you build this exactly like I did, you'll probably expect to spend around $100 give or take.
Electronics (Prices as of 5/16/13):
-3.5" TFT LCD screen....... $20.00
(http://www.amazon.com/3-5-Inch-TFT-Monitor-Automobile/dp/B0045IIZKU/ref=wl_it_dp_o_nS_nC?ie=UTF8&colid=1O1ZIWOSSBYGI&coliid=I3T7G8S5HAVZ7F)
Takes 12V, has two video inputs- yellow and white. The white input will override the yellow making the white input suitable for other external axillary usage for other AV equipment.
-Low lux video camera module...... $31.40
(http://www.amazon.com/SecurityIng-Surveillance-Security-Degrees-Support/dp/B005FE88VE/ref=wl_it_dp_o_nS_nC?ie=UTF8&colid=1O1ZIWOSSBYGI&coliid=I1M69IMZSUVC2I)
Other cameras will work so long as they can connect to the RCA video input on the screen. This camera is .008 lux rated. The lower the lux rating, the better it will see in the dark and the easier it will be able to detect IR light. I wouldn't go any higher than .008 for this, as the camera won't be sensitive enough to pick up the IR light effectively to create an image.
-30 LED Infrared illuminator..... $13.95
(http://www.amazon.com/gp/product/B001P2E4U4/ref=oh_details_o02_s00_i02?ie=UTF8&psc=1)
IR illumination is usually available in 840nm and 940nm wavelengths and the intensity is measured in watts, not lumens. 840nm IR light will also produce a visible red glow when viewed with the naked eye, however 940nm IR is completely invisible and undetectable. I chose a near infrared illuminator because it was easier to find, and it was more affordable than other IR illuminators.
I also picked up a Cree Ultrafire WF-501b Infrared Torch (850nm, so there is a red glow)..... $19.96
http://(http://www.amazon.com/gp/product/B008RL0KS6/ref=oh_details_o01_s00_i00?ie=UTF8&psc=1)
I ended up getting one of these for my rifle to use in addition to the infrared illuminator for longer distance viewing. Remember, more IR = more viewing distance.
-12V Battery
I was able to get an 8 AA battery holder that adds up to 12V for a few bucks at Radioshack. So long as you use 12V DC, you'll be fine.
-5V voltage regulator.....$1.99 from Radioshack
This is very important because the camera will only accept 5V DC power. Any more voltage than that will fry it and cost you another $30 camera. Trust me, it's not a good feeling to realize that you accidentally ruined your camera and have to buy another one. That's why this instructable is here for you, so you can learn from my mistakes and save money...and probably some profanity as well. :)
-Male to male RCA video adapter:
You'll need this because both the screen and the camera have female plugs for video and need to be connected. You can find one of these at Radioshack for around $5.
-Switches: You'll need a switch for turning on the camera and screen and for turning on the infrared illuminator. Switches are cheap and usually only a buck or two a pop.
Tools/Hardware:
-Multimeter
-Screwdriver
-Soldering iron
-Solder
-Wire strippers/cutters
-Wire
-Heat shrink tubing
-Lighter or heat gun
-Electrical tape
-JB weld
-Hot glue/Hot glue gun
-Drill and bits or access to a drill press
-Dremel tool and cutting attachment
-Black spray paint
Enclosure: This step is completely up to you. I used several ABS project boxes in various sizes from my local Radioshack electronics store and mounted them together to create my enclosure. The sizes I used were 5x2.5x2", 6x3x2", and 8x4x2". You could probably use PVC pipe, wood, plastic containers, etc and it would work just fine.
Completely optional, I also used some cheap 3M full-seal chemical protection safety goggles (lab goggles) to make the faceplate of the viewer and to help prevent light from the LCD screen from leaking and giving my position away (as if the glowing red IR LED's weren't enough). Plus....it does improve the look of the finished unit a bit. :)
Makedo Juice Carton Bird Feeder

Discover the different species that live in your neighbourhood by building this simple Makedo bird feeder. We've made ours using a reclaimed juice carton and Makedo parts available from mymakedo.com.

Crispy Pig Ears
If you like churros, you are going to love these! They taste like pork stuffed churros. Crispy on the outside, slightly chwey on the inside with a rich pork flavor and a spice blend of cinnamon, sugar, chinese five spice & fennel.
With full respect for the Nose to Tail Movement, (utlilizing every part of an animal in cooking instead of discarding the parts people aren't used to eating ) these Crispy Pig Ears make the perfect fried food!
CRISPY PIG EARS
preparation adapted from latimes.com
Ingredients:
3 Pig Ears: available at asian markets, butcher shops or your local farmer
Cinnamon- 8tbsp
Cinnamon Sticks- 3 or 4
Sugar- 2-3 cups
Chinese Five Spice- 3-5 tbsp
Fennel - 1/2 tsbp- some chinese five spice blends already have fennel in them. Mine didn't so I added some
Flour- 2 cups
Milk- 2 cups
4 gallons of water
Vegetable Oil- enough to cover the pot until it comes up the sides by 3''
Recipe:
Make sure your pig ears don't have any hair on them. Mine were really clean. If you see some stragglers, just use a razor to trim them off. Place your pig ears in a stock pot and add two gallons of water. Bring to a boil and cook for 20 minutes. Strain the ears and return to the pot with 2 more gallons of water. Add the cinnamon sticks. Bring to a boil, then reduce the heat to a simmer and cook for an additional 3 hours.
After three hours, strain the ears. Place them on a dish or baking sheet and put them in the refrigerator overnight so they can dry out.
The next day, remove the ears from the fridge. Pat them dry with a paper towel to remove any moisture. Heat up the oil. Place the oil in a large heavy bottomed pot or wok. I used a wok. Bring the oil to 350 degrees before frying. Set up a work station with the flour, milk and 1/2 cup of the spice mixture. Add 1/2 cup of the cinnamon spice mixture to the flour and stir to combine. Dredge each ear in milk and then in flour. Place on a plate until the oil is heated.
Have a splatter guard ready and a baking sheet lined with paper towels to remove leftover grease .Once the oil is heated, use a pair of tongs and gently place the ear into the wok. Let it fry for for 4-6 minutes or until it is lightly golden brown. Use a pair of tongs and pick the ear up and gently shake off any excess oil back into the wok. Place the ear on a paper towel. Sprinkle the ear generously with the cinnamon sugar spice blend. Turn it over and repeat. I recommend frying one ear at a time. Use a sharp knife to cut the ears into thin bite size strips.
Serve immediately while warm. These can be reheated for 30-60 sec in the microwave or in the oven, but best served right away.
Enjoy!