View allAll Photos Tagged microcontroller

Photo taken to accompany short article on working with AVR microcontrollers, and making minimalist target boards for programming them.

Visitors to our family blog can launch a car from our closet for our toddler to play with. I built a simple gravity-powered car launcher that is controlled by the web site. Clicking "Launch Car Now!" on the web site results in a sound clip from the movie "Cars" playing in our living room, followed by a car shooting out from under the coat closet door. The website uses a bit of PHP to send an email to my wife's computer, which happens to sit in the living room next to the coat closet. I created a filter in Apple Mail to run an AppleScript when a correctly coded email comes through. The AppleScript pauses iTunes and raises the system volume of the computer before activating a small applet I wrote in the Processing language. The Processing applet plays a bit of Lightning McQueen (main character in "Cars") psyching himself up before a big race. The applet then sends an "l" to the serial port, where the car launcher's Basic Stamp II microcontroller is patiently waiting. The BSII opens the sliding garage door on the launcher exactly one bay. There are five bays, for five cars. I set up little tabs to interrupt an infrared beam as the edge of each opening is reached. Once a given bay is open, gravity pulls the toy car out and down the ramp. Momentum carries it under the closed closet door and across the floor to the excited toddler. After receiving each launch command (each clicked "Launch Car Now! from the web site), the launcher will release one car and then wait for another command, progressing until the door is completely open and all cars have been released. The launcher door will then close and wait to be reloaded. The PHP on the web server makes sure the "Launch Car Now!" link is only available during usual playtime hours and also limits the number of cars launched to five per day.

Debugger/programmer for PIC and dsPIC microcontrollers.

My makeshift automated panorama rig. Mostly made from spare parts and junk.

 

[updated 2012.07.24] It seems this made it on hackaday: hackaday.com/2012/07/24/motorized-camera-rig-makes-panora... Greetings! I'll try to get some documentation together and post the code somewhere in the coming weeks.

 

Movement is handled by two servos at the top, mounted to some scrap wood using screws and wood glue. That mounts to the tripod via a 1/4-20 clawed T-bolt. The camera secures to a set of overpriced plastic servo pan/tilt plates.

 

The servos are controlled via an Arduino Nano (Atmel AVR 328p) powered by a 9v battery for the microcontroller(μc), and 4xAA batteries for the servos. The clear housing was saved from the trash, and holes for the wires and switch were cut by using a heat gun on an exacto knife. The case secures to the tripod using velcro and elastic. An IR receiver, mounted on top of the case, takes input from a small generic remote control(not pictured).

 

Several quick programs are accessible with only 2 key presses for the most commonly used angles. Manual angle input and adjustment are also available, as are startup delays and repeating functions. It can also be re-configured in the field, via the remote, and allows the changing of camera specs, such as horizontal and vertical field of view, h/v overlaps, servo speed and end stops. The μc is programed to, on it's own, determine the number of shots, and the best angles to shoot, in order to capture the requested area. There's also some rudimentary duplicate avoidance written in, which skips photographing areas that would significantly overlap with previous photos, such as in the polar regions.

 

There are plenty of problems with the version as shown. For starters, it doesn't center its rotation around the shutter, which causes parallax errors. The current servos aren't strong enough for anything heavier than a compact point-and-shoot. There's no shutter control yet. A third servo lead is tucked in back, and the code written, but at the moment, it's just synced with the camera's internal 10 second repeat auto timer. The code was quick and sloppy, but it does the job. I should probably clean it up and open source it at some point. So far, though, it has performed far better than I expected. Most issues could be resolved without much work, but at the moment, I'm just going to enjoy using it.

 

Except for the Marigot Bay panorama and the Marblehead harbor fireworks panorama(which were done by hand) most of the panoramas and stereographic "little planets" in this photostream were taken using this rig with a casio ex-g1 point-and-shoot.

 

You can check out some of the interactive and immersive 360º images it has produced using the viewer at fieldofview here , or just check out the rest of the photostream here.

Debugger/programmer for PIC and dsPIC microcontrollers.

The results of a DIY project writing custom code for a Node MCU micro-controller to control addressable LEDs.

8 bit microcontroller with 20kByte of internal Flash-ROM, 256x8bit RAM, 8051-compatible

 

Size is about 7mm x 4mm

The Atmel AVRISP MkII USB programmer, one of the popular, low-cost variety.

 

Photo taken to accompany short article on working with AVR microcontrollers, and making minimalist target boards for programming them.

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format.

 

The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board.

 

A technical description of the setup as well as downloads of the model and the code can be found here: postapocalypticresearchinstitute.wordpress.com/2012/07/18...

Insect robot build after the description in Oreilly Make Arduino Bots and Gadgets

Details: Have to add some rubber feet to give it more grip on the floor.

 

Video of V 0.0.1.2 here: www.youtube.com/watch?v=UHLnzWc7X3I

 

More pictures and another video here: xinchejian.com/2011/04/11/insect-robot-from-lumi/

A funny looking chip that I came across. Read more about it here.

Connect the servo to your microcontroller (here an Arduino) and tell it to move to position 0 (i.e., a pulse width of 1500µs). The gears should start spinning, unless it was previously at 0.

Simple Circuit board allowing control of mains voltage heating elements from 5V microcontroller IO pins using a relay and simple transistor amplifier

This is my simple circuit with preamp module inserted to display music on a VGA monitor like on an oscilloscope.

For more details go to :

www.5volt.eu

Microchip expanded its Arduino™ compatible chipKIT™ platform ecosystem to include a new Raspberry Pi® tool that it co-developed with partner element14—the chipKIT Pi Expansion Board. On the software side, volunteers from the chipKIT and Arduino communities collaborated with Microchip’s engineers to expand the free chipKIT Multi-Platform IDE (MPIDE), to allow users to create, compile and program Arduino sketch-based chipKIT applications within the Raspberry Pi operating system. The chipKIT MPIDE is open source and compatible with the Arduino programming language and development environment. Both of these tools are based on Microchip’s 32-bit PIC32 microcontrollers (MCUs) in prototyping-friendly, low pin count SPDIP packages, which was previously only available with 8-bit MCUs for the Arduino community. This enables all users—including hobbyists, academics, makers and professionals—to benefit from the PIC32’s high performance, memory and integrated peripherals while using the basic hobbyist prototyping equipment that is found in most home workshops. For more info, visit chipkit.net/.

This design is an experimental software USB microcontroller platform. I'm not yet entirely sure that it will work as intended :)

The idea is pretty well derivative from the blink[1] project you may have seen elsewhere, this is my take on how it could have been done.

Core design has:

* Microcontroller (ATTINY44)

* RGB LED

* Tiny tiny flip chip voltage regulator

* Capacitive-touch plane on back

 

Bringing this system up isn't currently a priority but I'll probably try it before long.

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format.

 

The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board.

 

A technical description of the setup as well as downloads of the model and the code can be found here: postapocalypticresearchinstitute.wordpress.com/2012/07/18...

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format. The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board. Next steps will be to tidy up the wiring and add some buttons to set the clock to the right time (right now this has to be done in the code).

Insect robot with obstacle avoidance by ultra sonic.

First DIY robot project.

Build after the description and programming in Oreilly Make Arduino Bots and Gadgets March 2011

Another video of V 0.0.1.2 here: www.youtube.com/watch?v=UHLnzWc7X3I

 

More pictures and another video here: xinchejian.com/2011/04/11/insect-robot-from-lumi/

Important step: Mark where pin 1 of the connector is!

 

Photo taken to accompany short article on working with AVR microcontrollers, and making minimalist target boards for programming them.

9:55PM on December 23rd, 2010 will be etched into my memory. That is the moment when I discovered that my primary digital images hard drive (500GB) with nearly 45,000 image files had disappeared from my computer's view.

 

"No problem", I thought, "I have my backup drive, right?"...this is when I discovered that the external backup drive wasn't connected to the computer, and hadn't been for some time...."oh! bugger!".

 

To those that don't know I actually have experience in the computer forensics field so I started researching the problem. One company based in Canada (yes, that place North of the border and yes they are friendly) called One PCB Solution www.onepcbsolution.com offered replacement hard drive controller boards (or PCBs). They responded with-in a day and told me that a hard drive PCB replacement wouldn't fix the problem and that I needed to go read the "Unbricking Seagate Drives" article:

www.mapleleafmountain.com/seagatebrick.html.

 

After thoroughly reading this article and the other linked-to articles, I finally understood the problem...it's a bug in the drives firmware/software -- what you don't know about "bugs" en.wikipedia.org/wiki/Software_bug in software how qaintly naive of you. ;-) But, I also had a solution!

 

Fortunately, I've spent the last year re-kindling (no, nothing to the Amazon device) my passion for electronics, in particular microcontrollers. Double fortunately, I had built an RS-232 (serial port) "level-converter" so that I could connect my development laptop to a microcontroller circuit board and get diagnostic information out of it. The resulting setup is in the image above.

 

The result: It worked! After interacting with the Seagate drive's Terminal Command interface using HyperTerminal my drive is up and running again, and the backup process is almost completed as I type.

Computer controlled shutter for the Automatic 100 series packfilm cameras with manual exposure control. See www.chemie.unibas.ch/~holder/shutterpic/index.html

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format.

 

The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board.

 

A technical description of the setup as well as downloads of the model and the code can be found here: postapocalypticresearchinstitute.wordpress.com/2012/07/18...

These are the Images of My GSM based robotic project that I created in Dec. 2013.

Illuminated clock dial. Beautiful addition to clock design.

The finished product consisting of an ATtiny2313 microcontroller, a 74HC125 tri-state buffer, a type-B USB socket, the 10-pin ISP connector and a handful of discrete components. With the exception of the red wire running between the USB socket and the ISP port, the red wires carry the programming signals, the blue are there to reverse the order of the USB signals, and the black wires are ground. (See decarchive.org/~prd/2009/11/a-veroboard-based-usbtinyisp-... and www.adafruit.com/usbtinyisp for more details.)

I've been exploring variable sample rate (where the voltage step is constant) and also base 3 digital to analog conversion. Combining the two techniques gives me an interesting way of implementing a PIC microcontroller based AX25 modem using just 3 output pins rather than the normal 4. My limitation has been PIC processor speed to keep up with the rapid ramping needed as the signal crosses 0. I could do it, with some high frequency spikes from the switching, but I'd need to up the PIC's clock frequency to its full 32MHz, or I start skipping samples.

 

This graph is a prediction for a 4 bit binary converter using variable sample rate. The circles penned in are the actual sample points that the software is trying to follow. It is moving half a sample early to try to reduce error and therefore noise.

 

If the noise amplitude is taken as the maximum deviation from the target sine then I need to avoid skipping samples and try to keep close. A fixed sample rate solution could also achieve this quite well as long as the sample rate is fast enough to keep up with the fast ramping. Then the maximum error will be equal to half of the converter's resolution. The resolution of this 4 bit converter is -24dB.

 

The frequency content of the noise will vary here as the sample rate varies. In fact I'm frequency modulating the sample signal (d/dt of sin(t) is cos(t)), so I think I should expect the noise signal to occupy an FM type spectrum with extra harmonics from the step functions. Mix in any non-linearities in the system and that could become problematic!

 

Thinking of this, the better solution may be a fixed sample rate that is fast enough not to allow the noise amplitude to become too large as the waveform ramps quickly crossing zero. (That would be effectively amplitude modulating the noise). The fixed sample rate does also have the advantage of simpler code and less resource usage on the microcontroller, and noise is easy to filter in the analogue stage.

 

Maybe this is why we don't see variable sample rate synthesis. Searching for commercial direct synthesis solutions it looks like effort has been spent achieving very fast fixed sample rates.

 

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format.

 

The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board.

 

A technical description of the setup as well as downloads of the model and the code can be found here: postapocalypticresearchinstitute.wordpress.com/2012/07/18...

Uses the Cmedia CM6500 audio chip with a built-in 8051 microcontroller

Evil Mad Scientist Laboratories staff photo, featuring an alphanumeric persistence of vision display. Exposure time: 2.5 s.

A modified Olimex Dev board, holding an ATmega168 8-bit microcontroller. I've added a few things to it: a 6-pin ISP interface (11:30), two RC low-pass filters for the analog outputs (1:00), and eight tactile button switches (5:00-7:00).

 

This is part of the Evil Mad Scientist Analog PlotBot project, which features a DIY E-Paper display! Read more about this project here.

A funny looking chip that I came across. Read more about it here.

Woodworking plans available at www.lisaboyer.com Tom used an Arduino microcontroller to control the period of the pendulum instead of using a bob.

Kit contents, as dumped out of bag.

 

Testing out the USBtinyISP AVR programmer from Adafruit Industries.

 

Read more here.

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format.

 

The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board.

 

A technical description of the setup as well as downloads of the model and the code can be found here: postapocalypticresearchinstitute.wordpress.com/2012/07/18...

Testing out the USBtinyISP AVR programmer from Adafruit Industries.

 

Read more here.

ATtiny4313-PU, on a '2313 Target board

 

The 4313 has landed!

This is a binary clock that was built into a 3d-printed case created in Minecraft. It shows the current time in a binary coded decimal format.

 

The model was exported with the free tool Mineways and printed on a Zprinter 650 3d-printer, with a block size of 125mm^3 (so every block has an edge length of 5mm). After printing, LEDs were glued into the case after filing the openings a bit wider. Then, the LEDs were soldered to form a 4x4 LED matrix, and the matrix was connected to an Arduino board.

 

A technical description of the setup as well as downloads of the model and the code can be found here: postapocalypticresearchinstitute.wordpress.com/2012/07/18...

The USBtinyISP AVR programmer from Adafruit Industries, hooked up to a minimalist AVR

target board powered by a battery box.

 

Read more here.

1st generation prototype with vacuum fluorescent display

Here's what it looks like after putting it all together.

 

Testing out the USBtinyISP AVR programmer from Adafruit Industries.

 

Read more here.

An easy atmel programmer bodged from an ICSP programmer, an Arduino clone, and a ZIF socket. Because it was arduino compatible, it functions as a test-bed after programming.

 

spiffie.org/electronics/archives/microcontrollers/A High-Volume Atmega Arduino Programmer and Tester.html

1 2 ••• 4 5 7 9 10 ••• 79 80