Pages

Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

Sunday, February 12, 2012

Everything You Need to Know About the Raspberry Pi


The online tech community is wild about the soon-to-be released Raspberry-Pi. The cleverly named device is a $25 Linux computer that is the size of a credit card (right). With impressive specs and even more impressive performance, the Raspberry Pi has been seen running Quake 3(bottom), XBMC, and Air-Play, without lag. The R-Pi is due to start sales to consumers later this February, with the construction of the first 10k finishing on Feb 20th. Only the 'B' version will initially be for sale and will be priced at $35.

The device has an 700 MHZ ARM11 processor, and 128MB of RAM. The upgraded ‘B’ version sports a 10/100Mb Ethernet port and 256MB of ram. For the less-techy people out there, the specs are just short of a modern smart-phone (but can easily outperform the newest iPhone4s). The R-Pi is capable of HD video playback, and outputs through HDMI and RCA (the circular yellow plug on older devices). It has 2 USB 2.0  ports which share the same USB Controller. On the ‘B’ version, the Ethernet port also shares the USB controller. R-Pi will boot off of an SD card (sorry, it will not be able to boot off of USB) and will be powered by micro USB cable. The picture below shows the board’s layout.



On a more technical note, the board also has 16 accessible GPIO (general-purpose I/O). All of the pins are unpopulated and will be digital only. But chances are if you plan on using them, then you probably have a spare A/D converter laying around anyways. Another board referred to as the GertBoard will be released at some-point soon as well. This will allow users to more-easily drive high-power motors and sensors on a shield-like board (the GPIO do not have pull-down resistors or diodes to prevent reverse current attached. It is assumed that users using this will have enough common sense to not fry their board). Because of how easy the GertBoard will be to use, the Raspberry Pi may be able to start a new revolution in the hacking community; the same way Arduino has. The most popular Arduino board, the Uno, currently sells for ~$30 and doesn’t have nearly the speed of the R-Pi.
.
The Raspberry Pi is being developed with the purpose of bringing computer programming back to schools, and not languages like HTML, that most schools currently consider adequate. With a low cost, the R-Pi may be treated as a form of textbook in some tech classes, and will finally allow students to bring home a computer to learn with (without worrying about bricking their parent’s). More high-end languages will be able to be taught like C, or Java and students will also be able to learn more about the structure of operating systems - because the Pi will be completely Open Source and un-brickable. Hopefully, schools will be able find space for Raspberry Pis in their curriculum and buy a few. A $25 computer is a lot cheaper than a $100 textbook...and a lot cooler.

One of the most recent pictures of a Raspberry Pi. The
final version will most likely look similar.
The hacking community is expected to be the main buyers of the first batch of R-Pis. With projects seen on the forums like a a cheap media station, a car PC, an Android Emulator, a robotics micro-controller, and home automation. I plan on buying one to make a multi-media station for my [parents] HDTV (network media streaming, Netflix, YouTube, Interwebs, picture sharing, music, etc). The reason that the first batch is not going to schools is because the R-Pi foundation is hoping that the hacking community will help develop the learning materials, software and tutorials for the less-advanced users. Within the first month I can guarantee that you will see thousands of easy open-source projects using the Pi...Maybe even here on RoboTechEd!


If you plan on getting a R-Pi then I recommend you follow the organization on Twitter and forwarding their tweets to your phone. They don’t expect their inventory to last very long (I give it 10 minutes), even though they are limiting initial sales to 1 per person. The store will open at some point after Feb 20th and before the end of the month. The foundation also plans to ship world-wide from day one. If you want to get a few of these for your school, then you will have to wait for a little later in the year, the foundation will be selling bulk to schools at some point after they get a feel for their sales. Either way you should hop onto the R-Pi forums and check out some cool project ideas, and contribute to the development!


Tuesday, December 13, 2011

Adafruit's ATmega Pinout Can Save You Troubleshooting Time



Ever have problems identifying pins on IC chips? Does constantly looking at the data-sheet just annoy you? Then, counting the individual pins causes you to have hours of debugging - just to find that you have GND hooked up to the wrong pin? Adafruit has your back and made these handy pinout labels for ATmega328 ICs. Meaning that your breadboard Arduino has just become 10 times easier to use! Check out the download HERE and make sure you use some good double-sided sticky tape to keep it securely adhered.


Sunday, December 11, 2011

Using an ATtiny to Save Space and Money


Have you ever needed a microprocessor that is easy to use but isn't as large and bulky as your Arduino? Or maybe you just don’t want to put a bunch of unnecessary money into a project and using a full Arduino just makes the project not worth the effort? That’s where the ATtiny85 comes in. Using a tutorial found on the MIT High-Low Tech Group page, you can now program your ATtiny using a traditional Arduino. Check out the video below for an easy to follow tutorial as well.

I tried this recently and had no issues. It even works with the newest Arduino IDE (Check out Arduino 1.0 if you haven't yet already). All you need to do is load some hardware folders and program your Uno to be an ISP. Then, change your board type to “ATtiny85 w/ Arduino as ISP” and upload your sketch. If you have an Uno you must remember to jump  the ‘reset’ pin to ground so that the auto-reset is disabled with a 10uf cap. Presumably you could also use a 120ohm resistor.

Overall the ATtiny works really well and uses most Arduino commands. The only issue for me is that the Servo library doesn't seem to work - meaning the project I had intended to work on has to use a regular ATmega. Either way, the ATtiny will find a use in some low-processing projects that I’m working on. Leave me some feedback on Facebook or Twitter with some cool project ideas or if you’re having any issues.


Saturday, October 1, 2011

Arduino Based Computer Temp Sensing

The Problem

I bought a new graphics card for my computer recently, just to realize I didn’t have a power supply large enough to properly power the new card - causing it to overheat (temporarily, I opened the side of my computer and used a desk fan to cool it). After buying the correct power supply, I decided I needed some type of temperature indicator on my computer...Hello Arduino! (I actually used my Uno32 for this project, to view my review on it click HERE)

Now, this hack is very simple, versatile, and easy to implement. All you need is a general purpose temperature sensor, an RGB LED (or more if you want your computer to look really flashy), and some appropriate resistors so you don't blow up your LED. The Arduino fades an RGB LED from blue to red depending on the temp of your component. When it is over 50°C, the LED will be red. (50C is close to what most NVIDIA GFX cards can handle). I also have a processing sketch in progress to read the value of the temp sensor and store it into a .txt file, and a C++ program (in progress) to alert you when the .txt file says that your computer is too hot.


The Set-Up

Below is the schematic. I know that it isn’t standard, but it’s much easier to read for electronics beginners. I recommend giving yourself a pretty good length in wire so that you can attach the LED(s) wherever you need to. Also, HEAT SHRINK ANY VISIBLE METAL so that you don’t end up messing up your computer. Often, your computer will use the casing as a ground, so any visible wires would be really bad. 

Once you’re all soldered up and ready to go, you’ll want to attach the temp sensor wherever you think has a chance of overheating. To attach it I recommend using electrical tape, and just taping it down (If you have better ideas then let me know). Then put your LED anywhere you think will be easily visible. I recommend taping the wires down with electrical tape as well, or zip-tying it down. You then want to zip-tie all loose wires and attach them to the Arduino somewhere that you have free space. I recommend putting electrical tape on the bottom of the Arduino AND Velcro-ing it down, that way your Arduino doesn’t short, and it won’t move.
I was lucky enough to have a working USB port INSIDE my computer, so that I could leave my Arduino plugged in. The unlucky one’s out there will need to upload the code before they put it in and power it off of a battery, or find some way to get a programming cable inside of their case. After the Arduino code (below) is uploaded, everything should work fine. I set the default room temperature as 17C because that’s how it is in my boiling dorm- but that could easily be changed.
int bluepin = 5; int redpin = 6; int tempPin = A0; int blueout = 0; int redout = 0; float conv = 0.55555; //Wouldnt let me do 5/9 float tempC; int limitinC = 50; void setup() { Serial.begin(9600); pinMode(bluepin, OUTPUT); pinMode(redpin, OUTPUT); } void loop() { float tempVolts = (analogRead(tempPin) * .004882814); //Reads temp sensor and converts it to a voltage level float tempF = (tempVolts - .5) * 100; //Converts the voltage level into a temp(F) float tempC = (conv * (tempF - 32)); //Converts the temp into Celcius //Serial.print("tempC ="); //Commented out for testing //Serial.println(tempC); //Serial.print("tempF ="); //Serial.println(tempF);
float CelConstraint = (tempC - 15); //The average temp of my room in C (limiting the colors to be blue at 15 and red at 50) float CelCtoVal = (CelConstraint*29.68);//converts the value //Serial.print("CelCtoVal = "); //Commented out for testing //Serial.println(CelCtoVal); 
redout = CelCtoVal; blueout = ((512 - CelCtoVal) + 512) //Inverts the colors so 1024 = 0 and 0 = 1024 //redout = ((redout+CelCtoVal)/2); //Use these lines instead of the above if the sensor sometimes is flickering (averages the values) //blueout = ((((512 - CelCtoVal) + 512)+blueout)/2); //Serial.print("blueout ="); //Commented out for testing //Serial.println(blueout); //Serial.print("redout ="); //Serial.println(redout); analogWrite(bluepin, blueout); analogWrite(redpin, redout); if (tempC > limitinC){ Serial.print(1, BYTE); //Send 1 to Processing sketch if too hot delay(100); } else{ Serial.print(0, BYTE); //Send 0 to Processing sketch if cold delay(100); } }

Work In Progress

Below, I have a processing sketch that will read whether or not your Arduino is overheating and write a ‘1’ into a .txt file if it is. I also have a C++ program that will read that file. This is a work in progress. I just started to learn processing and only know very basic C. I hope eventually to make a program that will print the temp in C, F, and to pop-up when the temp is greater than a certain temperature.


Download Everything


Let me know how this works for you guys! If you have any comments/questions be sure to post below or tweet me!

Thursday, September 29, 2011

The Uno32 - A Cheaper and Better Arduino


If you’re looking for a solid new Arduino with better specs, then you should check out the ChipKIT Uno32 by Digilent. The Uno 32 has over double the regular Uno’s IO pins (20 vs 42), a much faster processing speed(16MHz vs 80MHz), and a massive amount of flash memory (32k vs 128k). I recently bought one to test it out, so let’s dive into the review. ( If you want a head start preview, check it out HERE)

Comparison
The major difference between the Uno and the Uno32 is their operating voltages. The Arduino Uno operates at 5v while the Uno32 at 3.3v(Don’t worry though! The Uno32 still has a 5v output pin for your projects). The only issue because of this, is shield compatibility. Some Arduino shields won’t work with 3.3v, but can be rigged to using a transistor and a pull-up resistor. Also, all of the I/O pins are safe for 5v input, just in case you forget (which I have to admit I did...quite a few times). To find out if your shield can be used, go HERE.

Ease of Use
The Uno32 operates almost exactly as a regular Arduino. The IDE looks the same as Arduino’s, and all of the example programs are able to be used on the 32’. The setup and programming all work exactly the same as the regular Uno as well...Honestly there is no obvious difference.

Advantages
The Uno32 has tons of advantages besides the obvious ones I stated in the beginning. The Uno32 has many more user controlled LEDs, as well as more indication LEDs (ex: USB data LEDs). There are also multiple jumpers across the top of the board that can change whether the board is an SPI Master/Slave, if a pin can be used as PWM output, or even if the 5v output goes through the voltage regulator or not (could be handy for some AC signals?). There is also a huge forum dedicated to the Uno32. Having professionals at your disposal is always an advantage!

Disadvantages
Besides the 3.3v operating voltage, there are two more drawbacks that you should know before buying the Uno32. The Uno 32 has 1 less PWM output than the Arduino. Pin 11 cannot be used as one because of the actual limitations of the chip. Also, not every port on the Uno32 can be used as interrupts, only a few (not a big deal considering I rarely use more than 1 anyways in my projects).

Price
The ChipKIT Uno32 sells for £17.99 at Farnell, which is less than $25 USD. This makes the Uno32 CHEAPER than the Arduino Uno (Yes, at least double Arduino’s specs, at a cheaper price)...A pretty obvious buy for anyone looking into buying a new microprocessor.

Rating
I highly recommend ChipKIT’s Uno32 to anyone looking into an Arduino replacement - 5/5 gears!



-Example Video Coming Soon-

Saturday, September 24, 2011

New Arduino - The Uno +1


Last weekend at MakerFaire NYC (which I wish I went to), the Arduino people announced a few new products, which I’m pumped to use; but one board stands out - the Arduino Due. Although the name shows that it is a whole numerical value above the UNO (maybe they're running out of ideas), the Due is much different where it matters; the processor.

The Arduino Due is introducing a whole new breed of processing power to arduino boards, a step from the standard Atmegas - ARM processors. ARM processors can be found across the electronic world; from cellphones, to low powered computers. Simplicity is what fuels the ARM line, and it only seems natural for one to meet up with an Arduino.  The Due runs at over 90MHz, and has 256K of flash memory - up from 32MHz and 32K of flash on the Uno. On top of the power upgrades the Due has 16 12-bit analog pins, 5 UARTS, and tons of digital pins. Not a bad upgrade to what is already my favorite nerd toy.

On-top of the Due, it was announced that another microprocessor will be released named ‘Leonardo’. The Leonardo uses the same pinout as the UNO, with a ‘simpler circuit’ and comes with USB drivers for it to simulate a mouse, keyboard, and serial connection (arduino custom keyboard anyone). There are more new products/announcements on the Arduino blog located HERE, and when the Due comes out, I’ll make sure to let you guys know how it is...assuming I can force myself to stop playing with it.

Monday, April 11, 2011

Roboweek Day Three - Self Replicating Printers

RoboTechEd’s third #robotofnote for Roboweek isn’t a stereotypical robot. It doesn't walk, talk, or really have much user feedback. But what it lacks it makes up with it's ability to create. Makerbot is a stationary robot that is completely open platform, and arduino controlled - pretty sweet if you need a 3D printer (you guessed it, Makerbot is a 3D printer). A Makerbot kit costs a small price of $1,300 but is way cheaper than a commercial 3D printer. And the best part is that once you have one, the Makerbot can self replicate!

Also available online is a huge amount of CAD files that are known to work on the Makerbot, from coffee mugs, to nuts and bolts. The Makerbot is able to make these things by melting plastic into the desired shape - anything up to 4”x4”x6”. To find out more on the Makerbot, click HERE and make sure to check out the video below to see it in action. And if anyone makes or buys one of these let me know, selling copies of the original may be somewhat fruitful (no...for real, a self replicating 3D printer is pretty sweet)!

Are you celebrating Roboweek? If you're making something cool, would you use a Makerbot to help?less than a minute ago via web Favorite Retweet Reply



Are you celebrating #roboweek? What are you doing to celebrate? A good idea would be to download the RoboTechEd Chrome App! Check it out, and tweet @roboteched or @roboweek with any #robotofnote!

Sunday, March 13, 2011

Dorm Room Automation 01 w/ Arduino

So my year is almost over, and I have some overly ambitious goals for next year. My future room mates and I want to automate our dorm room (Yeah, that IS my college life). And with my new Arduino and Ethernet shield, I definitely have the materials. And after a few late nights, I now have a working code.

In the video below you see me display a message, and change a RGB LED. I used an LED instead of a motor because I only have one motor, and my Arduino doesn't give out enough power to run it. But the code is the same, you just hook up the LED output to a transistor or even directly to a motor (if you need to change the code, feel free to ask for help). The hookup is pretty simple, and is typed out in the code itself - but could change depending on what LCD screen you have, so yet again feel free to ask for help (tweet me @roboteched or post below).

This part of the code in my final room automation will take place every 30 seconds, so that other code can be executed in-between (like temperature, light switch controls, etc). To do this I use the Time library on Arduinos website. My next goal is to control the LCD using a ShiftOut IC. If you have any ideas, or know how to do this, let me know and I’ll reference you! Check back sometime within the next week for an update on my next project.

CODE DOWNLOAD