Skip to content

Project Development

Time Management

Firstly, we had a zoom call with our instructorr and divided the amount of work into catagories,

plan

Then, I had a one on one with my local instructor and made a check list as well

amount of work

After all the planing, I made proper timetable with Ghant charts to have it better sorted.

ghant chart

Cardboard prototype

We were assigned to make a prototype so we have a clearer vission of what we want to make, with where the components go and the size of the model.This was my prototype(without the wheels for now, because I think I will use plastic wheels from a toy, or a building kit)

cb p

These are the measurements for this model

measure

This is the plan I have for where to place the components

components

After building this prototype, my whole idea of my project changed. I got a clearer idea of what I wanted to make and the measurements. I ended up changing the shape and placement of my components as well. After making this, I feel like my prokect is more relistic and possible. It feels like I made progress and actually managed to take a step forward (of course with a lot of help from the others.)

This is the 3-d design of my project(you can see the layout changed quite a lot) I left the holes in the design to show a clearer view of how it’ll look.

The placement of the components are: - The head will hols a seperate circuit board with the 2 matrix displays and the esp32 camera. - The neck will be hollow to connect the display circuit board’s wires. - The ultrasonic sensor will pop out of the main body. - The battery will have a seperate case that I can access from the bottom to cahnge it, or charge it.

Design and Fabrication

I started by making the design and planning for the bottom of the robot. I already tryed out the matrix displays, and the ultrasonic so I decided that its about time I did the moter test.

Heres a car set we had in our lab, This was a project another student worked on one time, so the picture bellow is a model of it fully working

First enclosure

car

From this set, I will be using the wheels, the ball caster and the design of the base.

wheels

base

After making this though, I realised that if i wanted to laser cut the body, than the curvs on the base probably wouldnt be a good idea.

I also had some diffulicity figuring out how I should keep the neck connected to the body and the head. While discusing some of this issues, it occured to me theat the neck isn’t really a required component, so I removed the neck from my design and made the new one like this.

bunnybody

YES: - The head will be somewhat merged inside the body - The Ears to make it look more like a creature.

MAYBE: - Covering the wheels

NO: - The tail and the legs in the front

After making the layout of that design, this was the first design I made for the body part

body

Than as for the head, at first I was planing to make the head with a lid, but the first one I printed was for my earlier design plan, which I did end up changing.

matrixmatrix

The lid worked pretty well, but I think I needed to add a lock so that the lid won’t fall off.

lid

Heres the new head.

head1

While printing this head, I was told I could also make it press fit instead, because the shape is quite simple, so I made a press fit design as well.

Head2

Here are the results !

Electronic Test

Matrix Display Test

The first component I’ll be needing for my project id the matrix display so for the eyes of the bot. While testing and learning about this component, I was able to change up and make a few different animations!

heart

eye

The code for the blinking eye is from chatgpt.

#include <LedControl.h>

// DIN = 12, CLK = 11, CS = 10
LedControl lc = LedControl(12, 11, 10, 1);
byte eyeOpen[8] = {
  B01111110,
  B10000001,
  B10000001,
  B10111101,
  B10111101,
  B10000001,
  B10000001,
  B01111110
};

// Half-closed eye (top lid coming down) (vertical flipped)
byte eyeHalfClosed1[8] = {
 B00001110,
  B00110010,
  B01000010,
  B01111110,
  B01111110,
  B01000010,
  B00110010,
  B00001110
};

// Closed eye (vertical flipped)
byte eyeClosed[8] = {
  B00011000,
  B00011000,
  B00011000,
  B00011000,
  B00011000,
  B00011000,
  B00011000,
  B00011000
};

// Half-closed eye (bottom lid going up) (vertical flipped)
byte eyeHalfClosed2[8] = {
  B00001110,
  B00110010,
  B01000010,
  B01111110,
  B01111110,
  B01000010,
  B00110010,
  B00001110
};
void setup() {
  lc.shutdown(0, false);       
  lc.setIntensity(0, 8);       
  lc.clearDisplay(0);          
}

void loop() {
  displayFrame(eyeOpen);
  delay(6000);

  displayFrame(eyeHalfClosed1);
  delay(500);

  displayFrame(eyeClosed);
  delay(1000);

  displayFrame(eyeHalfClosed2);
  delay(500);
}

void displayFrame(byte frame[8]) {
  for (int i = 0; i < 8; i++) {
    lc.setRow(0, i, frame[i]);
  }
}

Ultrasonic Test

MCB Board

System Intergation


Last update: May 17, 2025