Posts with «steering» label

Handheld Steering Wheel Controller Gets Force-Feedback

For a full-fledged, bells-and-whistles driving simulator a number of unique human interface devices are needed, from pedals and shifters to the steering wheel. These steering wheels often have force feedback, with a small motor inside that can provide resistance to a user’s input that feels the same way that a steering wheel on a real car would. Inexpensive or small joysticks often omit this feature, but [Jason] has figured out a way to bring this to even the smallest game controllers.

The mechanism at the center of his controller is a DC motor out of an inkjet printer. Inkjet printers have a lot of these motors paired with rotary encoders for precision control, which is exactly what is needed here. A rotary encoder can determine the precise position of the controller’s wheel, and the motor can provide an appropriate resistive force depending on what is going on in the game. The motors out of a printer aren’t plug-and-play, though. They also need an H-bridge so they can get driven in either direction, and the entire mechanism is connected to an Arduino in the base of the controller to easily communicate with a computer over USB.

In testing the controller does behave like its larger, more expensive cousins, providing feedback to the driver and showing that it’s ready for one’s racing game of choice. It’s an excellent project for those who are space-constrained or who like to game on the go, but if you have more space available you might also want to check out [Jason]’s larger version built from a power drill instead parts from an inkjet.

Full Self-Driving, on a Budget

Self-driving is currently the Holy Grail in the automotive world, with a number of companies racing to build general-purpose autonomous vehicles that can get from point A to point B with no user input. While no one has brought one to market yet, at least one has promised this feature and had customers pay for it, but continually moved the goalposts for delivery due to how challenging this problem turns out to be. But it doesn’t need to be that hard or expensive to solve, at least in some situations.

The situation in question is driving on a single stretch of highway, and only focuses on steering, so it doesn’t handle the accelerator or brake pedal input. The highway is driven normally, using a webcam to take images of the route and an Arduino to capture data about the steering angle. The idea here is that with enough training the Arduino could eventually steer the car. But first some math needs to happen on the training data since the steering wheel is almost always not turning the car, so the Arduino knows that actual steering events aren’t just statistical anomalies. After the training, the system does a surprisingly good job at “driving” based on this data, and does it on a budget not much larger than laptop, microcontroller, and webcam.

Admittedly, this project was a proof-of-concept to investigate machine learning, neural networks, and other statistical algorithms used in these sorts of systems, and doesn’t actually drive any cars on any roadways. Even the creator says he wouldn’t trust it himself, but that he was pleasantly surprised by the results of such a simple system. It could also be expanded out to handle brake and accelerator pedals with separate neural networks as well. It’s not our first budget-friendly self-driving system, either. This one makes it happen with the enormous computing resources of a single Android smartphone.

Need help with a steering algorithm...

 

This may be more of a general programming question than arduino specific; I guess the principles apply to all programming languages.

read more