Code Craft – Embedding C++: Templates

The language C++ is big. There is no doubting that. One reason C++ is big is to allow flexibility in the technique used to solve a problem. If you have a really small system you can stick to procedural code encapsulated by classes. A project with a number of similar but slightly different entities might be best addressed through inheritance and polymorphism.

A third technique is using generics, which are implemented in C++ using templates. Templates have some similarities with #define macros but they are a great deal safer. The compiler does not see the code inserted by a macro until after it has been inserted into the source. If the code is bad the error messages can be very confusing since all the developer sees is the macro name. A template is checked for basic syntax errors by the compiler when it is first seen, and again later when the code is instantiated. That first step eliminates a lot of confusion since error messages appear at the location of the problem.

Continue reading “Code Craft – Embedding C++: Templates”

Maker Barn Organizer Creates Makerspace Access Control System

The MakerBarn is a new makerspace between The Woodlands and Tomball, TX (north of Houston). [George Carlson], one of the founders and a retired design engineer, wanted to make sure only members certified on a machine could use it. He worked with [Kolja Windeler] to create the MACS or Makerspace Access Control System. He has one video explaining MACS and, after the break, another explaining the browser based user interface for the system.

20151205_181615A control box, [George] calls them stations, controls the power to a machine. Member badges have an RFID tag that is read when inserted into the station’s reader. If the member is authorized to use the machine, the power is enabled. For safety, the member’s badge must remain in the reader to maintain power. The reader uses a Photon board from Particle with a WiFi link to a Raspberry Pi server.

[Kolja] developed a Pi system to maintain a database of member numbers and the machines they can use. The list is sent to the stations periodically or when updates occur. The user interface is browser based on the MakerBarn’s LAN so it can be maintained by a computer or smartphone in the space. Presently 21 MACS modules have been built with some going to Hanover University in Germany for their auto hobby shop.

Not only did [George] lead the effort on creating MACS but has been key to getting the construction done inside a pole barn to make the MakerBarn a reality.

Continue reading “Maker Barn Organizer Creates Makerspace Access Control System”

Which SD Card To Use In A Pi?

There is surprising variation in the performance of SD cards. They are not all created equal and the differences can impact the running of your Raspberry Pi, no matter which model. [Jeff Geerling] wondered exactly how different cards would affect system performance. He ran a number of tests on cards ranging from cheap no-names to well-known brand names. The no-name cards fared pretty badly but even among the brand names there is considerable variation.

microsd-cards-all-tested-raspberry-pi

[Matt] over at Raspberry Pi Spy also tested SD cards and found similar differences. Both tested microSD cards. [Jeff’s] tests were solely on the Pi while [Matt’s] were on Windows 7, Ubuntu, and a Pi.

The discussions in the blog about what to measure were as interesting as the actual results. That lead to determining which software tools to use for the measurement. For example, a system doing a lot of small database reads and writes might work better with one SD card while a system storing and then streaming videos might work better with another card. Another interesting result is that the Pi’s data bus greatly limits the access speeds. [Jeff] measured much higher speeds running the same tests using a Mac with a USB dongle. The cards are capable of much more than the Pi can deliver.

[Matt] also checked the capacity of the SD cards. There are a lot of fakes floating around marked with higher capacities than they actually support. Even getting a brand name card may not help since some are counterfeit. So beware: if the price it too good to be true, it very well may be.

A Sound And LED-tastic Tricycle Shopping Cart

What do you get when you take a massive number of LEDs and combine them with a shopping cart and a bicycle? An awesome rave-mobile created by [kramerr]. He’s even taking it one step further by making the electronics solar powered.

[Kramerr] controls the LEDs with multiple WS2803 LED drivers. Three PIC18F4550s control the WS2803s over SPI. He devised a neat way of exciting the LEDs from music by using a pair of graphic equalizer display filter chips, MSGEQ7s, to drive the PICs to create patterns. A USB input also allows the PICs to display song titles or other information.

leds and boards

The mechanical design is as impressive as the electronics. The rear half of a bicycle is welded to the frame of the shopping cart with the cart’s handle used for steering. The shopping cart’s rear wheels are replaced by small bicycle wheels.

But [Kramerr] wasn’t done. He built his own solar panel since he couldn’t find one to fit the size requirements. The panel consists of 26 cells connected in series to provide 1A at 13V on a sunny day. A solar charge controller keeps a standard 12v lead acid battery ready to power the tricycle cart.

And there is still more! There is a sound system driven by a Raspberry Pi. The Pi also drives the USB inputs when [Krameer] wants to display song titles or artists instead of the audio patterns.

There are at least four hacks in this project each worthy of applause. [Karmeer] deserves an ovation for doing all of them in one project. If you are looking for less bling and less pedaling may we direct you to this powered, riding shopping cart.

Some rave music and lights via video after the break.

Continue reading “A Sound And LED-tastic Tricycle Shopping Cart”

Swapping GPIO Pins On The Pi Zero For Audio

The new Raspberry Pi Zero is generating a lot of discussion, especially along the lines of “why didn’t they include…?” One specific complaint has been that audio is only available through the HDMI port. That’s not entirely true as pointed out by Lady Ada over at Adafruit.

Something to remember about the entire Pi family is the pins on the Broadcom processors are multipurpose. Does it increase the confusion or the capabilities? Take your pick. But the key benefit is that different pins can handle the same purpose. For audio the Greater Than Zero Pis (GTZPi) use PWM0_OUT and PWM1_OUT on the processor’s GPIO pins 40 and 45. On the GRZPis these feed a diode, resistor and capacitor network that ends at the audio output jack. They don’t appear on the GPIO connector so cannot be used on the Zero.

The multi-pin, multi-purpose capability of the Broadcom processor allows you to switch PWM0_OUT to GPIO 18 and PWM1_OUT to GPIO 13 or 19. Add the network from the Adafruit note, or check this schematic from the Raspberry Pi site – look at the lower right on the second page.

raspberry_pi_audiofilter

While you’re checking out the audio hack at Adafruit, read through the entirety of Introducing the Raspberry Pi Zero. Lady Ada provides a great description of the Zero and what is needed to start using it.

If you’re looking for Zero hacking ideas you might check the comments in our announcement about the Zero or article on the first hack we received. There is a lot of grist for the hacking mill in them.

AirAsia Crash Analysis: Who Or What Failed?

Just a few days after Christmas last year AirAsia Flight 8051 traveling to Singapore tragically plummeted into the sea. Indonesia completed its investigation of the crash and just released the final report. Media coverage, especially in Asia is big. The stories are headlined by pilot error but,as technologists, there are lessons to be learned deeper in the report.

The Airbus A320 is a fly-by-wire system meaning there are no mechanical linkages between the pilots and the control surfaces. Everything is electronic and most of a flight is under automatic control. Unfortunately, this also means pilots don’t spend much time actually flying a plane, possibly less than a minute, according to one report.

Here’s the scenario laid out by the Indonesian report: A rudder travel limit computer system alarmed four times. The pilots cleared the alarms following normal procedures. After the fifth alarm, the plane rolled beyond 45 degrees, climbed rapidly, stalled, and fell.

Continue reading “AirAsia Crash Analysis: Who Or What Failed?”

4 Port USB, Raspberry Pi Zero Piggy-Back Hack

[Frederick] decided his new Zero needed a USB hub. He noticed a small, on hand, USB hub was the same size as the Zero. As any good hacker would, he stripped it from its case to piggy-back it onto the Zero. What’s with the piggy-backing since we just saw that with another Zero hack that added a WiFi dongle? Is it something in the water? Nah, probably just a natural fit with the mini-sized Zero.

It certainly helps that the USB and power pads on the back of the Zero are available and of a good size to accept direct, soldered wire connections. The USB connections on the hub were a little more tricky. The wires were soldered to the surface mount pins of the mini-B connector. But [Frederick] managed to get that done, also.

A nice advantage of this hack is that a couple of soldered jumper wires let the Zero draw power from the hub’s wall-wart, eliminating one cable from those needed to work with the Pi. Using hot glue for strain relief on the wiring is a nice touch. To keep the boards from shorting he put a piece of foam between them and help them together with elastic bands. Simple and easy.