1

I'm planning a project where I'd like to control an RC car with Arduino and an Esp8266 module.

A software running on a computer would read the input from an USB analog controller and send the data to the Esp8266 module through the wifi network, and the Arduino would read this data and send signal to the ports accordingly.

What I'd like to know is: would ping/delay be an issue? Considering a dedicated wifi network for this, so the only devices connected to it would be the computer and the Esp8266 module.

I need to know what is the average response time of the Esp8266 module before I buy it, because if it is too high I'll think of something else since for this project I'd need a reasonably high response time.

  • we can't say what your "average response time" will be, because it depends on your physical environment and how many other wifi devices you are surrounded by that are on (or close to) the channel you choose. My opinion is, as you are only using the ESP as a serial-to-wifi bridge, there are better devices you can attach to an arduino for radio communication - although this would make the (sending) computer side more complicated – Jaromanda X Jun 22 '16 at 23:07
3

I'm pretty sure it can be made to work.
I have a home server with several devices attached to it, including 2 ESP8266 modules - one at home and one in my office. All devices connect using permanent TCP connection and respond to my custom "ping" requests over that connection. Typical round-trip response times are bellow 50ms and often bellow 10ms. There are occasional "hickups" of 100+ms, but they are rare and could be a result many factors. Note that these 2 ESPs are programmed in Lua, which is not optimal efficiency - I was just lazy and the tasks they do are simple enough to not matter.
Most probably if you start an HTTP server on the ESP and bombard it with HTTP requests every time you move the joystick it would be horribly laggy. But with a plain old TCP connection or even a consistent flow of UDP packets I'm pretty sure you will get good results.
Also, I would ditch the Arduino and use only the ESP - you should have no problem controlling two motors (most probably via motor driver board or chip) and perhaps a servo from the ESP directly. This would eliminate the additional lag of serial communication and parsing the serial data. It would also reduce the cost and size of the project.
Having that said, other solutions, like bluetooth or even RF modules should also work, but you asked whether the ESP can do it - and my answer is yes.

  • It was a bit tricky since both answers were stating two different things. I'm going to accept yours because the TCP connection hint was a big help. My module is coming this week, so I'm finally going to be able to test it out. Unfortunately bluetooth is out of the question, since I need analog input for the speed control, and bluetooth analog controllers are quite pricey. – Gus Jul 17 '16 at 23:43
3

I think response time would be a big problem. I used the ESP8266 with a temperature and humidity sensor, complete with a small web server on the ESP8266, and it works fine. But I wouldn't want to control an RC car with it. But if you buy it on ebay from China, it is only a few dollars, so buy one anyway.

Use Bluetooth, either a couple of HC-05 modules, or the Bluetooth Low Energy HM-10 modules. Both can communicate at 115200 baud. The HM-10 modules may be a bit tricky, because some Chinese sellers put a stripped down version of firmware on the module, and forces you to search online how to flash a usable firmware version.

0

If you use websocket it will have a really good response time.

It is a test about it: https://www.youtube.com/watch?v=8ISbmQTbjDI

I use it for a quadcopter controller.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.