📋 اطلاعات این مطلب
🖼️
دارای تصویر
📋
دارای کد قابل کپی
📎
دارای فایل دانلود
🎬
آپارات ویدیو (1)
ربات سامورایی سبیلو | چشم هوشمند و ابروهای احساسی با آردوینو
👁️ بازدید: 13 بار
سامورایی سبیلو زنده شد!
این ربات سامورایی بامزه با چشم ثابت، حرفاش رو با ابروهاش میزنه!
حرکات بامزهای که تو این ویدیو میبینی:
• تعجب دراماتیک
• لرزش عصبی
• ابروی شکاک و کج
• ضربان قلب عاشقانه
• رقص شاد
• خمیازه کشیدن
• و کلی حرکت دیگه...
ویژگیها:
با یه دکمه فعال میشه
بعد از تموم شدن حرکات، خودکار خاموش میشه
هر بار دکمه رو بزنی، دوباره تکرار میکنه
قطعات استفاده شده:
• Arduino Uno
• ۲ عدد سروو موتور ۱۸۰ درجه
• ۱ عدد دکمه فشاری
کد کامل و نقشه مدار:
mxengineer.ir
اگه خوشت اومد:
• لایک کن
• کامنت بذار (کدوم حرکت بیشتر خوشت اومد؟)
• اشتراک گذاری کن
حمایت شما انگیزه من برای ساخت ویدیوهای بهتره️
// mxengineer.ir
// Pins: Left Servo = 9 , Right Servo = 10 , Button = 2
#include <Servo.h>
Servo eyebrowLeft;
Servo eyebrowRight;
const int buttonPin = 2;
bool sequencePlaying = false;
const int NEUTRAL = 90;
const int UP = 75;
const int DOWN = 105;
const int UP_EXTREME = 70;
const int DOWN_EXTREME = 110;
void setBoth(int angle) {
angle = constrain(angle, UP_EXTREME, DOWN_EXTREME);
eyebrowLeft.write(angle);
eyebrowRight.write(180 - angle);
delay(15);
}
void setSeparate(int leftAngle, int rightAngle) {
leftAngle = constrain(leftAngle, UP_EXTREME, DOWN_EXTREME);
rightAngle = constrain(rightAngle, UP_EXTREME, DOWN_EXTREME);
eyebrowLeft.write(leftAngle);
eyebrowRight.write(180 - rightAngle);
delay(15);
}
void setup() {
eyebrowLeft.attach(9);
eyebrowRight.attach(10);
pinMode(buttonPin, INPUT_PULLUP);
setBoth(NEUTRAL);
}
void waveEyebrows() {
for (int i = 0; i < 3; i++) {
setSeparate(UP, NEUTRAL);
delay(150);
setSeparate(NEUTRAL, UP);
delay(150);
}
setBoth(NEUTRAL);
}
void nervousTwitch() {
for (int i = 0; i < 8; i++) {
setBoth(UP);
delay(40);
setBoth(NEUTRAL);
delay(40);
}
}
void slowDramatic() {
for (int ang = NEUTRAL; ang >= UP_EXTREME; ang -= 1) {
setBoth(ang);
delay(60);
}
delay(800);
for (int ang = UP_EXTREME; ang <= NEUTRAL; ang += 1) {
setBoth(ang);
delay(60);
}
}
void jumpy() {
for (int i = 0; i < 4; i++) {
setBoth(UP_EXTREME);
delay(100);
setBoth(NEUTRAL);
delay(200);
setBoth(UP);
delay(80);
setBoth(NEUTRAL);
delay(150);
}
}
void circleConfused() {
for (int i = 0; i < 3; i++) {
setSeparate(UP, NEUTRAL);
delay(100);
setSeparate(UP, UP);
delay(100);
setSeparate(NEUTRAL, UP);
delay(100);
setSeparate(NEUTRAL, NEUTRAL);
delay(100);
}
}
void heartbeatEyebrows() {
for (int i = 0; i < 5; i++) {
setBoth(DOWN);
delay(60);
setBoth(NEUTRAL);
delay(60);
setBoth(DOWN);
delay(60);
setBoth(NEUTRAL);
delay(300);
}
}
void randomMovements() {
for (int i = 0; i < 12; i++) {
int randomAngle = random(UP, DOWN + 1);
int randomDelay = random(50, 250);
setBoth(randomAngle);
delay(randomDelay);
}
setBoth(NEUTRAL);
}
void gradualSuspicion() {
for (int ang = NEUTRAL; ang >= UP; ang -= 2) {
setSeparate(ang, NEUTRAL);
delay(30);
}
delay(500);
for (int ang = UP; ang <= NEUTRAL; ang += 2) {
setSeparate(ang, NEUTRAL);
delay(30);
}
delay(200);
for (int ang = NEUTRAL; ang >= UP; ang -= 2) {
setSeparate(NEUTRAL, ang);
delay(30);
}
delay(500);
setBoth(NEUTRAL);
}
void yawn() {
setBoth(DOWN_EXTREME);
delay(1500);
setBoth(NEUTRAL);
delay(300);
setBoth(DOWN_EXTREME);
delay(1000);
setBoth(NEUTRAL);
}
void happyDance() {
for (int beat = 0; beat < 6; beat++) {
setBoth(UP);
delay(120);
setBoth(NEUTRAL);
delay(120);
setBoth(DOWN);
delay(120);
setBoth(NEUTRAL);
delay(120);
}
}
void runCoolMoves() {
setBoth(NEUTRAL);
delay(500);
waveEyebrows();
delay(400);
slowDramatic();
delay(300);
nervousTwitch();
delay(400);
jumpy();
delay(500);
circleConfused();
delay(400);
heartbeatEyebrows();
delay(400);
gradualSuspicion();
delay(500);
randomMovements();
delay(400);
yawn();
delay(300);
happyDance();
delay(400);
for (int ang = NEUTRAL; ang <= DOWN_EXTREME; ang += 2) {
setBoth(ang);
delay(30);
}
}
void loop() {
if (digitalRead(buttonPin) == LOW && !sequencePlaying) {
sequencePlaying = true;
runCoolMoves();
sequencePlaying = false;
delay(300);
}
}
تاریخ انتشار: 2026/05/25 - 16:59
💬 نظرات کاربران (0)
هنوز نظری ثبت نشده است.