Posts with «arduino» label

Floating Fantasy

The Amazing Air-Filled Under-Sea Adventure used more than 40,000 balloons to fill the building’s five-story atrium

Read more on MAKE

The post Floating Fantasy appeared first on Make: DIY Projects, How-Tos, Electronics, Crafts and Ideas for Makers.

MAKE » Arduino 29 Jun 19:00
airigami  arduino  art  art & design  balloons  make46  mf  ocean  sea  

Arduino Yún controlling a 12 mentos-coke installation!


What happens in Zaragoza when you mix David Cuartielles, a group of teens, an Arduino Yún, 12 cokes and a bunch of mentos?

Here it is:

Typewriter Types, Plays Music

[Chris Gregg] had a dream. He wanted to convert use a typewriter as a printer. Sure this has been done before, but [Chris] wanted to create his own version. He picked up a 60’s era Smith Corona electric typewriter, with the hopes of driving its key switches with a computer. You can imagine his surprise when he discovered the keys were not electric switches at all, but a complex mechanical system which triggered a clutch to strike the actual paper. Realizing this was not going to be a simple wiring job, [Chris] set the project aside, where it remained for several years.

A conversation with [Bruce Molay], a coworker at Tufts University reignited [Chris’] interest in project. [Bruce] suggested using solenoids to press the keys. [Chris] dove in, and quickly had 48 solenoids on hand. The first problem was mounting the solenoids on the keys. [Chris’] roommate happens to be [Derek Seabury], president of Artisan’s Asylum Hackerspace. [Derek] created an acrylic frame which holds the solenoids and fits directly over the typewriter’s keyboard. This meant that no modifications needed to be made to the typewriter itself. Simply lift off the solenoid array and you’re ready to rock like it’s 1965.

The next step was driving all those solenoids. For that, Chris worked with [Kate Wasynczuk], one of his students at Tufts. [Chris] designed a board using Texas Instruments  TPIC6A595 shift registers. The TIPC “power logic” series work like regular 74 series logic, but have seriously beefy outputs. These chips can handle up to 50 volts and 1.5 amps pulsed output current – plenty for [Chris’] 24 volt solenoids. [Chris] taught himself schematic entry and PCB layout in Eagle. After only two tries, he had a working board from OSHPark.

An Arduino Uno converts serial over USB output to a bit stream ready to clock into the shift registers. On the computer side, [Chris] wrote up a basic CUPS driver which allows him to print from his Macbook. The perfect demo for this project turned out to be musical. Click past the break to see The Smith Corona perform “The Typewriter Symphony”, by Leroy Anderson. This may be the first time this particular piece of music has been performed with actual words being typed, rather than random keys.

Here’s a classic version of “The Typewriter Symphony”


Filed under: classic hacks

KeyMouSerial Solves Your Raspberry Pi Keyboard Problems

All laptops have a working keyboard and mouse built into them, the only problem is that you can’t use these tools on other computers that don’t have them. At least, until now. [Peter] has created the KeyMouSerial in order to use his laptop’s keyboard and mouse as physical devices on his Raspberry Pi, finally freeing the bonds holding our laptops’ human interface devices back.

The software for KeyMouSerial copies keystroke and mouse information and sends this out via a serial port on his laptop (using a USB to serial adapter). From there the information is translated by an Arduino into HID commands which are sent via USB to the target computer, in this case a Raspberry Pi. It’s a pretty elegant solution to carrying a bulky keyboard and mouse along just for a Raspberry Pi, or for any computer that might not have access to a network and SSH.

[Peter] has also been working on using his iPod as a serial-to-USB converter, so if you’re a Rockbox developer and want to help out then drop him a line. All of the software is available (for Windows, Mac, or Linux) including the Arduino sketch if you want to try this software out for yourself. And, if you don’t want to turn a computer into a keyboard and want to go the other direction and turn a keyboard into a computer, that is also an option.


Filed under: laptops hacks

Art Drops: capturing what the human eye can’t see


Art Drop is a project by italian photographer Gianluca Sambo and recently awarded with first prize from PX3, “Prix de la Photographie de Paris”. He’s been experimenting for some time a DIY technique based on Arduino to capture amazing shapes of liquid drops mixed with dyes and other ingredients to vary the density, and therefore, the shape of the liquid in motion. Arduino allows him to synchronise the camera with the flash and the water pump, creating a series of pictures full of colours and unforeseen shapes.

Take a look at the video below to see how it works:

Arduino Blog 25 Jun 23:22

Embed with Elliot: I2C Bus Scanning

A lot of great ICs use I2C to communicate, but debugging a non-working I2C setup can be opaque, especially if you’re just getting started with the protocol/bus. An I2C bus scanner can be a helpful first step in debugging an I2C system. Are all the devices that I think should be present actually there and responding? Do they all work at the bus speed that I’m trying to run? If you’ve got an Arduino or Bus Pirate sitting around, you’re only seconds away from scanning your I2C bus, and answering these questions.

The Lowdown: I2C in Brief

I2C is a two-wire (plus ground) communications bus and protocol. The physical layer is just two signal wires: a clock line (SCL) that’s controlled by the master, and a data line (SDA) that can be controlled by either the master or the addressed slave unit. Data is always read on the SDA line when the clock is high, and a new value is established while the clock is low. The two exceptions to this rule are the stop and start signals, where the master is allowed to raise and drop the data line while the clock is still high. Because this change shouldn’t ever happen during data transfer, the stop and start signals are easy to detect.

All data is sent in eight-bit packets and each packet is acknowledged by the recipient, whether master or slave. To start up a conversation, the master sends the start signal and then the seven-bit address of the slave device that it wants to speak to. The eighth bit in the master’s first packet tells the slave whether the master is going to transmit more data (a “write” command, a zero) or whether the master is requesting data back from the slave (a “read” value, a one).

After the eight bits are sent, the slave is required to acknowledge receipt by pulling the data line low.  This acknowledge signal is exactly what the I2C bus scanning software will need to look for in order to detect a chip with the given address on the bus.

There are, of course, a lot more complicating details to I2C. For instance, there are a whole range of permissible clock speeds at which the transmissions can take place: ranging from the default 100kHz data rate, through 400kHz “fast mode”, 1MHz “fast mode plus”, and up as far as 5MHz “ultra-fast mode”. (We await the 10MHz “super-duper, really-really-fast mode” with baited breath.) And since the bus is clocked by the SCL line, almost any slower data rate up to the maximum allowed will work just fine.

The physical lines are pulled up to a logic-high voltage level by pullup resistors, and the devices signal low by pulling the line down. This means that the voltage transitions can be a little blurry, especially on long runs or other situations where the line itself capacitively couples to the circuit. These physical factors will play a role in determining how fast you can send signals on the I2C bus, and you may need to fine-tune the pullup resistors in your particular system.

There are a surprisingly large number of other ways that things can go wrong on an I2C bus, so it’s great to be able to start debugging at the very beginning — is the slave even getting my first (address) packet at the speed I’m sending? Hence the utility of an I2C scanner.

A Scanner

A first cut at an I2C bus scanner, then, can be made by just cycling through all 127 possible slave device addresses, and checking whether or not they acknowledge. Next, you might want to re-run the same test at a bunch of different bus speeds, if you thought that you might be having troubles with signal rise- and fall-times. Finally, and we’ve never seen this implemented, it might be cool to have a database of common I2C slave device addresses so that the scanner itself can report back which particular chips it’s found.

For the Arduino, the most featureful scanner we’ve seen is posted on the Arduino forums, with the code hosted on Github, in the “sketches/MultiSpeedI2CScanner” folder.  It actually does everything that we’d want in a simple scanner: scans the entire bus at different speeds and plots the results out nicely over the serial port for perusal on your computer. It’s configured to do a full scan on reboot. Type “ps” to print only the found devices and start a scan. Bam!

The one caveat with the Arduino scanner is that if you’ve neglected to connect pullup resistors on the SDA and SCL lines (we would never!) the scanner seems to hang somewhere when running at 800kHz. We suspect it’s waiting to become bus master and just gets stuck; we wonder why there’s not a timeout in the twi_writeTo() function in the Arduino “twi.c” library. (Anyone have a good guess?) Other speed modes worked just fine, and everything was peachy again after adding a 10k pullup resistor to SDA.

Naturally, the Bus Pirate (the swiss-army knife of serial communications) will do an I2C scan. It only runs one frequency at a time, but it’s quick enough that you can step through them all in short order. It’s got a quirk, or maybe a feature; it treats the read/write bit as part of the address, so it will test each chip in both directions. Enter the I2C mode, set the desired speed and pullup/power options, and finally type “(1)” for option 1: 7-bit address search. You should see all the devices that responded on the bus listed out for you.

Writing your own code to do a scan is surprisingly simple as well, if you know the chips you’re working with. Most microcontrollers’ dedicated hardware I2C interfaces will report error codes in a specific register. If you can figure out how to test for the “didn’t acknowledge after sending the address and data-direction packet” error, the code pretty much writes itself.

Going Further

Once you’ve got the basics verified — the slave responds when addressed at the desired speed — and your I2C setup still isn’t working, you’re on to debugging the harder problems. There are other tests you might like to do, but unfortunately they all run quickly into the slave-device specific command sets. For instance, many devices will receive a command to reply with a known device ID, or the contents of a default register, or similar. These are useful to make certain that you’ve got multi-byte commands working as expected.

If you suspect that you’re having problems with the signals not rising or falling fast enough, perhaps because you’ve seen chips respond at low speeds but not at higher ones during the scan above, you’re going to need an oscilloscope to actually probe out the analog voltages on the lines. Or try lower-value pullup resistors to speed up the rising edges and test again.

Harder to catch or infrequently occurring glitches on a multi-master I2C bus get really hard to track down really fast. But getting the simple stuff verified working first — all parts are on the addresses that you think they are — can get you set on the right path.

Good luck with your I2C projects! And if you’ve got any other useful I2C debugging tools or strategies up your sleeves, feel free to discuss in the comments.


Filed under: Hackaday Columns, Microcontrollers, peripherals hacks

Watch Makezine’s interview with Massimo Banzi and Eric Pan

According to Make, the biggest news coming out of Maker Faire Shenzhen, outside the size and intensity of the event itself, was the partnership involving our team at Arduino and SeeedStudio.  Massimo Banzi during his talk presented Arduino boards using the new sister brand Genuino which will be made in China by Seeedstudio.

Dale Dougherty was in Shenzhen with them and did this video interview and article:

Motion Sensing Water Gun Tweets Photos To Embarrass Enemies

[Ashish] is bringing office warfare to the next level with a motion sensing water gun. Not only does this water gun automatically fire when it detects motion, but it also takes a photo of the victim and publishes it on Twitter.

This hack began with the watergun. [Ashish] used a Super Soaker Thunderstorm motorized water gun. He pulled the case apart and cut one of the battery wires. he then lengthened the exposed ends and ran them out of the gun to his control circuit. He also placed a protection diode to help prevent any reverse EMF from damaging his more sensitive electronics. The new control wires run to a MOSFET on a bread board.

[Ashish] is using a Lightblue Bean board as a microcontroller. The Bean is Arduino compatible and can be programmed via low energy Bluetooth. The Bean uses an external PIR sensor to detect motion in the room. When it senses the motion, it activates the MOSFET which then turns on the water gun.

[Ashish] decided to use Node-RED and Python to link the Bean to a Twitter account. The system runs on a computer and monitor’s the Bean’s serial output. If it detects the proper command, it launches a Python script which takes a photo using a webcam. A second script will upload that photo to a Twitter account. The Node-RED server can also monitor the Twitter account for incoming direct messages. If it detects a message with the correct password, it can use the rest of the message as a command to enable or disable the gun.


Filed under: Arduino Hacks

Smile! This plant wants to take a selfie with you

Selfie Plant is an interactive installation taking pictures of itself using Arduino Yún, Facebook Graph APIs and then uploads them to Facebook. It was developed by a group of students at the Copenhagen Institute of Interaction Design during “The secret life of objects” course held also by Arduino.cc team. The final prototype was placed in the exhibition of the school, to see the interaction of the audience with it and you can see the result on Facebook.

The Selfie Plant is an attempt to provoke some thoughts above genre of expression. The Selfie Plant expresses itself in the form of nice-looking selfies, which it clicks according to its mood, weather or occasion. It mimics human behaviour, by giving it’s best pose and adjusting the camera angle to take the perfect selfie.

 

In the documentation on Github you can find all the details of the project composed by an Arduino Yún, controlling 2 servo motors and adjusting the positions of the plant and the camera stick; a python script (facebook.py) which communicates with Facebook’s graph API to post the captured photos on plant’s Facebook profile. In addition you’ll need also a LED Matrix, a Bread Board and 5 Volt Battery.

Here’s a preview of the diagram:

 

Smile! This plant wants to take a selfie with you

The Selfie Plant is an interactive installation taking pictures of itself using Arduino Yún, Facebook Graph APIs and then uploads them to Facebook. It was developed by a group of students at the Copenhagen Institute of Interaction Design during “The secret life of objects” course held also by Arduino.cc team by Joshua Noble and Simone Rebaudengo. The final prototype was on display at the class exhibition, to observe the interaction of the audience with it, and the results are on Facebook.

The Selfie Plant is an attempt to provoke some thoughts above genre of expression. The Selfie Plant expresses itself in the form of nice-looking selfies, which it clicks according to its mood, weather or occasion. It mimics human behaviour, by giving it’s best pose and adjusting the camera angle to take the perfect selfie.

In the documentation on Github you can find all the details of the project composed by an Arduino Yún, controlling 2 servo motors and adjusting the positions of the plant and the camera stick; a python script (facebook.py) which communicates with Facebook’s graph API to post the captured photos on plant’s Facebook profile. In addition you’ll need also a LED Matrix, a Bread Board and 5 Volt Battery.

Here’s a preview of the diagram: