Introduction: NFC Card Controlled Remote Car

This is a remote control car. Not controlled by ubiquitous remotes, like joystick, but a set of NFC cards. That makes it a challenge to rational thinking. Want it run smoother and faster? That depends on how you design the commands set it executes.
Fundamentally this is a project based on Shield Bot, a starter platform for robot beginner. It’s a shield, so it runs as long as you stack it onto an Arduino.
I found some NFC cards from nowhere. And I divided them into two groups, num cards and command cards. Each command card represents an action, like “GO AHEAD”, and each num card records a number that determines how far the action goes.
Here is an obstacle avoiding game we design for this car. What happens when a car meets a turtle? Find the answer in the video.
Now come on and follow me to make one yourself!

Step 1: Material Preparation

All materials used are available modules and shields, so no soldering work involved in this project. The whole project consists of two parts: a car and a remote. The remote can read information from NFC cards and send them to Shield Bot via infrared emitter. So all parts are listed below:
1. Seeeduino x 2
2. NFC Shield
3. Grove – Base Shield
4. Energy Shield
5. Lipo battery
6. Grove – Infrared Emitter
7. Grove – Buzzer
8. Grove – Infrared Receiver

Step 2: Hardware Installation

Nothing complicated, let’s hook things up.
Follow the instructions below to build up the remote:
Grove – Buzzer  -->  A0 on Base Shield
Grove – Infrared Emitter  --> D3
Base Shield  -->  Seeeduino
The only modules that needs to be added to the Shield Bot is a Grove – Infrared Receiver. Plug it into the I2C port on the Shield Bot and that’s it.

Step 3: Cards Design

All cards fall into two groups, command cards and num cards, like pic 1.

Code used in this project has been uploaded to Github. Find it here:
Open Arduino IDE, Follow the path: File --> Preferences, then the dialog in pic 2 will pop up:

Confirm that the “Sketchbook location” is the location you store the code from Github. Click “OK” to close the dialog. Reopen Arduino IDE, find sketch we need via: File --> Sketchbook --> uart_write_card, like pic 3.

Upload this sketch to the Seeeduino used in the remote. Now open a serial tool to test if the sketch run correctly. Put the card “GO AHEAD” near the antenna of NFC shield. Enter “1” in the serial tool, and send it out, like pic 4.

Just it, we finish the setting job of “GO AHEAD” card. And can move on to the next card.
Why we write “1” into it? Actually we don’t need to write the whole command into a card. All we need is separate them from each other and left the switching job to the Shield Bot. So as long as we program the Shield Bot to execute the action “GO AHEAD” when it receives command “1”, then it’s ok.
Here is a table illustrates the relationship of the content of NFC card and command.

Step 4: Upload the Codes

There are two sketches you need to upload to Seeeduinos you used.
You can find the sketch for remote via: File -> Sketchbook -> demo. Upload it after you find it.
In the same way, you can find the sketch for remote via: File -> Sketchbook -> ShieldBot, upload it to the Seeeduino used in the Shield bot.

Step 5: Come and Play

If nothing runs wrong, all the things you need are on your table now. If you want the car to go ahead 40cm, read the “num 40” card first, and read the “GO AHEAD” card. You will hear a beep if the reading succeeds. Then build some obstacles for your car and try who can achieve the END first.

Microcontroller Contest

Participated in the
Microcontroller Contest