Posts Tagged ‘Microcontrollers’

Atmega328 + 3-axial Accelerometer + XBee

October 8, 2011 2 comments

I’m adding this custom Atmel-based wireless sensing node equipped with an Atmega328, ADXL335 3-axial accelerometer and Digi’s XBee. The board can be flashed with an Arduino bootloader and programmed just like another Duemilanove or Pro. In terms of Arduino, this is a combined Arduino Pro, XBee shield and a third sensor board. The size of the board is a tiny 2.00″ x 2.15″. It’s DFM.


Microchip Joins Arduino’s Bandwagon: Welcome chipKIT MAX32

September 27, 2011 Leave a comment

Microchip is very much into the fast prototyping ball game. In fact, years earlier than the introduction of the Arduino prototyping boards, Microchip’s PIC line of microcontrollers had already established its own prototyping setup. If Arduino had its Arduino IDE, PIC had MPLAB years back. However, Arduino’s magic comes from the opensource community that gave birth to Arduino-based hardware and software libraries development. Naturally as signaled by the two Arduino-compatible boards with 32-bit PICs, Microchip wants in.

Figure 1.0. Microchip’s chipKIT MAX32

Figure 1.1. Microchip’s chipKIT UNO32

To make it Arduino compatible, they edited the Arduino IDE, which now supports these two new Arduinos as well as backwards compatible with all other Arduinos. The chipKIT Arduinos are tested to run properly with the example codes available with the IDE.

Now to the tech specs:

1) For the MAX32

  • Microchip® PIC32MX795F512 processor
    • 80 Mhz 32-bit MIPS
    • 512K Flash, 128K RAM
    • USB 2.0 OTG controller
    • 10/100 Ethernet MAC
    • Dual CAN controllers
  • Provides additional memory and advanced communications peripherals
  • Compatible with Arduino IDE and libraries
  • Can also be programmed using Microchip’s MPLAB (along with a PICkit 3 or 6-pin header)
  • Arduino Mega form factor
  • Compatible with Arduino shields
  • 83 available I/O
  • User LED

2) And the UNO32

  • Microchip® PIC32MX320F128 processor
    • 80 Mhz 32-bit MIPS
    • 128K Flash, 16K SRAM
  • Compatible with existing Arduino™ code examples, reference materials and other resources
  • Can also be programmed using Microchip’s MPLAB® IDE (along with a PICkit 3 and our PICkit3 Programming Cable Kit, seen below)
  • Arduino™ “Uno” form factor
  • Compatible with Arduino™ shields
  • 42 available I/O
  • User LED
  • Connects to a PC using a USB A -> mini B cable (not included)

This is something worth looking into as well considering 32-bit microcontrollers at 80 MHz coming at US$50 for the MAX32 and US$27 for the UNO32, which is the same range for the 16 MHz, 8-bit for the Arduino MEGA and UNO respectively. Looks like a winner if it’s a complete Arduino. Let’s see how the Due will be introduced into the game later this year: Arduino IDE or Linux or RTOS? One thing’s for sure, rapid prototyping with higher processing power is becoming a common commodity with these new boards.

I’d better get my hands on these boards soon. 😀

Arduino goes ARM

September 25, 2011 Leave a comment

A new member will be added to the roster of Arduino boards this year. This time it’s their biggest brother ever and it’s based on ARM Cortex M3 and two others in the same line, the Leonardo and the Wifi.

Arduino Due

The Arduino Due is running on the Atmega SAM3u 32-bit ARM-based microcontroller clocked up to 96 MHz. It has 256 KB of flash memory and 50 KB of RAM (SRAM, to be precise), five SPI buses, two I2C interfaces, five serial ports, 16 12-bit analog inputs and lots more. The downside though goes with the 3.3-volts that powers the Due. This deviates from already existing 5-volt shields.

Quoting the Arduino blog:

“Instead of just releasing the finished platform we are opening the process to the community early on. We’re going to be demoing the board and be giving away some boards to a select group of developers who will be invited to shape the platform while it’s being created. After Maker Faire, we will begin selling a small batch of Developer Edition boards on the Arduino store (store.arduino,cc) for members of the community who want to join the development effort. We plan a final and tested release by the end of 2011.”

There remains room for the question on running Linux on the ARM-based Arduino since that is the case for example with the Beagleboard. Will there be another IDE like tool chain, etc.? A newer platform that rivals with the upcoming Due is the Raspberry Pi, which definitely runs Linux on its ARM-based design.

As for the Leonardo, this is said to be a lightweight, low-cost version of the Uno. And the Wifi is just an opensource version of existing Wifi shields. It will be the mother of all existing Wifi shields in terms of backwards compatibility.

So I followed the line

September 25, 2011 Leave a comment

It’s always good to see state-of-the-art related work prior to building something. Although the line-follower is a remake project, I don’t want to just redo all the work I did before without peaking into what roboteers 7 years later have done. There are lot’s out there but I chose one really cool video an yet to be tuned PID-based design.

This is a really compact design with front and rear sensors. What’s interesting is the dual drive motor design it has. Oh, and it’s motor chassis is CNC milled custom.

Of course, at the end of the day what I am thinking of is what kind of application will be suitable for such a line sensitive robot. It seems to me that this thing can be used as an automated floor cleaner or wax applier or vacuum cleaner that can easily be incorporated into floor patterns say in restaurants, theme parks and yes even malls. The fact that customers see robots cleaning up the place makes the place an attraction. Maybe more later.

What do I have so far?

September 25, 2011 Leave a comment

I have worked with several  since my college years. My first robot was a  that was outfitted with sensors to follow a black line printed on white tarpaulin race track. I had several versions of that line-follower. The first one was based on an 8-bit microcontroller, the . They are the sponsor for an annual robot competition. Back in 2003, we were using this . Burn it and that’s it.

You are probably asking how do we optimize or test our hardware with the software we load on an OTP. The answer is it depends on whether you placed variable inputs such as switches on digital ports or ADC ports probing  values or none at all. Clearly, if the software was designed without any appropriations for variable inputs then the controller will be fixed and therefore a candidate for a push pin on your cork board when it fails to do your design task. So that’s as far as you can get with OTPs. If you want to test software prior to burning it on the chip, there is an emulator that will act as the . The drawback here is that your mobile robot needs to be connected to the emulator board by some long cabling. The cabling usually interferes with the mobility of the robot.

At that time neither  nor  microcontrollers were not yet available to us. So I worked on an analog negative feedback control version of that robot. That was easier to tweak. Also, back then as an undergraduate, use of op-amps and comparators were quite fresh from our electronics classes. So the analog version worked well completing the track even though it wiggles much. This thing though does not recognize cross tracks. Will need a microcontroller for that.

The next robot I have and am still working on is a quad rotor . My goal is to make it autonomous and fly a camera and take shots. Right now, it is controlled using fly-by-radio with attitude assists and accurate motor and rigid body models. Also, the quad rotor is a property of the university I studied in so I will be working on something new soon to continue my work.

On my next posts on the line follower, I will try to put together something similar to the robot back in 2003 only this time incorporating PID and motion kinematics for good state estimation.

On my next posts on the UAV, I will try to recreate the work that I have done and let’s see when we will be able to reach the autonomous flight goal.

Right now, the applications I have in mind for such robots are  and  trucks. In hindsight, the sensor suite on the UAV is quite robust and can be used for  and . Let’s see what else these two robots can do.