Atmel’s AtmelStudio version 7 allows you to import Arduino sketches and debug them. This brings the Arduino into the realm of a professional design engineer tool.
Last week the printed circuit board for the Disco Bike Light project arrived. This allowed me to move from my breadboard prototype circuit to the actual “form-factor” design. If you’re not sure what the Disco Bike Light project is you can look through some of my older blog posts (here’s my last post). The short story is that I wanted to design a flashy, fun, multicolor bike light using an existing bike light’s enclosure.
In last week’s blog I talked about looking into using an accelerometer output as a user interface for the Disco Bike Light design. This week I took the next step of actually implementing a method of detecting taps with an accelerometer and using them as an on-off signal.
For a quick refresher, the Disco Bike Light is a design where I’ve decided to replace the guts of a Schwinn bike light with my own electronics. I wanted more color and more brightness. I put some constraints on myself for the design. One was that I couldn’t destroy the existing bike light in the process of making my new one. For on/off/color control I was left with few options…
Welcome to another edition of “Disco Bike Light: adventures in electronic design”. In last week’s blog I talked a little about the printed-circuit-board (PCB) design and the Lithium battery charging circuit. This week I’ll touch more on the circuit board, and a little bit on the user interface.
I’m in the process of adding the BM017 Color Sensor to our web site. This breakout module is based on the TCS34725 by AMS (formerly Taos). You can use it to detect red, green, blue, and clear color values from object in front of the sensor. I covered basic use of the sensor in my post Sensing Color with the Arduino and the TCS34725. The code I use here builds on that blog post.
I was interested in writing some Arduino code that would use the BM017 to sense colors and then use the readings to drive an RGB LED. The goal was to place a color in front of the sensor and have the RGB LED turn the same color. It turns out this is pretty easy to do, but there are a couple of “gotchas”.
NFC is used for short range exchanges of data. It can be used to read and write to smart cards and to interface with parasitically powered EEPROM. One interesting application of NFC is the post production programming of variables into electronic assemblies. You could, for example, program a set of variables into a motion control module by waving a NFC master unit over an EEPROM located on an unpowered board, and adjust the EEPROM contents.
PID motor control with an Arduino can be accomplished using simple firmware. In this example we use our Firstbot Arduino-Compatible controller to implement a PID based position controller using analog feedback and a potentiometer for control. This is similar in operation to a hobby servo, but the potentiometer provides the control signal instead of a pulse from a receiver (and of course you are using a motor, not an RC servo).
We’re about to put into production an Arduino compatible robot controller. The design carries two microcontrollers. The first is Atmel’s ATmega328. This controller is loaded with the Arduino open-source bootloader. That means you can interface to it, and load programs, like any other Arduino. The second microcontroller is a Microchip PIC16F1829. It’s loaded with an open-source C program that matches our BM011 dual motor quad servo controller. We’re calling the product the Firstbot, since it’s a great platform to develop your first robot on.
Initially I don’t think we’ll sell it with the connectors installed (to keep the cost down). We might have an add-on packet that includes 0.1” male and female headers. The male headers are shown in the image above. The design has 2 DC motor controllers that can carry 1A continuous and 5A peak (5-28V). There are 4 servo input channels allowing you to connect it to an RC receiver. There are also 4 servo output channels, allowing you to drive 4 RC servos. The motor control firmware is open-source and written using Microchip’s XC8 compiler. There’s a small connector for a 0.05” spacing header that can be used with an adapter board to connect a PICKit3 to the board, and customize the motor controller.
Single unit pricing will be ballpark $30. Available in the next few weeks.
Mixing RC transmitter signals for robot drive control is easy with out BM011 Dual Motor Quad Servo Controller. This is a design we’ve been working on for a bit, and the test software and microcontroller firmware are ready to release. This is a completely open source hardware design. The BM011 can be used to control two DC motors, can output 4 0.5mS-2.5mS pulses for driving RC servos, and read up to 4 servo channels. Files should be available on our web site within a couple of weeks.