moose-mousse - Electronic Moose
Electronic Moose

Helloooo! I am Moose! They/Them/He/Him I am a embedded software engineer with autism, depression and anxiaty ( Wooo! ). I post about... whatever I want... software things, mental health things... whatever I feel like Feel very wellcome to send me asks about... anything that strikes your fancy :3

266 posts

It Works!*

It works!*

So I (FINALLY) put the final touches on the software for my robot PROTO! (Listen, I am a software person, not a coming-up-with-names person)

It Works!*

Basically, it is a ESP32 running him. He takes HTTP messages. Either GET odometry, or PUT twist. Both just being a string containing comma separated numbers

Odometry is the robots best guess based on internal sensors where it is (Since PROTO uses stepper motors, which rotates in tiny tiny steps... it is basically counting the steps each motor takes)

Twist is speed, both in x,y and z directions, and speed in angular directions (pitch, roll and yaw). This is used to tell the robot how to move

It Works!*

Now, since PROTO is a robot on two wheels, with a third free-running ball ahead of him, he cannot slide to the side, or go straight up in the air. You can TRY telling him to do that, but he will not understand what you mean. Same with angular movement. PROTO can turn left or right, but he have no clue what you mean if you tell him to bend forward, or roll over.

The software is layered (Which I use a BDD diagram to plan. I love diagrams!)

It Works!*

Basically PROTO gets a twist command and hands that over to the Differential_Movement_Model layer.

The Differential_Movement_Model layer translate that to linear momentum (how much to move forward and backwards) and angular momentum (how much to turn left or right). combines them, and orders each wheel to move so and so fast via the Stepper_Motors layer.

The Stepper_Motors turns the wanted speed, into how many steps each stepper motor will have to do per second, and makes sure that the wanted speed can be achieved by the motors. It also makes sure that the wheels turn the right way, no matter how they are mounted (In PROTO's case, if both wheels turn clockwise, the right wheel is going forward, and the left backwards.). It then sends this steps per second request down to the Peripheral_Hub layer.

The Peripheral_Hub layer is just a hub... as the name implies, it calls the needed driver functions to turn off/on pins, have timers count steps and run a PWM (Pulse-width modulation. It sends pulses of a particular size at a specific frequency) signal to the driver boards.

Layering it, also means it is a lot easer to test a layer. Basically, if I want to test, I change 1 variable in the build files and a mock layer is build underneath whatever layer I want to test.

So if I want to test the Stepper_Motors layer, I have a mock Peripheral_Hub layer, so if there are errors in the Peripheral_Hub layer, these do not show up when I am testing the stepper motor layer.

The HTTP server part is basically a standard ESP32 example server, where I have removed all the HTTP call handlers, and made my own 2 instead. Done done.

So since the software works... of course I am immediately having hardware problems. The stepper motors are not NEARLY as strong as they need to be... have to figure something out... maybe they are not getting the power they need... or I need smaller wheels... or I will have to buy a gearbox to make them slower but stronger... in which case I should proberbly also fix the freaking cannot-change-the-micro-stepping problem with the driver boards, since otherwise PROTO will go from a max speed of 0.3 meters per second, to most likely 0.06 meters per second which... is... a bit slow...

But software works! And PROTO can happily move his wheels and pretend he is driving somewhere when on his maintenance stand (Yes. it LOOKS like 2 empty cardboard boxes, but I am telling you it is a maintenance stand... since it sounds a lot better :p )

I have gone over everything really quickly in this post... if someone wants me to cover a part of PROTO, just comment which one, and I will most likely do it (I have lost all sense of which parts of this project is interesting to people who are not doing the project)

  • sweetpoetrygladiator
    sweetpoetrygladiator liked this · 1 year ago
  • trans9000
    trans9000 reblogged this · 1 year ago
  • trans9000
    trans9000 liked this · 1 year ago
  • hydralisk98
    hydralisk98 liked this · 1 year ago
  • koecode
    koecode reblogged this · 1 year ago
  • f69f96
    f69f96 liked this · 1 year ago
  • scgascart
    scgascart liked this · 1 year ago
  • miquerinus
    miquerinus liked this · 1 year ago
  • who-are-we-to-change
    who-are-we-to-change liked this · 1 year ago
  • ourephemeraluniverse
    ourephemeraluniverse liked this · 1 year ago
  • skylarlilith
    skylarlilith liked this · 1 year ago
  • lqvhss
    lqvhss liked this · 1 year ago
  • umibunn
    umibunn liked this · 1 year ago
  • soupy-bastard
    soupy-bastard liked this · 1 year ago
  • soaked-in-starlight
    soaked-in-starlight liked this · 1 year ago
  • totomouse
    totomouse liked this · 1 year ago
  • silk-sheet
    silk-sheet liked this · 1 year ago
  • dannimalslol
    dannimalslol liked this · 1 year ago
  • rklek
    rklek liked this · 1 year ago
  • hello-trainman99
    hello-trainman99 liked this · 1 year ago
  • xxsneep-snorpxx
    xxsneep-snorpxx liked this · 1 year ago
  • 1997nikeairs
    1997nikeairs liked this · 1 year ago
  • bethblo
    bethblo liked this · 1 year ago
  • magnificentcreatorexpertathlete
    magnificentcreatorexpertathlete liked this · 1 year ago
  • orange-lover
    orange-lover liked this · 1 year ago
  • the-42nd-fish
    the-42nd-fish liked this · 1 year ago
  • chasentail
    chasentail liked this · 1 year ago
  • zohohaz
    zohohaz liked this · 1 year ago
  • akaddouble
    akaddouble liked this · 1 year ago
  • winryrockbellwannabe
    winryrockbellwannabe liked this · 1 year ago
  • acute-acatalepsy-blog
    acute-acatalepsy-blog liked this · 1 year ago
  • lilydaelf
    lilydaelf liked this · 1 year ago
  • xr-k
    xr-k reblogged this · 1 year ago
  • xr-k
    xr-k liked this · 1 year ago
  • toastyraccoon
    toastyraccoon liked this · 1 year ago
  • asvionyaa
    asvionyaa liked this · 1 year ago
  • volcanicallyfeels
    volcanicallyfeels liked this · 1 year ago
  • su-andherpileof-thoughts
    su-andherpileof-thoughts liked this · 1 year ago
  • coldstrawberrytrash
    coldstrawberrytrash liked this · 1 year ago
  • wobinbug
    wobinbug liked this · 1 year ago
  • add-to-none
    add-to-none liked this · 1 year ago

More Posts from Moose-mousse

1 year ago

Good luck! I hope it turns out how you imagine it! :D I have this… great love for diagrams. I mainly use UML-ish ones but I love all types!

They are like… the middle point between the pure idea in your head (That may have missing parts you do not realize, because brains are silly like that) and the finished product.

They are the shaping of ideas and inspiration into reality. Taking shape like trying to fit a formless blob into one or more boxes so it can become real, without harming the core of the idea. It really is... very neat to get this view into peoples head, in a way I have trouble articulating.

This is one of mine(which had to go into a "real" report, so it is a bit formal):

Good Luck! I Hope It Turns Out How You Imagine It! :DI Have This Great Love For Diagrams. I Mainly Use

Making wireframes again

Making Wireframes Again
Making Wireframes Again

Tuesday 8th August 2023

My head has too many ideas that it has come to me making terrible sketch wireframes, hopefully converting this to code makes sense and looks pretty(˶′◡‵˶)

I'm sure there's a quote out there that talks about something ugly can be turned into something beautiful - yeah, that's what's going to happen to these awful sketches.

Wish me luck o(*^▽^*)┛

>> note: have a nice day/night and good luck with your studies and in life!


Tags :
2 years ago

If you do ANY C++, You need to watch Jason Turners!

Oh my god, I just realized I have never plugged Jason Turners youtube channel on this blog!!! This must immediately be remedied!

C++ Weekly With Jason Turner
YouTube
Making C++ Fun and Accessible.

Not only is this man VERY easy to listen to, and give great examples of everything he talks about, from super basic begginer concepts and up to stuff about how C++ compilers decide what template classes to implement for any given use of the function. Can only be recommended. It is FACINATING how all the tiny details of C++ clicks and pops, and make that glorus optimized, and smooth machine that is C++ run. Love it


Tags :
1 year ago

I am WAY too colorblind for this to ever be relevant for anything I do, but codeblr must know!!!

fucked up how colors look different depending on what screen you’re looking at them on. that should be illegal I think


Tags :
1 year ago

This is... horrifyingly accurate....

Going from being an introverted lurker on reddit to trying to post my own stuff here is so wild. I keep typing out a post, deleting it, then retyping because I think it's not good enough but then I look at other posts and why am I so worried?

It's like I'm at a fancy Italian restaurant and keep glancing around the room to see which hand people use to pick up the forks. But then I realize that everyone is shoveling spaghetti into their mouths using their bare hands and I'm like ah okay so I'm clearly overthinking this


Tags :
2 years ago

What is even some companies websites...

What Is Even Some Companies Websites...

Jobhunting is WILD! Your self confidence is just on a roller-coaster. One minute doubting yourself because of the ghosting and rejection (Yes, big professional companies behave with all the maturity of a 14 year old boy starting online date and being very bad at it) and the next I see shit like this... And I am CLEARLY very competent compared to whoever did... this... I am not taking that picture out of context, that is a picture on the website of a electronics firm that intents to convey (checks notes)... enviromentalism.... Which perfectly explains the well dressed sitting dude with the birdnest with eggs he clearly stole from some birds, winking at me and making fingerguns... Did someone go to their companies unused stock photo assets and hit random? What is happening??? Source:

Arbejde hos Schneider
se.com
Find jobs hos Schneider Electric og opnå faglig og personlig udvikling. Gennem en high-performance kultur, høj medarbejdertrivsel, unikke og

Tags :