Instructables user [Roboro] had a Mad Catz Xbox steering wheel controller he hasn’t had much use for of late, so he decided to hack and use it as a controller for a robot instead.
Conceivably, you could use any RC car, but [Roboro] is reusing one he used for a robot sumo competition a few years back. Cracking open the controller revealed a warren of wires that were — surprise, surprise — grouped and labelled, making for a far less painful hacking process. Of course, [Roboro] is only using the Xbox button for power, the player-two LED to show the connection status, the wheel, and the pedals, but knowing which wires are which might come in handy later.
An Arduino Uno in the wheel and a Nano in the robot are connected via CC41-A Bluetooth modules which — despite having less functionality than the HM10 module they’re cloned from — perform admirably. A bit of code and integration of a SN754410 H-bridge motor driver — the Arduino doesn’t supply enough current to [Roboro]’s robot’s motors — and the little robot’s ready for its test drive.
[Roboro]’s suggested improvements are servo steering for the robot, upgrading to the HM10 module, more sensors to take advantage of the other buttons on the wheel, and a camera — because who doesn’t love some good ol’ fashioned FPV racing?
Sometimes — despite impracticality, safety, failure, and general good sense — one has an urge to see a project through for the sake of it. When you’re sick of buttering your toast every morning, you might take a leaf out of Rick Sandc– ahem, [William Osman]’s book and build a toast-bot to take care of the task for you.
[Osman] — opting for nail the overkill quotient — is using a reciprocating saw motor to hold the butter while the toast moves underneath the apparatus on a platform controlled by a linear stepper motor. The frame and mounts for Toast-Bot were cut out of wood on his home-built laser cutter — affectionately named Retina Smelter 9000′ — and assembled after some frustration and application of zip-ties. The final result DOES butter toast, but — well — see for yourself.
Despite working with only margerine-al (sorry!) success from a practical standpoint — equally inclined to shred or butter — we are inclined to chalk this up as a win regardless. A robot doesn’t always need to be perfect to prove that it can be done — especially if it does the job in a deliberately comedic fashion.
The Raspberry Pi often makes the world a better place. This time, it’s helping to test 3D-printed stents using a smart stent-testing robot.
Stents are small tubes used to prop open a patient’s airway. They keep people alive, so it’s incredibly important they don’t fail.
In fact, the FDA (Food and Drug Administration) requires testing of each design by compressing it over 300,000 times. That’s a sturdy challenge for any human, which is why machines are normally used to mash up the stents.
The usual stent-destroying machines are dumb clamps, with no idea whether the stent is breaking or not.
A smarter stent-testing robot
Enter the Stent-Testing Robot, an intelligent arm that mashes stents while a Raspberry Pi Camera Module keeps a sharp eye on how it performs.
It’s designed by Henry J. Feldman, Chief Information Architect at Harvard Medical Faculty Physicians.
“We start with a CT scan of the lungs, and via a 3D reconstruction get the size and shape of the bronchus that we wish to stent open,” explains Henry. “The trick is to make it the exact shape of the airway.”
The challenge with testing is if stents start to fail before the end of the test. The dumb devices currently used continue to pulverise the stent when this happens.
Machine vision to control stent-testing
The Raspberry Pi, meanwhile, uses machine vision to stop the mashing at the moment of failure.
The instant-stop approach enables Henry’s team to check which part failed, and view a time-lapse leading up to the failure. The video helps them design more reliable stents in the future.
Naturally, we turned to the Raspberry Pi, since, along with a servo control HAT, it gave us easy OpenCV integration along with the ability to control a Hitec HS-5665MH servo. We also added an Adafruit 16-channel Servo/PWM HAT. The servo controls a ServoCity Parallel Gripper A.
Python was used to write the servo controller application. The program fires off a separate OpenCV thread to process each image.
Henry and his medical team trained the machine learning system to spot failing stents, and outlined the likely points of failure with a black marker.
Each time the gripper released, the robot took a picture with the Pi Camera Module and performed recognition of the coloured circles via OpenCV. If the black marker had a split or was no longer visible, the robot halted its test.
The test was successful:
While the OpenCV could occasionally get fooled, it was remarkably accurate, and given this was done on an academic budget, the Raspberry Pi gave us high-performance multi-core capabilities for very little money.
Encouraged by the continued success of the original MeArm kit, a pocket-sized robot arm that quickly became one of the most successful of its kind for budding Raspberry Pi enthusiasts, the Bens (Gray and Pirt) are back with a new Kickstarter project: the MeArm Pi.
The Kickstarter video for the MeArm Pi – check it out at http://mime.co.uk/r/mearm-pi-kickstarter
Here’s Ben Gray with more:
The original MeArm project was designed to be simple and open source, requiring just three ingredients: servo motors, screws, and the laser cut parts. This allowed the design to spread around the world, quickly appearing on every continent except Antarctica! It was massively successful, and is still popular. Children loved it, but we could see that many parents were scared by the complexity of the build.
We’ve tried to keep the workings of the MeArm as straightforward as possible. The servos are driven directly from the GPIO pins. The joysticks use an I2C ADC to communicate directly with the Raspberry Pi. There’s an on-board RGB LED, driven directly from the GPIO pins, so that if you want to play around with it, you can. We’ve found that the standard 2A Raspberry Pi power supplies work without any issues, but if you’re plugging more things in you might consider using the 2.5A supply. The HAT has a micro USB power input, so the same power supply will power both the arm and the Raspberry Pi. The HAT follows the reference design for Raspberry Pi HATs. We’ve written a Node.js app to perform a few key tasks, including controlling the servos in the arm via the GPIO pins, and reading the state of the joysticks via the ADC. It’s all open source. We’ll continue to develop the library, adding new features based on your feedback.
We think this is a great kit for anyone wanting to step into the world of digital making, regardless of their age or experience. We’re not alone: the Kickstarter backing target was met, and doubled, in just a few days. If you’re interested in learning more about the MeArm Pi, visit the Kickstarter page. The campaign will run until March 8th.
Transistors versus MOSFETs: both have their obvious niches. FETs are great for relatively high power applications because they have such a low on-resistance, but transistors are often easier to drive from low voltage microcontrollers because all they require is a current. It’s uncanny, though, how often we find ourselves in the middle between these extremes. What we’d really love is a part that has the virtues of both.
The ask in today’s Ask Hackaday is for your favorite part that fills a particular gap: a MOSFET device that’s able to move a handful of amps of low-voltage current without losing too much to heat, that is still drivable from a 3.3 V microcontroller, with bonus points for PWM ability at a frequency above human hearing. Imagine driving a moderately robust small DC robot motor forwards with a microcontroller, all running on a LiPo — a simple application that doesn’t need a full motor driver IC, but requires a high-efficiency, moderate current, and low-voltage-logic compatible transistor. If you’ve been here and done that, what did you use?
Years ago, the obvious answer to this dilemma would be TIP120 or similar bipolar junction transistor (BJT) — and a lot more batteries. The beauty of old-school Darlington transistors in low-voltage circuits is that the microcontroller only needs to produce a small current to push relatively large currents on the business end. With BJTs, as long as you can get over the base-emitter junction voltage (typically under one or two volts) you just pick the right base resistor and you’re set. This is in contrast to FETs of the day which require a given voltage to pass a current through them. Gate voltages for the big FETs are optimized for the 4-5 V range which is lousy if you all you have is a LiPo battery.
While the power Darlington is easy to drive, it has a few drawbacks. First is the voltage drop through the device when it’s conducting. Drop one or two volts on the transistor and you’ve pretty quickly got a few watts of power going to waste and a hot chip. And that’s assuming that you’ve got the voltage drop to spare — a volt or two off of the 3.6 V on a LiPo battery pack is a serious loss.
With apologies to [Adam Fabio], the BJT is off the list here. It’s easy to drive at low voltages, so it would work, but it won’t work well because of stupid quantum mechanics.
MOSFETs should be great for driving small motors, on paper. They have incredibly low on-resistances, easily in the milliohms, and they can turn on and off fast enough that the PWM will be efficient and noiseless. The flaw is that garden-variety power MOSFETS, for driving big loads, tend to have similarly large gate threshold voltages, which is a showstopper for low-voltage circuits. What can we do?
If the motor were being driven by a higher-voltage source, and you were switching the MOSFET on the low side, then you can use the motor’s power supply to drive the MOSFET, switching it on and off with whatever is handy — a small-signal BJT is just about perfect here. That’s the classic solution, illustrated here. As long as the motor voltage is high enough to fully open the MOSFET, you can just use that for the switching voltage.
In the actual application that spurred this column, I wanted to use a LiPo cell for the motor and the logic, but I ended up doing something ridiculous. I started off with a go-to MOSFET from my 5 V logic days, the IRF530, but it barely turns on at 3.3 V. So I cobbled on a 9 V battery to provide the switching voltage — purely to drive the MOSFET into full conduction. This 9 V “high” voltage is switched by a 2N2222 small-signal BJT and seems to do the job just fine. It works, but it’s a horrible hack; I wanted to drive everything off the LiPo, and failed.
Big power MOSFETs, in addition to having a higher gate voltage, also have some capacitance that needs to be overcome to turn them on and off. Between the fully-on and fully-off states, they get hot, so it’s important to push enough current into the gate fast enough that they transition quickly. Thus, big power MOSFET circuits use a gate driver circuit to drive them. A low-voltage gate driver, paired with my IRF530, would certainly be an option here. But all this just for a medium-sized DC motor? Seems like overkill.
Once we embrace complexity, there are small H-bridge and push-pull driver ICs that might fit the bill, and they’ve naturally got MOSFETs inside. Now that I think about it, I’ve built small-motor H-bridges from N/P complementary pair MOSFET chips in the past, and they work for low voltages. Somewhere in my pile I have some IRF7307s that will just barely do the job. I’d be ignoring one of the two paired FETs, but who cares?
Taking the next step in IC complexity, the various stepper-motor driver ICs can usually push and pull an amp or two, and operate on low voltages. You could conceivably drive a DC motor off of one phase of a stepper controller, but that just seems wasteful. But something like (half of) a TB6612 would work.
On the other hand, the fact that these various gate-driver, H-bridge, and stepper controller ICs can handle the currents I want with low logic voltage thresholds suggests that there should be at least a few monolithic, and cheaper, MOSFETs that can switch a few amps around on low voltages. Where are they hiding?
So what would you do when you need to push up to two amps DC in one direction at LiPo battery voltages, with low loss, driven (potentially by PWM) from a 3.3 V microcontroller? Feel free to take this as a guideline, and deviate wherever you’d like from the spec if it brings up an interesting solution.
Whatever you do, don’t give me current figures out of a datasheet headline that are based on microsecond pulses, only to find out that it’s outside of the part’s DC safe operating area. I’ve been down that road before! It never ceases to amaze me how they design parts that are rated for 100 A at 10 microseconds that can only handle 300 mA steady state.
This has to be a common hacker use case. Does anyone have the MOSFET I’m looking for? Or do you all just use motor driver ICs or tack random 9 V batteries into your projects? (Ugh!)
To really bring R2-D2 to life, I knew I had to do some great sturff with electronics. I started with a Taranis X9D controller and a pair of X8R receivers configured for a full 16-channels. I chose this platform mainly for its versatility, but also because I wanted to have separate control of the head and body with one remote controller (so the head can spin a full 360 degrees without tangling the wires).