
Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37


Ovo je jednostavan mali Arduino i servo projekt koji traje oko dva sata. Koristi servo za podizanje jednog kraja poklopca staklenke kako bi okrenuo čeličnu kuglu po unutarnjem obodu. Samostalno se pokreće, može mijenjati brzinu i može okretati dvije (ili više?) Loptica odjednom. Zabavno graditi i raditi. Parametri vremena se mogu igrati za vjerovatno još veće brzine. Nekoliko senzora s Hall efektom s magnetskom kuglom moglo bi se upotrijebiti da bude pametnija mašina koja može odrediti najbolje parametre.
Trebao bih napomenuti da netko ovdje na stranici instructables.com ima sofisticiraniju mašinu za valjke za kuglice:
Potrebni materijali:
Arduino Uno (ili bilo koji Arduino)
Servo štit (opcionalno)
9g servo
poklopac staklenke
čelična kugla
malo starog drveta
Korak 1: Napravite držač baze i zglobne kape

Baza je samo komad drveta na koji se može montirati šarkirani komad drveta. Drvo na šarkama treba biti veće od čepa staklenke koji ćete koristiti i imati dovoljno mjesta za šarke i za postavljanje servo pogona.
Koristio sam male plastične rc šarke za avione i samo ih vruće zalijepio na šarkama i podnožju.
Korak 2: Produžite servo polugu i pričvrstite servo


Da bih napravio duži servo krak, samo sam pričvrstio komad drveta od 5 centimetara na servo krak s nekoliko malih vijaka i matica. Servo krak bi trebao biti na 90 stupnjeva na servo -u kada je vodoravan prema podnožju.
Upravo sam vruće zalijepio servo na držač sa šarkama, ali otkrio sam da ako ga pustite da radi duže od nekoliko minuta, servo će zagrijati vruće ljepilo i otpustiti ga iz drva. Stoga je zajamčena bolja metoda pričvršćivanja.
Korak 3: Učitajte i pokrenite skicu

Priključio sam svoj servo na pin 7 pomoću štita jer je to jednostavno zgodno i koštaju samo nekoliko dolara. Ako nemate štit, spojite žicu servo signala na pin 7 na Arduinu, crvenu žicu na 5v na Arduinu, a žicu za uzemljenje na GND na Arduinu. Arduino bi trebao osigurati dovoljno struje za rad servo -a. Koristim štit jer je lako koristiti vanjski napon samo za servo.
Evo skice. Napisao sam rutinu servo kontrolera brzine kako bih promijenio brzinu serva jer vjerojatno neće raditi dobro pri punoj brzini.
TimingDelay možete promijeniti da biste dobili različite brzine kotrljanja loptice. Također možete promijeniti treći parametar funkcije myServo () da promijenite i brzinu.
////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// //////////////// // kreirao Jim Demello, Univerzitet Shangluo, 2017
// možete slobodno koristiti, manipulirati, raditi što god želite s ovim kodom, moje ime nije potrebno
// Ova rutina omogućuje interpolaciju bilo kojeg broja servo -a, samo dodajte nove linije ako broj servo -a prelazi 4
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include
Servo myservo1, myservo2; // kreiranje servo objekta za upravljanje servo pogonom
int servoRead (int servoNumber) {
int servoCurrent;
if (broj servo == 1) {servoCurrent = myservo1.read (); }
if (broj servo == 2) {servoCurrent = myservo2.read (); }
return servoCurrent;
}
void servoWrite (int servoNumber, int offset) {
if (broj servo == 1) {myservo1.write (pomak); }
if (broj servo == 2) {myservo2.write (pomak); }
}
void myServo (int newAngle, int angleInc, int incDelay, int servoNum) {
int curAngle;
if (servoNum == 1) {curAngle = myservo1.read (); }
if (servoNum == 2) {curAngle = myservo2.read (); }
if (curAngle <newAngle) {
for (int angle = curAngle; angle <newAngle; angle += angleInc) {
if (servoNum == 1) myservo1.write (angle);
if (servoNum == 2) myservo2.write (angle);
kašnjenje (incDelay); }
}
else if (curAngle> newAngle) {
for (int angle = curAngle; angle> newAngle; angle -= angleInc) {
if (servoNum == 1) myservo1.write (angle);
if (servoNum == 2) myservo2.write (angle);
kašnjenje (incDelay); }
}
}
void interpolate2Servos (int servo1, int servo1Position, int servo2, int servo2Položaj, int numberSteps, int timeDelay) {
int servo1Current, servo2Current;
servo1Current = servoRead (servo1);
servo2Current = servoRead (servo2);
// Serial.print ("Servo3Pos i struja"); Serial.print (servo3Position); Serial.print (""); Serial.println (servo3Current);
// Serial.print ("Servo4Pos i struja"); Serial.print (servo4Position); Serial.print (""); Serial.println (servo4Current);
// Serial.print ("Servo5Pos i struja"); Serial.print (servo5Position); Serial.print (""); Serial.println (servo5Current);
// Serial.print ("Servo6Pos i struja"); Serial.print (servo6Position); Serial.print (""); Serial.println (servo6Current);
// Serial.println ("");
int cOffset = (servo1Position - servo1Trenutno); cOffset = abs (cOffset)/numberSteps;
int dOffset = (servo2Position - servo2Trenutno); dOffset = abs (dOffset)/numberSteps;
int cOffsetTotal = 0, dOffsetTotal = 0;
cOffsetTotal = servo1Trenutno;
dOffsetTotal = servo2Current;
za (int x = 0; x
if (servo1Position> servo1Current) {cOffsetTotal = cOffsetTotal + cOffset; }
else {cOffsetTotal = cOffsetTotal - cOffset; }
if (servo2Position> servo2Current) {dOffsetTotal = dOffsetTotal + dOffset; }
else {dOffsetTotal = dOffsetTotal - dOffset; }
if (servo1Position! = servo1Current) servoWrite (servo1, cOffsetTotal);
if (servo2Position! = servo2Current) servoWrite (servo2, dOffsetTotal);
// Serial.print ("a i b pomak"); Serial.print (aOffsetTotal); Serial.print (""); Serial.println (bOffsetTotal); kašnjenje (10);
kašnjenje (timeDelay);
} // završava za
//////////////////////////////////////
// pobrinite se za modulo ostataka //
/////////////////////////////////////
if (servo1Position! = servo1Current) servoWrite (servo1, servo1Position);
if (servo2Position! = servo2Current) servoWrite (servo2, servo2Position);
}
int timingDelay = 100;
int servoDelay = 100;
int degGap = 10;
// Ovo je početni stupanj (mora biti manji od završnog stupnja)
int degStart = 0;
// Ovo su krajnji stupnjevi (moraju biti veći od početnog stupnja)
int degEnd = 360;
// Ovo je radijus kruga
int radijus = 8;
void setup ()
{
Serial.begin (9600);
kašnjenje (100);
myservo1.attach (7); // priključuje servo na pin 7 na servo objekt
myservo1.write (90);
myservo2.attach (8); // priključuje servo na pin 8 na servo objekt
myservo2.write (90);
kašnjenje (1000); // čeka da servo stigne tamo
interpolate2Servos (1, 90, 2, 90, 10, 60); // neutralno
kašnjenje (1000);
}
void loop () {{100} {101}
timingDelay = 15; // radi na 10
servoDelay = 4;
spin4 ();
// interpolate2Servos (1, 90, 2, 90, 1, 60); // neutralno
// kašnjenje (1000);
// izlaz (0); // pauziranje programa - pritisnite reset za nastavak
}
void spin3 () {
interpolate2Servos (1, 90, 2, 110, 1, 60); // neutralno
kašnjenje (timingDelay);
interpolate2Servos (1, 90, 2, 80, 1, 60); // neutralno
kašnjenje (timingDelay);
}
void spin2 () {
// interpolate2Servos (1, 80, 2, 90, 1, 50); // neutralno
kašnjenje (timingDelay);
interpolate2Servos (1, 80, 2, 80, 1, 60); // neutralno
kašnjenje (timingDelay);
interpolate2Servos (1, 110, 2, 80, 1, 60); // neutralno
kašnjenje (timingDelay);
// interpolate2Servos (1, 110, 2, 110, 1, 60); // neutralno
kašnjenje (timingDelay);
}
void spin1 () {
// int deg = (degStart / (180 / 3.14));
float deg = (degStart * 3.141592 / 180); // pretvara stepene u radijane
float xPos = 90 + (cos (deg) * radijus);
// xPos = okrugli (xPos);
float yPos = 90 + (sin (stepeni) * radijus);
// yPos = okrugli (yPos);
Serial.print ("degGap ="); Serial.print (degGap); Serial.print ("deg ="); Serial.print (deg); Serial.print ("cos ="); Serial.print (cos (deg)); Serial.print ("degStart ="); Serial.print (degStart); Serial.print ("x ="); Serial.print (xPos); Serial.print ("y ="); Serial. println (yPos);
// interpolate2Servos (1, xPos, 2, yPos, 1, servoDelay); // neutralno
myservo1.write (xPos);
myservo2.write (yPos);
kašnjenje (timingDelay);
if (degStart> = degEnd) {
degStart = 0;
if (degGap> 180)
degGap = 180;
// degGap = 0;
else
degGap = degGap + 2;
degGap = degGap - 2;
// degStart = degStart +degGap;
}
degStart = degStart + degGap;
}
void spin4 () {
za (int i = 0; i <= 360; i ++) {
float j = 20 * (cos ((3,14 * i)/180)) + 90;
plovak k = 20 * (sin ((3,14 * i)/180)) + 90;
myservo1.write (j);
myservo2.write (k);
Serial.print (j);
Serial.print (",");
Serial.println (k);
kašnjenje (100);
}
}
Preporučuje se:
Valjak za kockice Mason Jar: 5 koraka (sa slikama)

Mason Jar Dice Roller: Evo jednog sjajnog vikend projekta koji trebate poduzeti, ako planirate igrati bilo koju igru vezanu uz igru ili kockice. Za izradu projekta trebat će vam servo sa kontinuiranom rotacijom, arkadno dugme i arduino nano ili ESP8266 ploča, a osim toga trebat će vam 3D p
Fokusirajte visokokvalitetnu kameru Pi s Legom i servom: 4 koraka (sa slikama)

Usredotočite Pi visokokvalitetnu kameru s Lego -om i servo uređajem: Uz blago sjeckani Lego komad, kontinuirani servo i neki Python kod, možete fokusirati svoju Raspberry Pi kameru visoke kvalitete s bilo kojeg mjesta na svijetu! Pi HQ kamera je fantastičan komad kit, ali kako sam otkrio radeći na nedavnom Merlinu
HackerBox 0055: Visoki valjak: 7 koraka

HackerBox 0055: High Roller: Pozdrav HackerBox hakerima širom svijeta! Uz HackerBox 0055, vi ste D20 visoki valjak u kartaškim igrama za odgovor na incidente, stražnja vrata & Kršenja. Takođe ćete istražiti mašinsko učenje pomoću TensorFlow -a, ESP32 ugrađenih web servera, mašine
Hodalica na četiri noge sa servom: 12 koraka (sa slikama)

Servo-bazirani šetač sa 4 noge: Izradite svog vlastitog (bespotrebno tehnološkog rada) šetača sa 4 noge! BEAM nogavice sa 4 nogavice možda će vam biti lakše napraviti ako već niste
Kako napraviti valjak za etikete: 4 koraka

Kako napraviti valjak za naljepnice: Sljedeći koraci će vam otprilike pokazati kako napraviti valjak za naljepnice za mali pisač naljepnica. Radim kao IT stručnjak u laboratoriji i jedan od poslova za naše dame iz korisničke službe je ispisati nekoliko hiljada naljepnica sa Zebra Label p