
Orodha ya maudhui:
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11


Huu ni mradi rahisi wa Arduino na servo ambao unachukua kama masaa mawili kukamilisha. Inatumia servo kuinua ncha moja ya kofia ya jar ili kuzungusha mpira wa chuma kuzunguka mzingo wa ndani. Ni kujitegemea, inaweza kubadilisha kasi na inaweza kuzunguka mipira miwili (au zaidi?) Mara moja. Furaha ya kujenga na kufanya kazi. Vigezo vya muda vinaweza kuchezwa na labda kwa kasi zaidi. Sensorer chache za athari za ukumbi na mpira wa sumaku zinaweza kutumiwa kuifanya mashine nadhifu inayoweza kujua vigezo bora.
Ninapaswa kutaja kuwa mtu hapa kwenye instructables.com ana mashine ya kisasa zaidi ya mpira:
Vifaa vinahitajika:
Arduino Uno (au Arduino yoyote)
Ngao ya Servo (hiari)
9g servo
kofia ya jar
mpira wa chuma
kuni zingine chakavu
Hatua ya 1: Fanya Kishikilia Msingi na Hinged Cap

Msingi ni hunk tu ya kuni ili kuweka kipande cha kuni kilichokunjwa. Miti iliyokuwa na bawaba inapaswa kuwa kubwa kuliko kofia ya mtungi ambayo utatumia na kuwa na nafasi ya kutosha kwa bawaba na kupandisha servo.
Nilitumia bawaba ndogo za ndege za plastiki za rc na nikazitia tu kwenye kuni na bawaba.
Hatua ya 2: Tengeneza Sura ya Servo ndefu na Ambatanisha Servo


Ili kutengeneza mkono mrefu wa servo niliunganisha tu kipande cha kuni cha sentimita 5 kwenye mkono wa servo na visu ndogo ndogo na karanga. Mkono wa servo unapaswa kuwa kwenye digrii 90 kwenye servo wakati iko usawa kwa msingi.
Nilipiga gundi tu servo kwa mmiliki wa kuni lakini niligundua kuwa ukiiruhusu iende kwa muda mrefu zaidi ya dakika chache, servo itapasha gundi moto na kuacha kutoka kwa kuni. Kwa hivyo njia bora ya kushikamana inastahili.
Hatua ya 3: Mzigo na Run Run

Niliambatisha servo yangu kubandika 7 kwa kutumia ngao kwa sababu ni rahisi tu na wanagharimu pesa chache tu. Ikiwa hauna ngao kisha unganisha waya wa ishara ya servo kubandika 7 kwenye Arduino, waya mwekundu hadi 5v kwenye Arduino na waya wa ardhini kwenda GND kwenye Arduino. Arduino inapaswa kutoa sasa ya kutosha kuendesha servo. Ninatumia ngao kwa sababu ni rahisi kutumia voltage ya nje kwa servo tu.
Hapa kuna mchoro. Niliandika utaratibu wa kudhibiti kasi ya servo ili kubadilisha kasi ya servo kwa sababu labda haitafanya kazi vizuri kwa kasi kamili.
Unaweza kubadilisha majiraKuchelewa kupata kasi tofauti za kutembeza mpira. Unaweza pia kubadilisha parameter ya tatu ya kazi ya myServo () kubadilisha kasi pia.
//////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// ////////////// // iliyoundwa na Jim Demello, Chuo Kikuu cha Shangluo, 2017
// wewe ni huru kutumia, kuendesha, kufanya chochote unachotaka na nambari hii, jina langu halihitajiki
// Utaratibu huu unaruhusu idadi yoyote ya servos kuingiliwa, ongeza tu mistari mpya ikiwa idadi ya servos inazidi 4
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
# pamoja
Servo myservo1, myservo2; // tengeneza kitu cha servo kudhibiti servo
int servoRead (int servoNumber) {
int servoCurrent;
ikiwa (servoNumber == 1) {servoCurrent = myservo1.read (); }
ikiwa (servoNumber == 2) {servoCurrent = myservo2.read (); }
kurudi servoCurrent;
}
utupu servoWrite (int servoNumber, int offset) {
ikiwa (servoNumber == 1) {myservo1.write (offset); }
ikiwa (servoNumber == 2) {myservo2.write (offset); }
}
batili myServo (int newAngle, int angleInc, int incDelay, int servoNum) {
int curAngle;
ikiwa (servoNum == 1) {curAngle = myservo1.read (); }
ikiwa (servoNum == 2) {curAngle = myservo2.read (); }
ikiwa (curAngle <newAngle) {
kwa (int angle = curAngle; angle <newAngle; angle + = angleInc) {
ikiwa (servoNum == 1) myservo1.write (angle);
ikiwa (servoNum == 2) myservo2.write (angle);
kuchelewesha (incDelay); }
}
vinginevyo ikiwa (curAngle> newAngle) {
kwa (int angle = curAngle; angle> newAngle; angle - = angleInc) {
ikiwa (servoNum == 1) myservo1.write (angle);
ikiwa (servoNum == 2) myservo2.write (angle);
kuchelewesha (incDelay); }
}
}
batili interpolate2Servos (int servo1, int servo1Position, int servo2, int servo2Position, nambari ya hatuaHatua, int timeDelay) {
int servo1Current, servo2Current;
servo1Current = servoRead (servo1);
servo2Current = servoRead (servo2);
// Serial.print ("Servo3Pos na ya sasa"); Serial.print (servo3Position); Serial.print (""); Serial.println (servo3Current);
// Serial.print ("Servo4Pos na ya sasa"); Serial.print (servo4Position); Serial.print (""); Serial.println (servo4Current);
// Serial.print ("Servo5Pos na ya sasa"); Serial.print (servo5Position); Serial.print (""); Serial.println (servo5Current);
// Serial.print ("Servo6Pos na ya sasa"); Printa ya serial (nafasi ya servo6); Serial.print (""); Serial.println (servo6Current);
// Serial.println ("");
int cOffset = (servo1Position - servo1Current); cOffset = abs (cOffset) / idadiHatua;
int dOffset = (servo2Position - servo2Current); dOffset = abs (dOffset) / idadiHatua;
int cOffsetTotal = 0, dOffsetTotal = 0;
cOffsetTotal = servo1Current;
dOffsetTotal = servo2Current;
kwa (int x = 0; x
ikiwa (servo1Position> servo1Current) {cOffsetTotal = cOffsetTotal + cOffset; }
mwingine {cOffsetTotal = cOffsetTotal - cOffset; }
ikiwa (servo2Position> servo2Current) {dOffsetTotal = dOffsetTotal + dOffset; }
mwingine {dOffsetTotal = dOffsetTotal - dOffset; }
ikiwa (servo1Position! = servo1Current) servoWrite (servo1, cOffsetTotal);
ikiwa (servo2Position! = servo2Current) servoWrite (servo2, dOffsetTotal);
// Serial.print ("a na b Kukamilisha"); Serial.print (aOffsetTotal); Serial.print (""); Serial.println (bOffsetTotal); kuchelewesha (10);
kuchelewesha (timeDelay);
} // mwisho wa
//////////////////////////////////////
// utunzaji wa salio za modulo //
/////////////////////////////////////
ikiwa (servo1Position! = servo1Current) servoWrite (servo1, servo1Position);
ikiwa (servo2Position! = servo2Current) servoWrite (servo2, servo2Position);
}
muda wa mudaDelay = 100;
int servoDelay = 100;
int degGap = 10;
// Hii ndio digrii ya kuanzia (lazima iwe chini ya kiwango cha mwisho)
Mwanzo = 0;
// Hizi ni digrii za kumaliza (lazima ziwe kubwa kuliko digrii ya kuanza)
int degEnd = 360;
// Hii ndio eneo la duara
eneo la int = 8;
kuanzisha batili ()
{
Kuanzia Serial (9600);
kuchelewesha (100);
myservo1.ambatanisha (7); // inaunganisha servo kwenye pini 7 kwa kitu cha servo
kuandika [90];
myservo2.ambatanisha (8); // inaunganisha servo kwenye pini ya 8 kwa kitu cha servo
kuandika [90];
kuchelewesha (1000); // inasubiri servo ifike hapo
kuingiliana2Servos (1, 90, 2, 90, 10, 60); // upande wowote
kuchelewesha (1000);
}
kitanzi batili () {
majiraDelay = 15; // hufanya kazi saa 10
servoDelay = 4;
spin4 ();
// interpolate2Servos (1, 90, 2, 90, 1, 60); // upande wowote
// kuchelewa (1000);
// kutoka (0); // mpango wa kusitisha - piga upya ili kuendelea
}
batili spin3 () {
kuingiliana2Servos (1, 90, 2, 110, 1, 60); // upande wowote
kuchelewesha (mudaDelay);
kuingiliana2Servos (1, 90, 2, 80, 1, 60); // upande wowote
kuchelewesha (mudaDelay);
}
batili spin2 () {
// interpolate2Servos (1, 80, 2, 90, 1, 50); // upande wowote
kuchelewesha (mudaDelay);
kuingiliana2Servos (1, 80, 2, 80, 1, 60); // upande wowote
kuchelewesha (mudaDelay);
kuingiliana2Servos (1, 110, 2, 80, 1, 60); // upande wowote
kuchelewesha (mudaDelay);
// interpolate2Servos (1, 110, 2, 110, 1, 60); // upande wowote
kuchelewesha (mudaDelay);
}
batili spin1 () {
// int deg = (degStart / (180 / 3.14));
kuelea deg = (deg Anza * 3.141592 / 180); // kubadilisha digrii kuwa radians
kuelea xPos = 90 + (cos (deg) * radius);
// xPos = pande zote (xPos);
kuelea yPos = 90 + (dhambi (deg) * radius);
// yPos = pande zote (yPos);
Serial.print ("degGap ="); Serial.print (degGap); Serial.print ("deg ="); Serial.print (deg); Serial.print ("cos ="); Serial.print (cos (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); // upande wowote
kuandika [xPos];
kuandika [yPos];
kuchelewesha (mudaDelay);
ikiwa (degStart> = degEnd) {
Mwanzo = 0;
ikiwa (degGap> 180)
GGG = 180;
// degGap = 0;
mwingine
kiwangoGap = degGap + 2;
Mgawo = degGap - 2;
// degStart = degStart + degGap;
}
Mwanzo = degStart + degGap;
}
batili spin4 () {
kwa (int i = 0; i <= 360; i ++) {
kuelea j = 20 * (cos ((3.14 * i) / 180)) + 90;
kuelea k = 20 * (dhambi ((3.14 * i) / 180)) + 90;
kuandika [j];
andika (k);
Printa ya serial (j);
Serial.print (",");
Serial.println (k);
kuchelewesha (100);
}
}
Ilipendekeza:
Manati ya Bendi ya Mpira wa Moja kwa Moja: Hatua 8 (na Picha)

Manati ya Bendi ya Mpira wa Moja kwa Moja: Umechoka na mapigano haya ya ofisini? Kunyakua zana zako na jenga manati yenye nguvu zaidi ya moja kwa moja katika jengo zima! Washinde wenzako au wenzako na ufurahie nguvu iliyotolewa kwa kubofya mara moja kwenye kitufe
Kujifunga Moja kwa Moja kwa Mchezo mdogo wa Mpira wa Skee: Hatua 10 (na Picha)

Kufunga moja kwa moja kwa Mchezo mdogo wa Skee-Mpira: Michezo ya Skee-Ball inayotengenezwa nyumbani inaweza kuwa ya kufurahisha kwa familia nzima, lakini shida yao imekuwa ukosefu wa bao moja kwa moja. Hapo awali niliunda mashine ya Skee-Ball ambayo iliweka mipira ya mchezo kwenye njia tofauti kulingana na sc
Mlishaji wa Kiwanda cha Moja kwa Moja cha WiFi Pamoja na Hifadhi - Usanidi wa Kilimo cha Ndani / Nje - Mimea ya Maji Moja kwa Moja na Ufuatiliaji wa Mbali: Hatua 21

Kilima cha Kiwanda cha Kiotomatiki cha WiFi kilicho na Hifadhi - Kuweka Kilimo cha ndani / Nje - Mimea ya Maji Moja kwa Moja na Ufuatiliaji wa Mbali: Katika mafunzo haya tutaonyesha jinsi ya kuanzisha mfumo wa kulisha mimea ya ndani / nje ambayo hunyunyizia mimea moja kwa moja na inaweza kufuatiliwa kwa mbali kutumia jukwaa la Adosia
Kutupa mpira moja kwa moja kwa Mbwa: Hatua 6

Kutupa mpira moja kwa moja kwa Mbwa: Sisi sote tuna mbwa, na kama kila mtu anajua, mbwa wanaweza kutumia siku nzima kucheza mpira. Ndio sababu, tulifikiria njia ya kujenga mtu anayetupa mpira moja kwa moja
Kilishi cha Mbwa Raspberry Pi Moja kwa Moja na Kijirusha Video Moja kwa Moja: Hatua 3

Feeder ya mbwa ya Raspberry Pi moja kwa moja & Kijirisho cha Moja kwa Moja cha Video: Hii ni Raspberry PI yangu inayowezesha feeder ya mbwa moja kwa moja. Nilikuwa nikifanya kazi kutoka asubuhi 11am hadi 9pm. Mbwa wangu huenda wazimu ikiwa sikumlisha kwa wakati. Iliyotafutwa google kununua feeders moja kwa moja ya chakula, hazipatikani India na kuagiza ghali op