While the cost of a hobby-grade remote control transmitter has dropped significantly over the last decade or so, even the basic models are still relatively expensive. It’s not such a big deal if you only need to get one for personal use, but for a school to outfit a classroom’s worth of students their own radios, they’d need to have a serious STEM budget.
Which is why [Miharix], himself an educator with a decade of experience, developed a project that leverages the ESP8266 to create affordable RC vehicles that can be controlled with a smartphone’s web browser. There’s a bit of irony at play since the smartphones are more expensive than the RC transmitters would have been; but with more and more school-age kids having their own mobile devices, it takes the cost burden off of the educators. Depending on the age of the students, the teacher would only need to keep a couple of burner phones on hand for student that doesn’t have a device of their own.
In its fully realized form, the project uses an open hardware board that allows standard RC hobby servos to be connected to the GPIO pins of a ESP-12E module. But if you don’t want to go through the trouble of building the custom hardware, you could put something similar together with an ESP development board. From there it’s just a matter of installing the firmware, which starts up a server providing a touch-based controller interface that’s perfect for a smartphone’s screen.
Since the ESP8266 pops up as an Access Point that client devices can connect to, you don’t even need to have an existing network in place. Or Internet access, for that matter. [Miharix] says that in tests, the range between a common smartphone and the ESP8266 is approximately 85 meters (260 feet), which should be more than enough to get the job done.
In the videos after the break you can see this system being used with an RC car and boat, though the only limit to what you could control with this project is your own imagination.
“There’s a bit of irony at play since the smartphones are more expensive than the RC transmitters would have been; ”
I seriously doubt that you can buy a half-decent RC transmitter for the price of a cheap-but-capable Android phone. :) I mean, you can buy an Android 6.1 smartphone like the Alcatel PIXI 4 for something like 30 euro (probably $30 in the US). It has a browser and WiFi, right?
Replying to myself. :) Only issue with WiFi that I see, is it’s limited range.
you can also buy toys that include remote control for that money. The dedicated transmitters you can buy separately are expensive due to the requirements they have, otherwise a basic on could be made very cheap.
I agree. Especially if aimed at students, why not use a microbit?
My budget was 15€/kid (6 grade) for whole year, so they could build something.
I wanted that they build motivated, something interesting and learn as much as possible.
Main topic for 6 grade in our country is “plastics”.
Using this module every kid has build https://www.youtube.com/watch?v=Dyh35Py1Qf0
They learned “thermic bending plastic”, “pressure forming”, “vacuum forming”, “thermic glue”, “chemical bonding plastic”, “drilling plastic”, “cutting plastic”, “recycle”, “soldering”, “polarity”, “wifi != internet LOL”, “IP”, “RC”, “servos” and drawing basic documentation.
And if some wanted he /she could learn how to control using PC(python) or flash the module.
Also before this module I also hade some “Teacher I would like to build(not buy!) something RC, how much does it cost? So much? My parents wont alow it. But building something without RC is boring!”
Yes, toys are now cheap and cheap prices drop kids motivation to build something themselves.
They say “Teacher, why should I learn to build if I can buy it cheaper?”
I really think this was a great way to teach the kids. Well done!
The point is that many of these kids will be coming to school with $500+ iPhones.
You could always use a 10 dollar raspberry pi zero w with a cheap small touch screen to control it as well
Yes you could. In my case it would be over budget (other material+electronic&tax and shipping because larger order)
Also, for those kids with Android phones, it would be easy to get control via the phone’s accelerometer using the free coding tool for Android called ‘DroidScript’. It has ready made sample code for detecting the ’tilt’ of the phone and you can use the JavaScript ‘fetch’ or xmlhttprequest object to communicate with the ESP over WiFi. Some of the nice built-in; multi-touch samples for controlling Lego NXT could be easily converted too.
You don’t, realty don’t want to install 100 kids on X different phones some App, especial if you wrote it.
That is nightmare guarantied (some phones are locket, explain parents, compatibility).
As additional controlling option or additional lecture yes, as primary control I really would not recommend.
Also I think Chrome browser now does support reading accelerometer over JS but newer tried to implement it.
Yeah, well I wouldn’t try it with ALL the kids… half of them will have iPhones anyway, but usually there a few brighter ones that want to take things a bit (or a lot) further and that App would allow them to explore further possibilities. It’s generally easier to use than html/CSS etc too. You can use the GPS, Bluetooth, stream video and do motion and face detection too. Lot’s of possibilities. Maybe strap the phone to the RC car/buggy and make a Mars rover type thing or robot that drives towards faces or certain colours 🙂
I did something similar last year, also with an ESP8266 via WiFi. Unfortunately I didn’t add any “runaway protection” for when the RC car got out of range while on full throttle…
No damage done, but the chickens sure got scared.
Same here a few years ago. Hosted a simple page with controls, using ‘websockets’.
Runaway protection was simply using the socket with an acknowledgement packet.
I used the 03 variant of the esp8266, allowing for a higher gain antenna.
What’s nice here is the whole execution – practically a drop-in replacement!
just stop your motor when you have gone a period of time without receiving an update packet.
I realize that wifi is going to have some latency. But, I’d be curious to see how much latency compared to an actual RC controller is there. Could be the next controller alternative for all things hobby RC if it isn’t too much for planes, quads,vtols, helis.
There are already drones that can be controlled directly from the phone. I would not expect the latency to be more than a few ms. It might matter for competitive stuff, but regular use probably not.
One of our kids got a cheap drone controlled via phone years ago as a gift. Just as gaming with a touchscreen (except for point-and-click style games) is awkward and uncomfortable, so too drone control with a touchscreen is awkward since you can’t locate the controls by touch. It should be fine for a school project, though.
I can’t speak to WiFi latency but the latency of the RFM69 transceivers in the Moteino is about 18 ms round-trip, so < 10 ms (100 Hz) one-way.
[Miharix] here. Well the latency is surprisingly low, I newer noticed any delay while using. Probably it would need to be a fast model to notice it at all. Don’t know how to easy and precise measure the latency… because there is some math done in browser.
What is notcitable to old RC folks like me, is the lack of physical joysticks. Few weeks ago I found out that some simple “joystick” for mobile gaming exist. I ordered some under name “Q8 Plus Mobile Phone Joystick”, still waiting them to arrive. If they work I’ll make update in github and post a video.
Kids, that hand not have previous RC experience didn’t notice the lack of joysticks.
Local RC friend is building small forklifter around my module to show off his skills to customers, because he likes how portable is compared to regular RC transmitter.
I did some really raw throughput tests awhile back while driving LED animations. Laptop sends a packet, webserver on ESP8266 receives & updates LEDs, replies “ok”, laptop sends next update. I got just under 60 “FPS” which would be 16ms round trip, unoptimized. Every so often there’d be a little hiccup and the latency would spike to a few hundred ms.
I think a simple usb or bluetooth gamepad, like an xbox 360 (usb) or xbox one (usb or Bluetooth for newer models) might also be possible through an android phone, using the HTML5 Gamepad API
Newbie here ~ it should be possible to put several of these around the property and pre-program a course for doing regular rounds to check the place out (and scare the chickens) ;-) , yes?
Check out the Ardu Pilot project https://ardupilot.org/ . I have not used it, but might do what you want.
An optional whip antenna connection would be great.
[Miharix] here. Yes, it would extend the range especially on boat models where you want the antenna to be high as possible.
I did try to upload to ESP8266-07, unfortunately 07 has less rom, so the code would need to be optimized more.
If I see more people using the code in their models I’ll find a way to fit it to 07 version
This week I received this thing: https://www.aliexpress.com/item/1005001500576714.html
“Q8 Plus Mobile Phone Joystick For Smartphone Mini Touch Screen Joystick Cell Phone Screen Control For Tablet Game Joystick TXTB1”
Mixed feelings… it is a lot better tactical feedback, but the travel range is a looot smaller.
So I’m more precise driving without these, but after lifting the finger is easier to find it back.
But, I’m not sure how to easily program(html+css) exact dimensions of virtual knobs to make those Joysticks work the same on all phones(screen resolution + dimensions).