- 64
- 82 478
Thinking Things
Приєднався 14 вер 2024
Electronics, Robotics, and AI for Everyone! 😊
I'm a researcher in Artificial Intelligence and Neuroscience, passionate about bringing AI to life in everyday objects. My goal is to create projects that anyone can build at home.
Welcome to my world of Learning Things-where technology meets creativity!
I'm a researcher in Artificial Intelligence and Neuroscience, passionate about bringing AI to life in everyday objects. My goal is to create projects that anyone can build at home.
Welcome to my world of Learning Things-where technology meets creativity!
The BEST DIY Quadruped Robot with ESP32 Tutorial You'll Ever See
Welcome to the first progress video in our DIY quadruped robot series! In this episode, we’ll walk you through the complete assembly process of building your own four-legged robot from scratch. This quadruped features 8 degrees of freedom and is powered by the versatile ESP32.
Here’s what you’ll see in this video:
3D printing the parts for the robot
Assembling the frame and attaching the servo motors
Connecting the servo motors to the driver board
Finalizing the structure with spacers and mounting the ESP32
Adding a shield for the ESP32, along with the driver, power supply, and distance sensor
A demonstration of the robot’s first steps!
By the end of this video, you’ll have a fully assembled robot ready for programming and further customization. And yes, we’ve even given it its own power supply to make it a completely independent creation!
👉 Resources
ESP32 Starter Guide: ua-cam.com/video/zs9TNAbU_iA/v-deo.html
Servo Motor Basics: ua-cam.com/video/EMPaeDU4pdk/v-deo.html
Original stl files from this nice project: www.thingiverse.com/thing:4905975
🔔 Don’t forget to subscribe for future progress videos where we’ll teach the robot how to walk, learn, and do so much more!
#Robotics #DIYRobot #ESP32 #QuadrupedRobot #3DPrinting #AI
Here’s what you’ll see in this video:
3D printing the parts for the robot
Assembling the frame and attaching the servo motors
Connecting the servo motors to the driver board
Finalizing the structure with spacers and mounting the ESP32
Adding a shield for the ESP32, along with the driver, power supply, and distance sensor
A demonstration of the robot’s first steps!
By the end of this video, you’ll have a fully assembled robot ready for programming and further customization. And yes, we’ve even given it its own power supply to make it a completely independent creation!
👉 Resources
ESP32 Starter Guide: ua-cam.com/video/zs9TNAbU_iA/v-deo.html
Servo Motor Basics: ua-cam.com/video/EMPaeDU4pdk/v-deo.html
Original stl files from this nice project: www.thingiverse.com/thing:4905975
🔔 Don’t forget to subscribe for future progress videos where we’ll teach the robot how to walk, learn, and do so much more!
#Robotics #DIYRobot #ESP32 #QuadrupedRobot #3DPrinting #AI
Переглядів: 1 962
Відео
I Built a Self-Driving Mini Car Using Just Analog Components
Переглядів 77328 днів тому
Discover the fascinating intersection between biology and technology in this video! 🚗💡 We'll explore how a mini car can follow light using an analog intelligence system inspired by nature-no software required! You'll learn how transistors, acting as logic gates, mimic the behavior of pyramidal neurons in the brain, creating a mechanism that's both simple and innovative. Through hands-on demonst...
ESP32 Servo Motor Tutorial: How to Control a Servo with Buttons for Beginners
Переглядів 1,2 тис.Місяць тому
Learn how to control your servo with ESP32 and buttons! In this tutorial, we will show you how to connect and program your ESP32 board to control a servo motor using buttons. This project is perfect for beginners who want to learn about microcontrollers, robotics, and automation. With this project, you can create a wide range of applications such as robotic arms, robotic cars, and home automati...
You Won't Believe How Easy It Is to Control ESP32 with a Joystick
Переглядів 1,7 тис.3 місяці тому
Take your ESP32 project to the next level by adding a joystick controller! In this tutorial, we'll show you how to connect and program a joystick to control your ESP32-based projects. Learn how to read joystick values, create custom functions, and integrate it with your existing ESP32 code. Whether you're building a robot, a game console, or a home automation system, this video will guide you t...
I Made a Mini Bluetooth Keyboard with an ESP32 (no Arduino)
Переглядів 2,6 тис.3 місяці тому
I Made a Mini Bluetooth Keyboard with an ESP32 (no Arduino)
Getting started with ESP32: Button Tutorial
Переглядів 3,4 тис.3 місяці тому
Getting started with ESP32: Button Tutorial
ESP32 vs Arduino: Which is Better for Your DIY Projects? | Performance & Features Comparison
Переглядів 2913 місяці тому
ESP32 vs Arduino: Which is Better for Your DIY Projects? | Performance & Features Comparison
Simple ESP32 project: I Built a Bluetooth Mouse
Переглядів 1,6 тис.3 місяці тому
Simple ESP32 project: I Built a Bluetooth Mouse
Getting started with ESP32 - The Ultimate Beginner's Guide (2024)
Переглядів 1,6 тис.4 місяці тому
Getting started with ESP32 - The Ultimate Beginner's Guide (2024)
I Built a Bluetooth controller with an ESP32 | DIY 💻 (mini-showcase)
Переглядів 7194 місяці тому
I Built a Bluetooth controller with an ESP32 | DIY 💻 (mini-showcase)
AI impara a trascinarsi su 2 gambe #reinforcementlearning #robotics #ai #esp32 #arduino
Переглядів 1274 місяці тому
AI impara a trascinarsi su 2 gambe #reinforcementlearning #robotics #ai #esp32 #arduino
Little spider-AI learns to walk and run #reinforcementlearning #ai #learning
Переглядів 1194 місяці тому
Little spider-AI learns to walk and run #reinforcementlearning #ai #learning
AI in a mini-car looks around #ai #reinforcementlearning #learning
Переглядів 1224 місяці тому
AI in a mini-car looks around #ai #reinforcementlearning #learning
AI in a mini car learns to navigate #ai #reinforcementlearning #arduinoworkshop #robotics
Переглядів 1054 місяці тому
AI in a mini car learns to navigate #ai #reinforcementlearning #arduinoworkshop #robotics
AI-car, Part 5 - Eye contact #ai #reinforcementlearning #arduino #artificialintelligence
Переглядів 2454 місяці тому
AI-car, Part 5 - Eye contact #ai #reinforcementlearning #arduino #artificialintelligence
Building a self-learning car with Arduino, Part 2 - testing the structure
Переглядів 524 місяці тому
Building a self-learning car with Arduino, Part 2 - testing the structure
Is this esp32 ch340 or cp2102?
add mouse 1 and 2 and it could be the best gaming mouse cause it's a stationary joystick
Code??
@@spacergamerx6207 I am pasting it here below. Consider that a like a share and a sub would greatly help me at this stage. Let me know if it works :) ____________________________ #include "BleMouse.h" // Include the Bluetooth Mouse library // Create a BluetoothMouse object BleMouse bleMouse; // Define the pins for the joystick and the switch const int vxPin = 32; // Joystick x-axis (horizontal) -> GPIO 32 (analog) const int vyPin = 33; // Joystick y-axis (vertical) -> GPIO 33 (analog) const int swPin = 25; // Joystick button switch -> GPIO 25 (digital) // Sensitivity for cursor movement int sensitivity = 20; // Adjust this value to control cursor speed // Define the new center values and dead zone for joystick movement int centerValue = 3000; // Central value based on your joystick's calibration int deadZone = 200; // Wider dead zone to prevent small movements void setup() { // Initialize serial communication for debugging Serial.begin(9600); // Begin Bluetooth Mouse bleMouse.begin(); Serial.println("Bluetooth Mouse is ready to pair"); // Configure analog pins with pull-down resistors if needed pinMode(vxPin, INPUT_PULLDOWN); pinMode(vyPin, INPUT_PULLDOWN); // Configure the joystick button pin pinMode(swPin, INPUT_PULLUP); // Joystick button uses pull-up resistor } void loop() { if (bleMouse.isConnected()) { // Read joystick values int vxValue = analogRead(vxPin); int vyValue = analogRead(vyPin); int swValue = digitalRead(swPin); // Read joystick button state // Print joystick values for debugging Serial.print("VX: "); Serial.print(vxValue); Serial.print(" | VY: "); Serial.println(vyValue); // Center the readings around the new center value (3000) int xDeviation = vxValue - centerValue; int yDeviation = vyValue - centerValue; int deltaX = 0; int deltaY = 0; // Map the deviations to cursor movement if outside the widened dead zone if (abs(xDeviation) > deadZone) { deltaX = map(xDeviation, -2048, 2047, -sensitivity, sensitivity); } if (abs(yDeviation) > deadZone) { deltaY = map(yDeviation, -2048, 2047, -sensitivity, sensitivity); } // Move the cursor based on joystick input bleMouse.move(deltaX, -deltaY); // Invert deltaY for natural movement // Handle joystick button press for mouse click if (swValue == LOW) { // Button is pressed (active low) if (!bleMouse.isPressed(MOUSE_LEFT)) { bleMouse.press(MOUSE_LEFT); // Press left mouse button } } else { if (bleMouse.isPressed(MOUSE_LEFT)) { bleMouse.release(MOUSE_LEFT); // Release left mouse button } } delay(20); // Smoother movement } else { Serial.println("Mouse not connected"); delay(1000); // Check every second if the Bluetooth mouse is connected } }
The stl zip file for spider_v0_ultrasonic.ino is missing. can u pls update.
I am not sure to understand what you mean. The original project link is not from me, and is only for the stl files. The code is from me, and i will go trhough the details in the next video! Stay tuned! :)
Full video tutorial here: ua-cam.com/video/B26jPX9b1Yo/v-deo.html
Very cute 😂
@@saracapone3107 :)
More than a "Quadraped" is a Quadrepet! It's really cool, keep the great stuff!
@@codesensei2913 🤣 thank you!
I dont care if you think your voice is annoying. If you do the talking i will subscribe and send your channel to my friends.
ok, thank you very much for your feedback! :)
Let me know if you're excited for the next videos in the series and what you'd like to see included!
Please help, I have uploaded the code, but when I use my mouse, the cursor constantly slides diagonally out of my control and does not stay in place.
I have two hypothesis, the first one is that you might need to play with the parameter centerValue. Try to set it to 2000 and let me know :)
@ThinkingThings-q4p Thanks, I'll try.
@@ThinkingThings-q4p Unfortunately it didn't work, what is the other method?
@@lockedpainty7 Set the deadzone to a larger value
@@propheteyebert7063 thank you
Please help, I have uploaded the code, but when I use my mouse, the cursor constantly slides diagonally out of my control and does not stay in place.
Did you solve It from the comment in the ither video?
This is an example of a Braitenberg vehicle. Valentino Braitenberg was an Italian neuroscientist and cyberneticist. He described this and other such machines in his 1984 book _Vehicles: Experiments in Synthetic Psychology_. It's a fabulous book that talks about the ways various connections between sensors and motors lead to surprisingly complicated behaviors. They can be cross connected left & right as in this video or connected straight left to left & right to right; connections can be inhibitory or excitatory with variable strengths; connections can have linear affect or thresholds, or just about any combination of all of these. Very rich behaviors are possible.
Thank you for the comment! I’m glad you recognized the link to Valentino Braitenberg's work :)
the video was interesting but the voice was too robotic. It felt annoying after a while. Try using some natural text to voice alternative
@@harshkumar9302 Thank you for your comment! :) I agree I was planning to change the sintetizer for the next videos.
Cool.... Simple Analog AI circuit
Thank you!! I am planning for more complex system based on the same principle, stay tuned!! :)
can you give me buy link of esp32
I am including it in the description! Consider that a like a share and a sub would really help me a lot in this stage! :)
Great topic, thanks👍
Glad you liked it!
Can you release the code?
Hello! Thank you so much for your interest! I'm planning to create a GitHub repository soon to share my codes, so stay tuned for updates. Your support through subscribing, liking, and sharing would mean the world to me and help me grow at this stage!
This is so cool 😮
Thank you!
CODE???????????????????
Hi!! Thank you for your interest, I am planning to create a GitHub repository soon, to release codes. Stay tuned! Consider that any sub like and share woul really help me a lot at this stage!
Meanwhile I am pasting it here below. Consider that a like a share and a sub would greatly help me at this stage. Let me know if it works. ____________________________ #include "BleMouse.h" // Include the Bluetooth Mouse library // Create a BluetoothMouse object BleMouse bleMouse; // Define the pins for the joystick and the switch const int vxPin = 32; // Joystick x-axis (horizontal) -> GPIO 32 (analog) const int vyPin = 33; // Joystick y-axis (vertical) -> GPIO 33 (analog) const int swPin = 25; // Joystick button switch -> GPIO 25 (digital) // Sensitivity for cursor movement int sensitivity = 20; // Adjust this value to control cursor speed // Define the new center values and dead zone for joystick movement int centerValue = 3000; // Central value based on your joystick's calibration int deadZone = 200; // Wider dead zone to prevent small movements void setup() { // Initialize serial communication for debugging Serial.begin(9600); // Begin Bluetooth Mouse bleMouse.begin(); Serial.println("Bluetooth Mouse is ready to pair"); // Configure analog pins with pull-down resistors if needed pinMode(vxPin, INPUT_PULLDOWN); pinMode(vyPin, INPUT_PULLDOWN); // Configure the joystick button pin pinMode(swPin, INPUT_PULLUP); // Joystick button uses pull-up resistor } void loop() { if (bleMouse.isConnected()) { // Read joystick values int vxValue = analogRead(vxPin); int vyValue = analogRead(vyPin); int swValue = digitalRead(swPin); // Read joystick button state // Print joystick values for debugging Serial.print("VX: "); Serial.print(vxValue); Serial.print(" | VY: "); Serial.println(vyValue); // Center the readings around the new center value (3000) int xDeviation = vxValue - centerValue; int yDeviation = vyValue - centerValue; int deltaX = 0; int deltaY = 0; // Map the deviations to cursor movement if outside the widened dead zone if (abs(xDeviation) > deadZone) { deltaX = map(xDeviation, -2048, 2047, -sensitivity, sensitivity); } if (abs(yDeviation) > deadZone) { deltaY = map(yDeviation, -2048, 2047, -sensitivity, sensitivity); } // Move the cursor based on joystick input bleMouse.move(deltaX, -deltaY); // Invert deltaY for natural movement // Handle joystick button press for mouse click if (swValue == LOW) { // Button is pressed (active low) if (!bleMouse.isPressed(MOUSE_LEFT)) { bleMouse.press(MOUSE_LEFT); // Press left mouse button } } else { if (bleMouse.isPressed(MOUSE_LEFT)) { bleMouse.release(MOUSE_LEFT); // Release left mouse button } } delay(20); // Smoother movement } else { Serial.println("Mouse not connected"); delay(1000); // Check every second if the Bluetooth mouse is connected } }
Interesting video, but the code is missing. Please fill it in.
Hello! Thank you so much for your interest! I'm planning to create a GitHub repository soon to share my codes, so stay tuned for updates. Your support through subscribing, liking, and sharing would mean the world to me and help me grow at this stage!
@@ThinkingThings-q4p My support through subscribing, liking, and sharing only makes sense if your channel is useful to me. If the author doesn't bother to publish the code, I won't support, like, or subscribe. It makes no sense. No code = no like or channel subscription.
@@karelbenda5322 Thank you for your feedback! I understand how helpful having access to the code can be, and I truly appreciate your perspective. My channel focuses on sharing ideas, demonstrations, and inspiration for DIY projects. As I mentioned, I plan to create a GitHub repository soon to share my projects more broadly. Of course, the choice to subscribe is entirely yours, and I respect that. Thanks again for your input, and I hope to see you around!
You need to award it more points for keeping a horizontal axis. Nice trys so far though
I am using the standard reward function of the mujoco environment here. However this could be a great idea, thank you :)
Can you release the code?
Hi! Planning to create a github soon to release codes, thank you for your interest! Consider that a like a a like a share and a sub would really help me a lot in this stage :)
same code for windows? also still waiting on your code, i have some cool ideas to add
Yes, i am using the Arduino IDE that you can use also on Windows. I am planning to make a GitHub to release the code, stay tuned!
Nice ♥♥♥
Thank you! Cheers!
NO, the tilte says do it yourself 💀💀💀💀💀💀
Here I made an actual full tutorial! :) ua-cam.com/video/sydMsXlY5NM/v-deo.html
i dont know, but for me its not working :( it stay on state 1
What code are you using? Are you using pull up mode? Did you try another button?
@@ThinkingThings-q4p yes and yes try other buttons const int buttonPin = 26; int buttonState = 0; void setup() { Serial.begin(115200); pinMode(buttonPin, INPUT_PULLUP); } void loop() { buttonState = digitalRead(buttonPin); Serial.print("Button state:"); Serial.println(buttonState); delay(100); }
it works sorry thanks a lot
@@michaelm4876 Great!! :)
its really with AI or its with code?
Thank you for asking! This is actually an agent improving thanks to reinforcement learning (Policy gradient)
Full video link sir
Here you are: ua-cam.com/video/hZKu84aT80w/v-deo.html
Mind ur ass Thats movement With this logic my normal mouse is also mind controlled
Right😂 But this is mentioned in the video!
wow that’s super cool!
@@techgenius0411 Thank you! Let me know if you would like a full tutorial!
Cool
@@gokulnath103 thank you!
Full video here! ua-cam.com/video/yGU9-jSJi9M/v-deo.htmlsi=Zn3aj_dg-JRuDjzH
Can i get the code?
Thank you for your interest, I am planning to create a GitHub soon to release codes. Stay tuned. Consider that a share a like and a sub would really help me a lot at this stage :)
Let me know in the comments if you would like a tutorial!
what is the model
The esp32 model?
@ThinkingThings-q4p yes
@@AudisioOficiaI this Is a CP2102, you can find It on Amazon.
So cool! How did you get the idea?
@@saracapone3107 I wanted to try learning algorithm on robots, and make this project accessibile to everybody! planning to make a full tutorial soon.
Do you need very expensive motors with precision and feedback to do RL?
@@davidyoung5256 Those servos are actually very cheap, couple of euros each. I am planning to make a full video tutorial in the next few weeks on this topic. Would you like to see It? Check out my lastest short, I am building also a spider-bot :)
@@ThinkingThings-q4p Sure that would be interesting to see. I thought that a lot of precision was required to jump from sim to real
@davidyoung5256 this Is true if you want to use the same policy, but not if you train from scratch :)
It looks like a crawling fnaf animatronic.
@@Th4t_dude 🤣 which one? yes, I am still working on the gait, but i Plan to make It learn optimal motion through reinforcement learning:)
@ThinkingThings-q4p freadbear pizzeria freabear endo (pexiglass cover on), it was crawling during Maintenance after the fire, it was trying to escape.
Spider
You can now find the full video tutorial on my channel
@@ThinkingThings-q4p Thank you
I am actually curious to know your favorite! I have a passion for the DOG!
Try to attach some rubber on their feet
@@istoleyourchezburger Thank you for the suggestion, probably the dog needs it. Consider that a sub, a like, and a share would greatly help me in this stage :)
Nice,thanks:)
@@RixtronixLAB Thank you!
Can i have tur
@@AntiBeggars Thank you for asking! I am making a video on this very very soon!
We got racism over 2024
Can you expand on that?
Working to bring this Little guy to Life :) Stay tuned!
Stay tuned to see the full robot and how the AI make It do things!
Hello my friend, is there an email address so that I can contact you? Please help me because I am creating a project and I am sure that you can help me in this project and solve this problem for me 🙏
Thank you for your interest! :) Can I ask what Is the project and what problems are you facing?
@@ThinkingThings-q4p I have a board called esp32 lcd 1.9 inch ideaspark 170x320 I want to upload a code that was working on a board called esp32 lilygo but I am facing some problems when I upload it nothing appears on the screen I hope you can help me because I am very frustrated 😭
I have a board called esp32 lcd 1.9 inch ideaspark 170x320 I want to upload a code that was working on a board called esp32 lilygo but I am facing some problems when I upload it nothing appears on the screen I hope you can help me because I am very frustrated 😭@@ThinkingThings-q4p
@ThinkingThings-q4p I have a board called esp32 lcd 1.9 inch ideaspark 170x320 I want to upload a code that was working on a board called esp32 lilygo but I am facing some problems when I upload it nothing appears on the screen
@@ThinkingThings-q4p I have a board called esp32 lcd 1.9 inch ideaspark I want to upload a code that was working on a board called esp32 lilygo but I am facing some problems when I upload it nothing appears on the screen
what is your AI?
@@desuwu31 I'm testing a new AI algorithm on small robots to help them learn new tasks. A dedicated video is coming soon! Every share, like, and sub helps a lot and keeps me going! Ps. This is preview of another robot I am working on: ua-cam.com/users/shorts72P7bkK5NbI?si=HRCDoQIcB3GRQgMj
@@ThinkingThings-q4p nice!
Wouldnt it be 2-3-1? Due to the pitch going up on the last note? Or at least 1-2-1
That might be a point :)
Bros in Harvard after he's 10
povide your code
Thank you for your interest. I am going to paste the code in the description. Consider that a like, a sub, and a share would greatly help me at this stage!
Thanks ❤❤❤
@@lochobhai I am actually pasting it here: _____________________ #include "BleMouse.h" // Include the Bluetooth Mouse library // Create a BluetoothMouse object BleMouse bleMouse; // Define the pins for the joystick and the switch const int vxPin = 32; // Joystick x-axis (horizontal) -> GPIO 32 (analog) const int vyPin = 33; // Joystick y-axis (vertical) -> GPIO 33 (analog) const int swPin = 25; // Joystick button switch -> GPIO 25 (digital) // Sensitivity for cursor movement int sensitivity = 20; // Adjust this value to control cursor speed // Define the new center values and dead zone for joystick movement int centerValue = 3000; // Central value based on your joystick's calibration int deadZone = 200; // Wider dead zone to prevent small movements void setup() { // Initialize serial communication for debugging Serial.begin(9600); // Begin Bluetooth Mouse bleMouse.begin(); Serial.println("Bluetooth Mouse is ready to pair"); // Configure analog pins with pull-down resistors if needed pinMode(vxPin, INPUT_PULLDOWN); pinMode(vyPin, INPUT_PULLDOWN); // Configure the joystick button pin pinMode(swPin, INPUT_PULLUP); // Joystick button uses pull-up resistor } void loop() { if (bleMouse.isConnected()) { // Read joystick values int vxValue = analogRead(vxPin); int vyValue = analogRead(vyPin); int swValue = digitalRead(swPin); // Read joystick button state // Print joystick values for debugging Serial.print("VX: "); Serial.print(vxValue); Serial.print(" | VY: "); Serial.println(vyValue); // Center the readings around the new center value (3000) int xDeviation = vxValue - centerValue; int yDeviation = vyValue - centerValue; int deltaX = 0; int deltaY = 0; // Map the deviations to cursor movement if outside the widened dead zone if (abs(xDeviation) > deadZone) { deltaX = map(xDeviation, -2048, 2047, -sensitivity, sensitivity); } if (abs(yDeviation) > deadZone) { deltaY = map(yDeviation, -2048, 2047, -sensitivity, sensitivity); } // Move the cursor based on joystick input bleMouse.move(deltaX, -deltaY); // Invert deltaY for natural movement // Handle joystick button press for mouse click if (swValue == LOW) { // Button is pressed (active low) if (!bleMouse.isPressed(MOUSE_LEFT)) { bleMouse.press(MOUSE_LEFT); // Press left mouse button } } else { if (bleMouse.isPressed(MOUSE_LEFT)) { bleMouse.release(MOUSE_LEFT); // Release left mouse button } } delay(20); // Smoother movement } else { Serial.println("Mouse not connected"); delay(1000); // Check every second if the Bluetooth mouse is connected } }
@@ThinkingThings-q4p code does not work
@@im_anhar What kind of error do you get?