Output Devices
Assignment 9 - Fab Academy Barcelona
This week I:
Overview
In class we were introduced to a wide array of output devices, with a specific focus on motors.
Dev Board with XIAO Esp32s3 Sense
To work with output devices, I designed a dev board using the XIAO Esp32s3 sense to work with haptics. This seemed ideal for eventually integrating with my final project - it can easily integrate with haptics, the distance sensor, and a camera should I choose to add that (the XIAO esp32s3 Sense comes with a camera and mic that can snap directly onto the MCU itself). I also designed it with a shield so I could switch out for the Esp32c3 if needed (given it's a bit cheaper and I may not use the video camera for the fimal project design). I had to troubleshoot a bit putting the board together as the Neopixel LED footprint I used for the design did not match the footprint of the Neopixel we had in the lab. I had to hack a bit with wires to get the board working.
SCHEMATIC
PCB Design
Design Files
Haptic Output
I then programmed the board to make a haptic motor vibrate. As my final project will use haptics, this was an important learning towards that goal as well. I created a simple blink program in Arduino, using ChatGPT to help write the initial blink program. Once I got the board working (see above), getting the code to run was simple and didn't require any real debugging or problem solving.
Haptic Motor Blink Code
const int motor_pin = D10;
void setup() {
// put your setup code here, to run once:
pinMode(motor_pin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(motor_pin, HIGH); // turn the motor on
delay(1000); // wait for a second
digitalWrite(motor_pin, LOW); // turn the motor off
delay(1000); // wait for a second
}
Final Product - Working Haptic
Group Work
The group work can be found here. We tested and characterized an LED and a Pololu geared motor.