DIY Talking Explorer Map: A Touch-Sensor World Map Robotics Project for Kids

DIY Talking Explorer Map: A Touch-Sensor World Map Robotics Project for Kids
Beginner robotics · Ages 8–14 with an adult

Build a Talking Explorer Map

Touch a country with your finger, and your map speaks! It plays a fact out loud and shows the country's name and capital on a little screen. Here's exactly how to build one, wire it, and code it — from scratch.

⏱️ 1 weekend project 🔧 Beginner friendly 🔊 Sound + screen 🌍 8 countries

Real skills, disguised as a fun build

This project quietly teaches a bunch of skills while you're busy having fun with tape, wires, and geography.

🧠 Basic coding ⚡ Circuits & wiring 🖐️ Touch sensors 🔊 Sound playback 🗺️ World geography 🛠️ Problem solving

Grab a grown-up for this one

This build uses a soldering iron (hot!) and small parts that aren't for little siblings' mouths. Build it with an adult, keep the soldering iron on its stand when not in use, and work in a space with good airflow.

What you'll need

Most of these parts are cheap and easy to find at an electronics hobby shop or online. You don't need all 8 countries — start with 4 if you want a shorter build.

x1
Arduino Uno the project's brain
x8
TTP223 touch sensor modules one per country
x1 roll
Copper foil tape makes the touch pads
x1
DFPlayer Mini MP3 module plays the audio clips
x1
Small 8Ω speaker 1–3 watt is plenty
x1
microSD card (under 32GB) holds your audio files
x1
16x2 I2C LCD screen shows country + capital
1
Large world map poster laminated if possible
1
Foam board or thin plywood the map's backing
~20
Jumper wires male-to-female + male-to-male
1
USB cable + 5V/2A power adapter for power once it's unplugged from a computer
1
Soldering iron + solder for a few secure joints

How does touching a map make it talk?

Your finger carries a tiny electrical charge. A copper patch shaped like a country can "feel" that charge the moment you touch it — no button-pressing needed. Here's the chain of events, from your fingertip to the sound coming out of the speaker.

Your Touch on copper tape Touch Sensor TTP223 module Arduino Brain "That's Brazil! Go!" Speaker plays the fact aloud LCD Screen shows the details
Signal flow: finger → copper pad → touch sensor → Arduino → speaker + screen

The circuit diagram

Here's the full wiring picture. Don't worry — the table underneath spells out every single connection so you can't get lost.

Arduino Uno the control board D2–D9 · 10 · 11 · A4 · A5 8x Touch Sensors one behind each country patch TTP223 #1 → USA → D2 TTP223 #2 → Brazil → D3 TTP223 #3 → Egypt → D4 TTP223 #4 → France → D5 TTP223 #5 → India → D6 TTP223 #6 → China → D7 TTP223 #7 → Australia → D8 TTP223 #8 → Japan → D9 Sound: DFPlayer Mini RX → D11 · TX → D10 + small speaker on SPK pins Screen: 16x2 I2C LCD SDA → A4 · SCL → A5 BRAZIL / BRASILIA Shared Power Rail 5V & GND from Arduino (or a 5V/2A adapter once unplugged) — every module's VCC and GND connect here Sound wiring Screen wiring Touch sensor wiring
Big picture wiring: touch sensors on the left, sound + screen on the right, all sharing one power rail.

Exact pin connections

PartPin on partConnects to Arduino
Touch sensor #1–8VCC5V rail
Touch sensor #1–8GNDGND rail
Touch sensor #1–8SIG (out)D2, D3, D4, D5, D6, D7, D8, D9
DFPlayer MiniVCC / GND5V rail / GND rail
DFPlayer MiniRXD11 (through a 1kΩ resistor)
DFPlayer MiniTXD10
DFPlayer MiniSPK_1 / SPK_2Speaker + and −
LCD (I2C)VCC / GND5V rail / GND rail
LCD (I2C)SDAA4
LCD (I2C)SCLA5

Step-by-step assembly

1

Choose your countries and prep the map

Pick 8 countries spread across different continents — it makes for a more interesting map. Mount your world map poster onto a piece of foam board or thin plywood using spray adhesive or glue, and let it dry flat under a heavy book overnight.

2

Cut and stick the copper touch pads

Cut small strips or shapes of copper foil tape and stick one onto each country you chose. Press firmly so it sticks well — this patch is what your finger will actually touch.

  • Leave a little copper "tail" that reaches to the back of the board through a small poked hole
3

Wire each touch sensor

Behind the board, connect each copper tail to the SIG pad of one TTP223 touch sensor module using a short jumper wire or a soldered joint. Connect every sensor's VCC and GND to your shared power rail.

4

Connect the sensors to the Arduino

Run a wire from each sensor's SIG output to its own digital pin on the Arduino: D2 through D9, one per country, following the pin table above.

5

Wire the sound module and speaker

Connect the DFPlayer Mini's RX and TX pins to the Arduino as shown in the circuit diagram, then attach your small speaker to the DFPlayer's SPK pins. Slide in the microSD card once it has your audio files loaded (next step).

6

Record and load your country audio clips

Record (or find) an 8–15 second fact for each country. Name the files 0001.mp3, 0002.mp3, and so on, matching the track order used in the code below, then copy them onto the microSD card.

7

Wire the display and upload the code

Connect the I2C LCD's SDA and SCL pins to A4 and A5. Install the required libraries in the Arduino IDE, then upload the sketch from the next section.

8

Test every country, then mount it all

Touch each copper patch one at a time and confirm the right fact plays and the right text shows up. Once everything checks out, tuck the wiring neatly behind the board and close up the back panel.

The Arduino code

First, install two libraries from the Arduino IDE's Library Manager: DFRobotDFPlayerMini and LiquidCrystal_I2C. Then paste in this sketch.

Arduino sketchexplorer_map.ino
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int NUM_COUNTRIES = 8;
const int touchPins[NUM_COUNTRIES] = {2, 3, 4, 5, 6, 7, 8, 9};

struct Country {
  const char* name;
  const char* capital;
  const char* funFact;
  int trackNumber; // matches 0001.mp3, 0002.mp3 ...
};

Country countries[NUM_COUNTRIES] = {
  {"USA",       "Washington D.C.", "Home of the Grand Canyon!",     1},
  {"Brazil",    "Brasilia",        "The Amazon Rainforest is here!",2},
  {"Egypt",     "Cairo",           "Land of ancient pyramids!",     3},
  {"France",    "Paris",           "The Eiffel Tower lives here!",  4},
  {"India",     "New Delhi",       "Birthplace of chess!",          5},
  {"China",     "Beijing",         "Home of the Great Wall!",       6},
  {"Australia", "Canberra",        "Kangaroos hop free here!",      7},
  {"Japan",     "Tokyo",           "Land of the Rising Sun!",       8}
};

int lastTouched = -1;
unsigned long lastTouchTime = 0;
const unsigned long debounceDelay = 800; // ms, avoids repeat triggers

void setup() {
  Serial.begin(9600);
  mySoftwareSerial.begin(9600);

  for (int i = 0; i < NUM_COUNTRIES; i++) {
    pinMode(touchPins[i], INPUT);
  }

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Explorer Map");
  lcd.setCursor(0, 1);
  lcd.print("Touch a country!");

  if (!myDFPlayer.begin(mySoftwareSerial)) {
    Serial.println("DFPlayer not found - check wiring and SD card.");
  }
  myDFPlayer.volume(20); // 0 to 30
}

void loop() {
  for (int i = 0; i < NUM_COUNTRIES; i++) {
    if (digitalRead(touchPins[i]) == HIGH) {
      bool isNewTouch = (i != lastTouched) ||
                         (millis() - lastTouchTime > debounceDelay);
      if (isNewTouch) {
        playCountry(i);
        lastTouched = i;
        lastTouchTime = millis();
      }
    }
  }
}

void playCountry(int index) {
  Country c = countries[index];

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(c.name);
  lcd.setCursor(0, 1);
  lcd.print(c.capital);

  myDFPlayer.play(c.trackNumber);

  Serial.print("Touched: ");
  Serial.println(c.name);
  Serial.println(c.funFact);
}

Want to add more countries? Add a row to the countries array, plug in a new touch sensor, and give it its own digital pin — just remember the Arduino Uno only has so many free pins, so past 10–12 sensors you'll want an analog multiplexer chip like a CD74HC4067.

Quick troubleshooting

ProblemLikely fix
Nothing happens when touchedCheck the copper tape is really touching the sensor's SIG pad, and that GND is shared across all parts.
Wrong country playsDouble-check the digital pin number matches the order in the countries array.
No sound at allConfirm the microSD card is formatted FAT32 and files are named 0001.mp3, 0002.mp3, etc.
Screen shows nothingTry a different I2C address (0x3F is common too) and check SDA/SCL wiring.
Touch triggers on its ownMove wires away from each other — long unshielded wires can pick up noise.

Try the map before you build it

Tap a country below to see exactly what your finished map will do.

Explorer Map
Touch a country!

🔊 On the real build, the speaker plays a voice clip at the same moment this screen updates.

Level-up ideas

💡 Add an LED under each country 🎮 Build a "guess the flag" quiz mode 🌐 Add a whole new continent of countries 🎙️ Record facts in a second language 📦 3D print a wall-mount frame

Frequently asked questions

Do I need to know how to code already?

No. The code in this guide is ready to paste in and upload as-is. You'll only need to edit the country names, facts, and pin numbers if you customize it.

Can I use a different microcontroller, like an ESP32?

Yes. An ESP32 works too and gives you extra pins plus Wi-Fi for future upgrades. The wiring logic stays the same; you'll just adjust pin numbers to match the ESP32's layout.

Why copper tape instead of just a push button?

Copper tape lets the whole country shape be "clickable," not just one small button, which feels far more magical when you touch anywhere inside a country's borders.

Can I use cardboard instead of foam board or plywood?

Yes, cardboard works fine for a first prototype. Foam board or plywood just holds up better over time and feels sturdier for repeated touching.

How many countries can this handle?

An Arduino Uno comfortably handles 8–10 touch sensors on its own digital pins. For more countries, add an analog multiplexer chip or step up to a board with more pins, like an Arduino Mega.

You just built a talking map

That's touch sensing, audio playback, a live display, and real code, all working together on something you can hang on your wall. Nice work, explorer.

🗺️ Project Complete
Build it, break it, fix it, improve it — that's what robotics is all about.

Comments

Product Cards
Buddy Bot eBook
⭐ New 2026 Release
Build Your
Own Robot!
3D design, wiring &
Arduino coding.
Young inventors love it!
🖨️
3D Print
All parts
Wire it
Circuit guide
💻
Code it
Arduino IDE
🤖
Watch it
Walk & react
📋 Your Details
Enter your name
Valid 10-digit no.
Enter a valid email
Special Website Offer
₹499 300
🌍 International: $5 USD
One-time · Instant digital delivery
🔒 Secured by Razorpay · Your data is safe
📄 Download Free Sample Copy
🔒 Secured by Razorpay · Your data is safe
🍓
Raspberry Pi Pico Mastery
21 Projects
⚡ Launch Price — 80% OFF
Learn Pico
Build 21 Projects!
MicroPython · Wokwi
IoT · Certificate
Perfect for beginners!
🖥️
Wokwi
No hardware
🐍
MicroPy
From zero
🔨
21 Projects
IoT + sensors
📄
Certificate
Verified cert
📋 Your Details
Enter your name
Valid 10-digit no.
Enter a valid email
Special Launch Offer
₹999 200 80% OFF
🌍 International: $5 USD
One-time · Lifetime access · No subscription
🔒 Secured by Razorpay · UPI · Cards · NetBanking
🎉

You're in!

Payment successful! Your Buddy Bot eBook is ready. Time to build!

📖 Access Your eBook Now
🎉

Enrolled!

Payment successful! Lifetime access to all 21 Pico Projects is yours!

🍓 Go to My Course