Final Project

This is the page for describe my final project: Cultural Memory Globe

About My Final Project: Cultural Memory Globe

I love traveling. Why? It is because I like to feel the difference of each unique local nature, culture, and people’s lives of each places. These days we can learn differences between different areas of the earth through the internet or SNS, and feels as if we know about it. However, once I visit the place actually, I really understand what is the place like. Through the final project, I would like to create something make you feel uniqueness of each places and cultural graduation of the world. This would be also nice to record my travel memories with actual feeling.

First Sketch

This is my first sketch of the device.



Features

Basically, this device consists of 2 parts: globe and base. When you choose the country on the globe, the device will project the photos/videos of the country, and also, if possible, it shows the temperature of the place with LEDs or heat.

Basic Function

  • INPUT : Tap a country you want
  • OUTPUT :project the photos/videos of the country/change temperature of the device
  • Surface Material (Globe): Not decided(Glass or metal?)
  • Surface Material (Base): Wood

Planning

Then, I made plan for each week (Just in case my job get too much busy).
# M D Class Plan
1 Jan 22 principles and practices, presentations, introductionsproject management Finish my rough sketch
2 29 computer-aided design Model the device
3 Feb 05 computer-controlled cutting Try to make/think about base part
4 12 embedded programming Try to program the function of tap and glow
5 19 3D scanning and printing Try to make inside of the device / print out glove part
6 26 electronics design design the electronics of the device
7 Mar 05 computer-controlled machining - (Make something big)
8 12 electronics production Cut/print the electronics of the device
9 19 input devices Try to make sensor parts
10 26 output devices Try to make speaker/projector parts
11 Apr 02 networking and communications Try to make signals between globe part and base part
12 09 mechanical designmachine design - (group assignment week)
13 23 molding and casting Try to create a mold for casting the globe
14 30 interface and application programming Try to make app which can add/manage photos
15 May 07 system integration Try to make it integrated
16 14 wildcard week Try to cast the globe part with (possibly) glass?
17 21 applications and implications,project development -
18 28 invention, intellectual property, and income -
19 Jun 06 weekly assignments deadline -
09- final project presentations -

Week 2 : 3D Modeling

In week 2, I tried modeling of the device. First, I mage a rough sketch for modeling.



Then, I model it as follows:

  1. Think and design overall structure of the device with Tinker Cad
  2. Modeling for ‘Globe’ part with Blender
  3. Modeling for ‘Base’ part with Fusion
  4. Combine Globe and Base in Blender

Tinker Cad
‘Globe’ part modeling with Blender
‘Base’ part modeling with Fusion
Combine Globe and Base in Blender

For the details, please see Week2 Computer-Aided Design page.

Week 6 : Consider the configuration of the processor and peripherals

This week I searched about possible processors/microcontroller and configurations.

Board ESP32 Seeed Studio XIAO ESP32S3 Seeed Studio Xiao ESP32C3 Seeed Studio XIAO ESP32C6 Arduino Nano Raspberry Pi Zero W (Projection)
Microcomputer ESP32 ESP32S3 ESP32C3 ESP32C6 ATmega328P RP3A0
Datasheet esp32_datasheet_en.pdf esp32-s3_datasheet.pdf esp32-c3_datasheet_en.pdf esp32-c6_datasheet_en.pdf A000005-datasheet.pdf https://www.raspberrypi.com/products/raspberry-pi-zero-w/

Final configuration plan at this point

During the Lab session, I was advised that if touch + projection is required, the following configuration example would be good. As expected, a Raspberry Pi is required instead of a microcontroller to project videos.

Application Microcontroller Input Output
Touch input detection xiao
(RP2040 or ESP32)
step response
(need to decide numbers)
-
Projection Raspberry Pi - projector
(need to be chosen)

Week 9 : Consider how to input

For this week, I try out various types of touch sensors.

  1. Processor (xiao ESP32S3)
  2. 1 pin with Resistor (xiao RP2040)
  3. 2 pin (xiao RP2040)
  4. MPR121 (xiao ESP32C3)
Results

The results for xiao ESP32S3 are as follows:

Pin Figure
T1 28600
T2 27500
T3 32000
T7 30700
T8 29100

The results for 1 pin with Resistor are as follows:
Horizontal: Length of wire × Vertical: Size of resistor
*I couldn't figure out the N/A part very well.

No wire(board direct) 25cm(thick) 25cm(0.2㎜²)
1 100k 7500-15000 500 200
2 100k ~15000 1000 200
3 1M N/A N/A N/A
4 1M ~10000 6-700 400
5 2M 8000~20000 N/A 500

For the details, please see Week9 Input Device page.

Week 10 : LED for lightning

For this week, I try to use Neopixels to light up the sphere.
First I connected it to the S3 and tested it.
It worked fine at first, but then it stopped working, so I used the C3 to test different ways of lighting it up.
I also thought about how to display it.

1000012759.jpg
1000012758.jpg
1000012765.jpg

For the details, please see Week10 Output Device page.

Week 11 : Try wifi connection / communicate with Raspberry Pi

For this week, I tried some communication especially for FP:
1. Use xiao ESP32C3 as WiFi server
2. Communicate with Raspberry Pi with I2C
3. Projection test for Raspberry

NeoPixel - On/off with browser

I tried to turn on and off NeoPixel from the browser. I made it from ”SimpleWiFiServer” test code and the code I made last week for NeoPixel.
Code is on week 11 page

It worked!

1000012930.jpg

However, the NeoPixel were lighting up a little strangely. This will need to be adjusted if I use it finally.

2.I2C - Raspberry Pi(Master)-ESP32C3(Slave)

In the Final Project, I want to use a Raspberry Pi for projection, so I tried communicating with Raspberry Pi.
Load the slave code into Xiao. I used the code provided by Maki-san. (code is on week 11 page)
Check the connection with “i2c detect” command

image.jpg

Make master code into python (helped by Tsuchiya-san). The behavior differed slightly depending on the library, and it was difficult to get it to respond properly, but after adjusting various things, I was able to get it to work well with the following code.

image.jpg
image.jpg
1000013015.jpg

Testing video processing capabilities by version

I sent video data to Raspberry Pi and did a playback test.
Raspberry Pi Zero → Not smooth
Raspberry Pi 3 → Somewhat not smooth
Raspberry Pi 4 → OK
Raspberry Pi 5 → Super smooth

1000012982.jpg

For the details, please see Week11 Networking and Communications page.