Can an Arduino board switch between sending data between an nRF24L01+ and Bluetooth?
I'm investigating a project that needs to send a small amount of data via nRF24L01+ from a go kart to a "ground station", every 45-60 seconds. Then when the vehicle returns, i'd like to download a larger quantity of previously logged data over Bluetooth.
The kart will be lapping in an open area, not more than a few hundred meters away.
The sending of data (lap time & sector times (up to 3)) from the nRF24L01+ will be triggered by a hall effect or reed switch, when it passes the start/finish line.
The sending of data via Bluetooth will be triggered by a button when it returns to the pits. This data will include time/GPS position/velocity/air temp/humidity every 0.1/0.2 seconds. This data is stored on a SD Card linked to the Arduino board, which is wiped clean after a successful transfer.
Any advice would be appreciated, as i'm totally in the dark on where to start... thank you.
For the project, which Arduino board would be best suited? Uno Rev3 with Bluetooth, or Mega?
I forgot to add, that i'd like to be able to send messages/operate maybe 3 LED's remotely on the kart dashboard too, to provide information to the driver while on track.....
TBH, range for the nRF24L01+ is probably <50m, as the pits are located next to the track. Can the "pit base station" keep trying to send the data until it receives a received response from the nRF on the kart, ie: when it goes past me?
Ideally, i'd like the option of "talking" to the driver, at any point on the circuit. If nRF24 is the wrong communication option, can you help to provide advice on the right components/boards to use?
The plan is to start simple, ie just sending "live" lap/sector times, then scale up to the data logging download & pit-to-driver communication. I want to make sure that the Arduino board i start with is capable from the start.
Forgot to add that there will also be a small 480x320 display on the kart, which will show lap/sector times etc...
I'm a design engineer, not hardware/software engineer, hence the reach out to the experts.
Previously worked for a UK based multi-championship winning enduro kart team & single seaters (up to F3) many years ago.....
I'm sure that there is scope for a low-cost arduino based system that could be made available to everyone.....
Hello tg7384
I have read your specification.
As basic design I recommend using an Arduino Nano, an SD card shield and an HC12 radio module.
An intelligent and correct data transfer protocol has to be developed too.
Have a nice day and enjoy coding in C++.
Дайте миру шанс!
Not sure about the "UNO Rev3" but the UNO/ Mega 2560 form factor is really clumsy for any project unless there is a matching "shield" that performs all the interfacing for you.
As @paulpaulson mentions, the Nano is far more practical.
The antennas you will use are critical to your project. Particularly for the moving antenna. You need to test that communication BEFORE you finalize the design of your system. At the frequencies you are contemplating, you will find all kind of reflections and multipath distortions.
All, thank you for your valued time & informative responses.
Taking a look at the Nano board, there doesn't seem to be enough pins for everything i need.... looks like a Mega is the only option.
Just in case you think differently, here is a list of bits i need....
RTC
Neo-6M GPS (this comes with RTC, so can delete separate RTC?)
DHT-11 temp/humidity sensor
SD Card
HC-12 transceiver with different antenna (SMA)
Large-ish LCD/TFT (480x320 or bigger)
Power button
Message received button (driver to press) - prefer this to be separate, so can be positioned closer to drivers hands/fingers.
Hall effect/reed switch (to pickup magnetic strips on track)
3 tri-colour LED's
Bluetooth (nearly forgot this one!)
I'm not to bothered about moving to a Mega board, as it will be located underneath the front number panel (in front of the steering wheel).
Only the display/LEDs/buttons will be mounted on the steering wheel, so that unit could be quite compact, depending on the size of screen. Obviously, there will be cables that need routing to the main unit, but this shouldn't be a problem.
I've been researching the HC-12 unit, doesn't look like there are any libraries required, please correct me if i'm wrong?
I've been trawling the internet to try to find a round display for the Arduino, but only found this 3.4" one for the Raspberry Pi.... (DM-TFTR34-359). The old question of which board is better? Arduino vs Pi?
I don't really want to have a "thick" shield beneath the screen, as there is a regulation that the display must not protrude more than 20mm from the top surface of the steering wheel plane.
Could use a square display with round bezel....?
The idea is that when the driver passes a sector - it displays in green/red, whether or not he/she is quicker/slower (0.24). The S1 area border remains green/red, then moves to the 2nd sector (with the pointer moving with it)... Obviously, this will need to be flexible if no sector times on track.
Previous lap time is in the centre.
Delta vs quickest rolling lap is underneath. Again green/red colouring.
Couple of "buttons" at the bottom to access menu/switch display mode. Could also include icons for HC-12 / Bluetooth connection status....
What do you think, too complicated, or doable? Any advice/comments would be appreciated.
While I appreciate everyone’s valued responses, there is one question that I’m struggling to get an answer too…. That is basically which MCU I should use.
The project scope has changed a little, as I’m now moving to a gps based system, which gives more flexibility in adding sector times, but obviously slightly more complex on the coding side of things. There are plenty of projects out there that seem to do something similar.
My question is, if I need to write parsed gps data at 10hz to an sd card, while outputting the lap time/delta/speed on a screen, what.MCU is best to do this? I’m obviously looking to make the form factor as small as possible, sitting behind the screen on the steering wheel.