Circuits

Paano Magtayo ng Ibang Walang Paggamit na Machine: Madaling Gumawa, at Mahirap Gamitin !: 9 Mga Hakbang (may Mga Larawan)

The Most Useless Machine EVER?

The Most Useless Machine EVER?

Talaan ng mga Nilalaman:

Anonim

Napakaraming walang gamit na makina ang itinayo, bakit nagtatayo ng isa pa? Lamang, ito ay talagang masaya :), masaya upang bumuo at masaya upang i-play sa.
Sinubukan kong bigyan ang bersyon na ito ng isang character, dahil lagi akong naramdaman na may isang taong "nag-iisip sa loob ng kahon", kaya narito ako sinubukan, Umaasa ako na nagtagumpay akong bigyan ng "kanyang" isang buhay!
Tuwang-tuwa ako na ibahagi sa iyo ang lahat ng mga hakbang, sa lahat ng pag-asa na madali mong bubuo sa iyo at bigyan ito ng mapait o mas mahusay na character! Ang aking bersyon ay batay sa Arduino, maaari mong isipin na ito ay isang overkill, ngunit ibinigay ang flexibility na ibinigay nito sa akin, sa palagay ko ito ay katumbas ng halaga.
Narito ang isang video ng lahat ng bagay magkasama. Mamaya, kami ay lumipat sa mga bahagi, hakbang, schematics at code
Ipaalam sa akin ang iyong mga komento at / o mga tanong kung mayroon man.
Sana ay masiyahan ka!
f.

Mga Kagamitan:

Hakbang 1: Paano Ito Gumagana?

Lahat ng bagay ay konektado sa isang Arduino board, naghihintay ang board hanggang lumipat ang nakatakda sa lohika HIGH, iyon ay, kapag ikaw ay pumitik sa switch, ang board ay nagpapahiwatig ng dalawang servo motors upang lumipat sa isang tiyak na paraan (higit pa sa na mamaya), pagkatapos nito , ang servo na konektado sa "kamay" ay pumitik sa switch pabalik sa OFF-posisyon, at bumalik sa kahon, na sinusundan ng servo ng "pinto". pagkatapos ay ang lahat ng bagay ay inuulit.
Kung nakita mo ang video sa itaas, sa tuwing ang toggle ay lumipat, ang makina ay tumugon sa ibang paraan, at ito ay ginagawa sa pamamagitan lamang ng pagsulat ng iba't ibang mga pag-andar na may iba't ibang timing sa code ng Arduino, (Tinatawagan ko sila na "Mga Paglilipat"). Sa bawat oras na lumipat ang switch, tumatawag ako ng isang bagong paglipat hanggang sa tapos na ang lahat, magsisimula na ako. tandaan na sa hakbang 9, nagbigay ako ng isa pang bersyon ng code na pumipili ng mga random na gumagalaw sa halip na sunud-sunod. Maaari kang magdagdag ng maraming gumagalaw hangga't gusto mo, hangga't mayroon kang sapat na memorya sa Arduino.
Ang Arduino ay palaging ON, ito ang dahilan kung bakit nagdagdag ako ng switch para sa baterya upang i-save ang ilang kapangyarihan kapag hindi ginagamit ang makina. Ako ay nagpaplano na gumamit ng isang pag-abala sa paglipat, sa halip ng kasalukuyang simpleng HIGH / LOW detection, at pagkabit nito sa sleep mode. Ito ay dapat i-save ang kapangyarihan kapag ang makina ay hindi ginagamit, at din na nagpapahintulot na ito ay laging handa (ngunit ito ay palubhain din ang code) Kaya, sa ngayon, ito ay isang simpleng ON / OFF switch, at ang board ay laging pinapatakbo .

Hakbang 2: Mga Bahagi

Kakailanganin mong:
Sapilitan:
1. Isang kahon
2. Anumang Arduino board na may PWM outputs (mangyayari ako na magkaroon ng isang lumang isa pagtula sa paligid, ang Diecimila)
3. Dalawang standard RC servo motors (ginamit ko ang Futaba - S3003, mayroon silang 3,2 Kg / cm metalikang kuwintas, higit sa sapat upang ilipat ang pinto o kamay)
4. Isang baterya na 6-12 V (Ginamit ko ang aking dr baterya ng AR, ito ay isang 11.1 v / 1000 mA)
3. Isang SPTT o SPST switch para sa trigger (talaga, anumang switch na nababagay sa iyo!)
5. Isa pang switch para sa baterya
6. Isang push button upang i-reset ang Arduino kung sakaling gusto mong i-restart ang mga gumagalaw / code mula sa itaas.
7. Ang ilang mga wire ng lumulukso

Opsyonal:
Kung sakaling gusto mong magdisenyo ng isang paglipat na kinabibilangan ng paglipat ng kahon sa paligid (tulad ng huling paglipat sa video), maaari kang makakuha ng:
1. Isang kalasag ng Arduino motor, ito rin ay madaling gamitin para sa iba pang mga proyekto (o maaari kang mag-disenyo ng isang H-tulay sa iyong sarili, hanapin ito)
2. Isang murang kotse sa RC upang maaari mong kunin ang DC motor at gear box nito
Bukod pa rito, sa seksyon na "opsyonal", nakapagtayo ako ng hardware de-bounce circuit upang magkaroon ng isang malinis na trigger kapag ang switch ay na-toggle on / off. Maaari itong lumaktaw at madaling ipatupad sa arduino software gamit ang mga pagkaantala o timers. Ginawa ko ang hardware na debounce dahil malapit na akong baguhin ang code upang gumamit ng mga interrupts, at dahil hindi pinapayagan ng huli ang maaasahang paggamit ng mga pagkaantala / timer sa mga gawain, kaya kailangan kong bumuo ng simpleng de-bounce circuit para magamit sa hinaharap . Kung nais mong laktawan ang bahaging ito, pagkatapos ay ikonekta ang isang simpleng switch / risistor sa pin 2 ng arduino at ipatupad ang isang software debounce routine.
Para sa hardware debounce:
1. 10mF electrolytic capacitor
2. 10K risistor
3. Isang logic HINDI gate i.e Inverter (maliit na tilad 74HC04) Ito ay may anim na inverters, ngunit kakailanganin mo lamang ang isa.
Let's build it …

Hakbang 3: Pagbuo ng Kahon

Maaari mong gamitin ang anumang kahon na nahanap mo na angkop. Nagtayo ako ng minahan, marahil hindi perpekto, ngunit pa rin magkano ang personal :)
1. Ginamit ko 2 sheet ng 5mm BALSA kahoy, napakadaling upang gumana sa paggamit ng isang pamutol, at medyo malakas na ibinigay nito napakalaking liwanag timbang.
2. Kumuha ng 5 tubes ng Cyanoacrylat glue (aka strong fast acting adhesives)
Heto na:
A 22 x 14 x 14 cm kahon

Hakbang 4: eskematiko

Sa itaas ay ang eskematiko (inilabas gamit Fritzing), na nagpapakita:
Itaas na bahagi: Ang arduino main board, 2 servos at switch connectivity. Tandaan na tulad ng nabanggit dati maaari mong palitan ang buong debounce (top-right) na circuit na may isang simpleng risistor / switch.
Ang parehong mga "pinto" at "kamay" servos ay pinapatakbo nang direkta mula sa 5v pin sa Arduino. Ang mga signal wire ay konektado sa pin 9 at 10 ayon sa pagkakabanggit. Ang mga pin ay sumusuporta sa PWM, kaya ginagamit ko ang mga ito upang makontrol ang anggulo / posisyon ng servo (mula 0 hanggang 180 degree max).
Tandaan: ang pindutan ng red push ay isang pag-reset lamang (katulad ng nakikita sa mukha ng arduino board). Idinagdag ko ito upang magkaroon ng mabilisang pag-access upang i-reset ang board / software sa anumang oras nang hindi binubuksan ang kahon. Nag-uugnay lamang ang RESET pin sa Ground upang gawing i-reset.
Ilalim na bahagi: kailangan kung nais mong gumamit ng DC motor at ilipat ang makina sa paligid. Ito ang arduino motor shield, ito ay naka-mount sa tuktok ng Arduino, kaya ang lahat ng mga pin ng parehong board ay konektado sa bawat isa. Ipinakikita ko ang mga ito sa ibaba bilang pinaghiwalay para sa kalinawan, sana! Ang kalasag na ito ay maaaring kontrolin ang hanggang sa 2 DC motor (2 channels A / B) na may hindi kapani-paniwala kadalian. Gumagamit ako ng isa ngayon. Pinapayagan nito na itakda ang code, direksyon, bilis at mga break ng alinman sa magagamit na 2 channel / motors. Ginagamit ko ang channel B gaya ng ipinakita na umuulan. kung saan pin
13 para sa direksyon, pin 11 para sa bilis at pin 8 para sa kontrol ng preno.
Ang baterya ay isang 11.1 / 1000 mA, na nakakonekta sa kalasag, kaya nagpapakain sa DC motor, ang pangunahing arduino board at ang servos. kung hindi mo ginagamit ang kalasag, maaari mong direktang ikonekta ang baterya sa bariles ng kapangyarihan sa pangunahing arduino board.

Hakbang 5: Pag-aayos ng Servos

Narito ang naka-install na aparador ng kamay at pinto:
Kailangan mo munang i-install ang servos sa kanilang mga tamang lugar, ito ay nangangailangan ng isang bit ng pagsubok at error hanggang makuha mo ang kinakailangang paggalaw. Maaari mong gamitin ang halimbawa ng Servo na ibinigay sa arduino IDE upang masubukan ang mga servos at ang halaga ng pagpapalihis na kinakailangan para sa bawat isa, at sa gayon ay magpasya sa pangwakas na pagpoposisyon at haba ng mga braso para sa pinto at mga servos ng kamay.
Ang mga armas ay gawa lamang mula sa kahoy ng balsa, ginawa ko itong mas makapal upang mapaglabanan ang ilang mga pansiwang.
Nasa ibaba kung paano ko ito ginawa. Isang tala lamang tungkol sa servo ng kamay. Kakailanganin mo ang servo shaft na direkta sa ilalim ng gilid ng pabalat (tulad ng ipinapakita sa ibaba), ito upang maiwasan ang pagkakaroon ng mahirap oras sa paggawa ng isang kamay na maaaring matagumpay na pindutin ang lumipat, at maaari ding bumalik sa kahon.


Hakbang 6: Pagkonekta sa Lumipat, Servos at Arduino

Gawin ang lahat ng mga koneksyon na nakikita sa eskematiko na hakbang, at subukan na ilagay ang lahat sa loob ng kahon katulad ng kung ano ang ipinapakita sa itaas:

Hakbang 7: Opsyonal: ang DC Motor at Baterya

Sa itaas ay kung paano ko inilagay ang DC motor gear box (na kinuha mula sa isang murang kotse ng RC), na nagpapakita rin ng humampas at lumipat ng pagkakalagay.
Siguraduhing ilagay ang gear na nakasentro hangga't maaari upang balansehin ang kahon, maaaring kailangan mong ilagay ang ilang timbang sa loob ng kahon upang balansehin ito nang higit pa pagkatapos ng huling pagpupulong, dahil ang baterya na ginamit ko ay medyo mabigat (100 gr) at naging sanhi ng ilang wiggling kapag lumilipat o inililipat ang kahon.
Tandaan na ang dc motor bilis Kinokontrol ng pin 11, Direksyon sa pamamagitan ng pin 13, at preno sa pin 8, ang mga ito ay itinuturing na channel B sa arduino motor shield.
Sa pamamagitan ng pagpupulong sinubukan kong itago ang lahat ng switch ng wires at iba pang mga sangkap upang magkaroon ng isang simpleng tunay na kahon. Nalalapat ito sa mga gulong, kaya ginawa ko ang isang rim sa paligid ng mga ito na nagho-host ng parehong mga gulong at baterya, at nagbibigay din ng access sa pulang pindutan sa pag-reset.

Hakbang 8: Ang Kodigo

Upang magsulat ng code para sa arduino, kailangan mo ang arduino IDE (i-download ito dito)
Ginagamit ko ang bersyon 1.0.5, siguraduhing piliin ang tamang COM port (windows) at uri ng board mula sa loob ng IDE, pagkatapos gamitin ang code sa ibaba, at pindutin ang pag-upload.
TANDAAN: Ang mga halaga na ginamit ko sa code upang itakda ang max pagpapalihis ng servos ay ginawa nang eksakto para sa kahong ito na isinasaalang-alang ang pagpoposisyon ng servos, axis at angles. Nakuha ko ito sa pamamagitan ng pagsubok. Kaya kailangan mong mag-isip ng iyong sariling mga halaga ayon sa iyong kahon at servo placement.
Para sa reference, sa ibaba ay ang min / max na mga halaga na ginamit ko para sa bawat servo tulad ng makikita mo ang mga ito na nagaganap sa code:
Ang pintuan:
80 pagtatago, 155 ganap na bukas
Ang kamay:
0 pagtatago, 129 pagtulak sa switch

Narito ang code (Mas mahusay na i-download ang file na naka-attach sa hakbang na ito sa halip ng kopyahin / i-paste mula sa ibaba):
# isama
Servo doorServo;
Servo handServo;
int switch_pin = 2; / / set switch sa pin 2
// mga variable ng motor
int motorThrottle = 11;
int motorDirection = 13;
int motorBrake = 8;
int pos = 0;
int selectedMove = 0; / / ilipat ang tagapili
int Testmove = 0; // mode ng pagsubok: itakda upang ilipat ang numero upang subukan lamang ang isang napiling paglipat
// (itakda sa Zero upang tumakbo nang normal i.e: roundrobbin sa amm moves)
walang bisa setup ()
{
Serial.begin (9600);
pinMode (switch_pin, INPUT);
doorServo.attach (9); // set door servo sa Pin 9 pwm
handServo.attach (10); // set hand servo sa Pin 10 pwm
doorServo.write (80); / / Itakda ang pinto sa pagtatago ng posisyon
handServo.write (0); / / Magtakda ng kamay sa pagtatago ng posisyon

/ / Setup Channel B, (dahil ang Channel A ay nakalaan sa pamamagitan ng pinto at mga servos ng kamay at hindi maaaring gamitin sa parehong oras)
pinMode (motorDirection, Output); / / Nagpasimula ng Motor Channel B pin
pinMode (motorBrake, Output); / / Nagpasimula ng Brake Channel B pin

}

walang bisa loop ()
{
kung (Testmove! = 0) {
selectedMove = Testmove;
}

// kung lumipat ang switch, pagkatapos ay ilipat ang pinto at kamay upang lumipat ito …
kung (digitalRead (switch_pin) == HIGH)
{

kung (selectedMove> 10) {selectedMove = 0; } / / kapag ang lahat ng mga gumagalaw ay nilalaro, ulitin ang mga gumagalaw mula simula
/ / sa ibaba ay ang lahat ng "Mga Paglilipat" na dinisenyo ko sa ngayon, ang bawat isa ay isang function na nakasulat sa ibaba sa code, isagawa ang mga pangalan, abit kakaiba? yes bilang ilang ay nakasulat sa arabic
kung (selectedMove == 0) {switchoff (); }
ibang tao kung (selectedMove == 1) {switchoff (); }
ibang tao kung (selectedMove == 2) {switchoffbitaraddod (); }
ibang tao kung (selectedMove == 3) {crazydoor (); }
ibang tao kung (selectedMove == 4) {crazyslow (); }
ibang tao kung (selectedMove == 5) {m7anika7anika (); }
ibang tao kung (selectedMove == 6) {m3alla2 (); }
ibang tao kung (selectedMove == 7) {switchoff (); }
ibang tao kung (selectedMove == 8) {matrix (); }
ibang tao kung (selectedMove == 9) {sneak (); }
ibang tao kung (selectedMove == 10) {zee7 (); }

kung (Testmove == 0) {
selectedMove ++; / / swith sa susunod na paglipat kung hindi sa test mode
}
}
}

// Library of moves
// pangunahing paglipat
walang bisa switchoff ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}

// ilipat 3: buksan at maghintay, pagkatapos ay ilipat ang kamay at maghintay, pagkatapos ay lumipat at itago
walang bisa switchoffbitaraddod ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (800);
// Paglipat ng kamay
para sa (pos = 0; pos <100; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (1000);
para sa (pos = 100; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 5)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);


}

}

/ ilipat 4: bukas na pinto at isara ito nang maraming beses, maghintay, at pagkatapos ay muling ibalik ang isang switch at itago.

walang bisa crazydoor ()
{

// Paglipat ng pinto
para sa (pos = 80; pos <125; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (pos);
pagkaantala (15);
}
// Paglipat ng pinto
para sa (pos = 80; pos <110; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 110; pos> = 80; pos- = 15)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (700);
// Paglipat ng pinto
para sa (pos = 80; pos <125; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (700);
/ Pagtatago ng pinto
para sa (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (pos);
pagkaantala (15);
}

// ---- ng paglipat ng ---- //
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 8)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 3)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 3)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 15)
{
doorServo.write (pos);
pagkaantala (15);
}

}

/ ilipat 5: bukas na pinto, pagkatapos ay ilipat ang kamay masyadong mabagal pasulong at bumalik sa pagtatago ng masyadong mabagal, at pagkatapos ay mabilis na isara ang pinto
walang bisa crazyslow ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 1)
{
doorServo.write (pos);
pagkaantala (30);
}

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 1)
{
handServo.write (pos);
pagkaantala (30);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 1)
{
handServo.write (pos);
pagkaantala (30);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 125; pos- = 1)
{
doorServo.write (pos);
pagkaantala (30);
}
pagkaantala (100);
para sa (pos = 125; pos> = 80; pos- = 4)
{
doorServo.write (pos);
pagkaantala (15);
}

}
/ ilipat 6:
walang bisa m7anika7anika () {
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <70; pos = 1)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (800);


/ Pagtatago ng pinto
para sa (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 130; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 130; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

handServo.write (40);
pagkaantala (1000);

// Paglipat ng kamay
para sa (pos = 40; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}


para sa (pos = 120; pos> = 80; pos - = 1)
{
doorServo.write (pos);
pagkaantala (15);
}



}
walang bisa m3alla2 () {
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <127; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (2000);

para sa (pos = 130; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

para sa (pos = 155; pos> = 140; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
para sa (pos = 140; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (500);
// nagtatago ng kamay
para sa (pos = 127; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}

walang laman na matris ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <80; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

para sa (pos = 80; pos <129; pos = 1)
{
handServo.write (pos);
pagkaantala (30);
}
pagkaantala (300);

para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (10);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

}
walang bisa sneak ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <130; pos = 1)
{
doorServo.write (pos);
pagkaantala (30);
}
pagkaantala (2000);

// Paglipat ng kamay
para sa (pos = 0; pos <40; pos = 1)
{
handServo.write (pos);
pagkaantala (30);
}

pagkaantala (500);

para sa (pos = 130; pos <155; pos = 4)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);

para sa (pos = 40; pos <90; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (500);
// nagtatago ng kamay
para sa (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);
para sa (pos = 70; pos <90; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);
para sa (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);

para sa (pos = 70; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}


walang bisa zee7 ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (2000);
// forward @ kalahating bilis sa kaliwa
digitalWrite (motorDirection, LOW); // Nagtatatag RIGHT direksyon ng Channel B
digitalWrite (motorBrake, LOW); // I-disengage ang Brake para sa Channel B
analogWrite (motorThrottle, 100); / / Spins ang motor sa Channel B sa buong bilis
pagkaantala (300);
digitalWrite (motorBrake, HIGH); // Eengage ang Brake para sa Channel B
pagkaantala (2000);

// pabalik @ kalahating bilis sa kanan
digitalWrite (motorDirection, HIGH); // Nagtatatag ng LEFT direksyon ng Channel B
digitalWrite (motorBrake, LOW); // I-disengage ang Brake para sa Channel B
analogWrite (motorThrottle, 100); / / Spins ang motor sa Channel B sa kalahating bilis
pagkaantala (300);
digitalWrite (motorBrake, HIGH); // Eengage ang Brake para sa Channel B
pagkaantala (1000);

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}


Hakbang 9: Opsyonal na Update: Detection Movement

Mayroon akong isang kalapitan sensor ngayon (GP2Y0A21), kaya ngayon maaari ko bang gamitin ito upang ilipat ang makina kung ang gumagamit ay nalalapit ang toggle switch :)
Para sa karagdagang hakbang na ito, ipinapalagay ko na itinayo mo ang mga gulong upang payagan ang kilusan (tingnan ang opsyonal na hakbang 8). Ang lahat ng natitira ngayon ay upang idagdag ang sensor at gumawa ng ilang mga pagbabago sa code para sa pagkakita ng kilusan.
Ang sensor ay may 3 wires, dilaw na signal wire na konektado sa pin 3 sa arduino, habang ang pula at itim ay konektado sa v5 at lupa ayon sa pagkakabanggit sa board.
Inilagay ko ang sensor na nakatago sa ilalim ng pinto tulad ng ipinakita sa larawan, kaya't maaari itong 'makita' ang kilusan ng gumagamit kapag bubukas ang pinto. eksakto kung ano ang kailangan ko!
Mayroon din akong baguhin ang code nang kaunti (dito) upang ipatupad ang isang routine detection routine (tingnan ang code, sa function zee7 () ), tulad na kapag nakita ang kilusan, ang kahon ay lilipat, una sa kanan, pagkatapos sa kaliwa, pagkatapos ay ang kamay ay lumilipad sa switch at itago. Ang code ay mabigat nagkomento, Umaasa ako hindi ko lumampas ang luto ito!
Maaari mong mahanap ang na-update na code sa ibaba, tandaan din na ginawa ko ang machine pinili ang gumagalaw sapalaran, ito ay maaaring mabago pabalik sa sunud-sunod sa pamamagitan ng simpleng setting boolean randomize = false;
Salamat LAHAT para sa iyong mahusay na mga mungkahi!
Ang code (Mas mahusay na i-download ang file na naka-attach sa hakbang na ito sa halip ng kopyahin / i-paste mula sa ibaba):
# isama
Servo doorServo;
Servo handServo;
unsigned long TimerA, TimerB; // timer para sa routine detection routine
int switch_pin = 2; / / set switch sa pin 2
// mga variable ng motor
int motorThrottle = 11;
int motorDirection = 13;
int motorBrake = 8;
// Mga Variable ng Distansya
int motionPin = 3; / / motion sensor pin sa analog 0
int lastDist = 0; / / upang matandaan ang huling distansya
int currentDist = 0;
int thresh = 200; // Threshold para Movement (itakda ito tulad na makuha mo ang nais na sensetivity ng paggalaw ng paggalaw)

int pos = 0;
int selectedMove = 0; / / ilipat ang tagapili
int Testmove = 0; // mode ng pagsubok: itakda upang ilipat ang numero upang subukan lamang ang isang napiling paglipat
// (itakda sa Zero upang tumakbo nang normal i.e: roundrobbin sa lahat ng mga gumagalaw)
boolean randomize = true; / / Kung totoo, ang kahon ay gagawin nang random, kung naka-set sa false pagkatapos ang mga gumagalaw ay tapos na nang sunud-sunod mula 1 hanggang 10

walang bisa setup ()
{
Serial.begin (9600);
pinMode (switch_pin, INPUT);
doorServo.attach (9); // set door servo sa Pin 9 pwm
handServo.attach (10); // set hand servo sa Pin 10 pwm
doorServo.write (80); / / Itakda ang pinto sa pagtatago ng posisyon
handServo.write (0); / / Magtakda ng kamay sa pagtatago ng posisyon
/ / Setup Channel B, dahil ang Channel A ay nakalaan sa pamamagitan ng pinto at mga servos ng kamay at hindi maaaring gamitin sa parehong oras
pinMode (motorDirection, Output); / / Nagpasimula ng Motor Channel B pin
pinMode (motorBrake, Output); / / Nagpasimula ng Brake Channel B pin

}

walang bisa loop ()
{
// kung lumipat ang switch, pagkatapos ay ilipat ang pinto at kamay upang lumipat ito …
kung (digitalRead (switch_pin) == HIGH)
{

kung (Testmove == 0)
{

kung (randomize == false)
{
kung (selectedMove> 10)
{
selectedMove = 0; / / Kapag ang lahat ng mga gumagalaw ay nilalaro, ulitin ang mga gumagalaw mula simula
}
}
iba pa
{
selectedMove = random (11);
}
}
iba pa
{
selectedMove = Testmove;
}
Serial.println (selectedMove);
kung (selectedMove == 0) {switchoff (); }
ibang tao kung (selectedMove == 1) {switchoff (); }
ibang tao kung (selectedMove == 2) {switchoffbitaraddod (); }
ibang tao kung (selectedMove == 3) {crazydoor (); }
ibang tao kung (selectedMove == 4) {crazyslow (); }
ibang tao kung (selectedMove == 5) {m7anika7anika (); }
ibang tao kung (selectedMove == 6) {m3alla2 (); }
ibang tao kung (selectedMove == 7) {switchoff (); }
ibang tao kung (selectedMove == 8) {matrix (); }
ibang tao kung (selectedMove == 9) {sneak (); }
ibang tao kung (selectedMove == 10) {zee7 (); }

kung (Testmove == 0 && randomize == false) {
selectedMove ++; // lumipat sa susunod na paglipat kung hindi sa mode ng pagsubok
}
}
}
// Library of moves
// pangunahing paglipat
walang bisa switchoff ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}

// ilipat 3: buksan at maghintay, pagkatapos ay ilipat ang kamay at maghintay, pagkatapos ay lumipat at itago
walang bisa switchoffbitaraddod ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (800);
// Paglipat ng kamay
para sa (pos = 0; pos <100; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (1000);
para sa (pos = 100; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 5)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);


}

}

/ ilipat 4: bukas na pinto at isara ito nang maraming beses, maghintay, at pagkatapos ay muling ibalik ang isang switch at itago.

walang bisa crazydoor ()
{

// Paglipat ng pinto
para sa (pos = 80; pos <125; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (pos);
pagkaantala (15);
}
// Paglipat ng pinto
para sa (pos = 80; pos <110; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 110; pos> = 80; pos- = 15)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (700);
// Paglipat ng pinto
para sa (pos = 80; pos <125; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (700);
/ Pagtatago ng pinto
para sa (pos = 125; pos> = 80; pos- = 5)
{
doorServo.write (pos);
pagkaantala (15);
}

// ---- ng paglipat ng ---- //
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 8)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 3)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 3)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 15)
{
doorServo.write (pos);
pagkaantala (15);
}

}

/ ilipat 5: bukas na pinto, pagkatapos ay ilipat ang kamay masyadong mabagal pasulong at bumalik sa pagtatago ng masyadong mabagal, at pagkatapos ay mabilis na isara ang pinto
walang bisa crazyslow ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 1)
{
doorServo.write (pos);
pagkaantala (30);
}

// Paglipat ng kamay
para sa (pos = 0; pos <129; pos = 1)
{
handServo.write (pos);
pagkaantala (30);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 1)
{
handServo.write (pos);
pagkaantala (30);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 125; pos- = 1)
{
doorServo.write (pos);
pagkaantala (30);
}
pagkaantala (100);
para sa (pos = 125; pos> = 80; pos- = 4)
{
doorServo.write (pos);
pagkaantala (15);
}

}
/ ilipat 6:
walang bisa m7anika7anika () {
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <70; pos = 1)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (800);


/ Pagtatago ng pinto
para sa (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 130; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 130; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

handServo.write (40);
pagkaantala (1000);

// Paglipat ng kamay
para sa (pos = 40; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}


para sa (pos = 120; pos> = 80; pos - = 1)
{
doorServo.write (pos);
pagkaantala (15);
}



}
walang bisa m3alla2 () {
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <127; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 155; pos> = 130; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (2000);

para sa (pos = 130; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

para sa (pos = 155; pos> = 140; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
para sa (pos = 140; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (500);
// nagtatago ng kamay
para sa (pos = 127; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}

walang laman na matris ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

// Paglipat ng kamay
para sa (pos = 0; pos <80; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

para sa (pos = 80; pos <129; pos = 1)
{
handServo.write (pos);
pagkaantala (30);
}
pagkaantala (300);

para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (10);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}

}
walang bisa sneak ()
{
// Paglipat ng pinto
para sa (pos = 80; pos <130; pos = 1)
{
doorServo.write (pos);
pagkaantala (30);
}
pagkaantala (2000);

// Paglipat ng kamay
para sa (pos = 0; pos <40; pos = 1)
{
handServo.write (pos);
pagkaantala (30);
}

pagkaantala (500);

para sa (pos = 130; pos <155; pos = 4)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);

para sa (pos = 40; pos <90; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (500);
// nagtatago ng kamay
para sa (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);
para sa (pos = 70; pos <90; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);
para sa (pos = 90; pos> = 70; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}
pagkaantala (100);

para sa (pos = 70; pos <129; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

para sa (pos = 129; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}
/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}

/ Ang paglipat na ito ay magbubukas ng pinto at maghintay para sa kilusan, kung napansin malapit sa switch,
/ / Ang kahon ay lilipat muna sa Kanan, at pagkatapos ay sa Kaliwang, at sa wakas ang kamay ay gumagalaw at lumiliko sa switch
walang bisa zee7 ()
{

//bukas na pinto
para sa (pos = 80; pos <155; pos = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
pagkaantala (1200); / / maghintay upang patatagin ang pagbabasa ng sensor pagkatapos buksan ang pinto

/ / Itakda ang timer at basahin ang sensor
/ / maghintay para sa paggalaw na lumalampas sa threshold o kung nag-expire ang timer (5 segundo),
lastDist = analogRead (motionPin);
TimerA = millis ();

habang (millis () - TimerA <= 5000)
{
currentDist = analogRead (motionPin);

// Ang kasalukuyang distansya ay lumihis mula sa huling distansya nang higit pa sa hangganan?
/ / kung oo, pagkatapos ay ilipat ang kahon sa kanan
kung ((currentDist> lastDist thresh || currentDist <lastDist - thresh) || currentDist> 300)
{
// forward @ kalahating bilis sa kaliwa (piliin ang bilis at pagkaantala
/ / (delay) (300) ayon sa kahon mo at baterya boltahe tulad na ang paggalaw ay kanais-nais)
digitalWrite (motorDirection, LOW); // Nagtatatag RIGHT direksyon ng Channel A
digitalWrite (motorBrake, LOW); // I-disengage ang Brake para sa Channel B
analogWrite (motorThrottle, 100); / / Spins ang motor sa Channel B sa buong bilis
pagkaantala (300);
digitalWrite (motorBrake, HIGH); // Eengage ang Brake para sa Channel B
pahinga;
}
lastDist = currentDist;
}

/ / Itakda ang timer at basahin ang sensor
/ / maghintay para sa paggalaw na lumalampas sa threshold o kung nag-expire ang timer (5 segundo),
pagkaantala (1200); / / maghintay upang patatagin ang pagbabasa ng sensor pagkatapos buksan ang pinto
lastDist = analogRead (motionPin);
TimerB = millis ();
habang (millis () - TimerB <= 5000)
{
currentDist = analogRead (motionPin);
/ / ang kahon ay lumipat sa kanan at ang kasalukuyang distansya ay lumihis mula sa huling distansya nang higit pa sa threshold?
// Kung oo, pagkatapos ay lumipat sa Kaliwa
kung ((currentDist> lastDist thresh || currentDist <lastDist - thresh) || currentDist> 300)
{
// pabalik @ kalahating bilis sa kanan (piliin ang bilis at pagkaantala
/ / (delay) (300) ayon sa kahon mo at baterya boltahe tulad na ang paggalaw ay kanais-nais)
digitalWrite (motorDirection, HIGH); // Nagtatatag ng LEFT direksyon ng Channel B
digitalWrite (motorBrake, LOW); // I-disengage ang Brake para sa Channel B
analogWrite (motorThrottle, 100); / / Spins ang motor sa Channel B sa kalahating bilis
pagkaantala (300);
digitalWrite (motorBrake, HIGH); // Eengage ang Brake para sa Channel B
pahinga;
}

lastDist = currentDist;

}
pagkaantala (100);
// Paglipat ng kamay
para sa (pos = 0; pos <130; pos = 4)
{
handServo.write (pos);
pagkaantala (15);
}

// nagtatago ng kamay
para sa (pos = 130; pos> = 0; pos- = 4)
{
handServo.write (pos);
pagkaantala (15);
}

/ Pagtatago ng pinto
para sa (pos = 155; pos> = 80; pos- = 3)
{
doorServo.write (pos);
pagkaantala (15);
}
}

Ginawa ng mga Tao ang Proyekto na Ito!

  • Ginawa ito ng AndyC159!

  • Ginawa ito ng SamL84!

  • ginawa ito ng melton1313!

Ginawa mo ba ang proyektong ito? Ibahagi ito sa amin!

Mga rekomendasyon

  • Screw Sorting Machine

  • PCB BOT (Mga Sumusunod sa Line, Paghadlang sa Paghadlang at Pagkontrol ng Bluetooth sa isang Single PCB)

  • Internet ng Mga Bagay na Class

  • Mga Kulay ng Rainbow Contest

  • Fandom Contest

  • Hamon ng Partido

194 Mga Talakayan

0

mga kababayan

4 na taon na ang nakakaraan sa Panimula

Salamat para dito! Ginawa ko ang aking unang proyekto ng Arduino batay sa itinuturo na ito: isang walang silbi na dragon!

4 tugon 0

Ajannmga kababayan

Sumagot 3 taon na ang nakakaraan

Ang iyong makina ng dragon ay kasindak-sindak. !!! Artistic

0

TJAOkevinmga kababayan

Sumagot 3 taon na ang nakakaraan

Kahanga-hanga !!!!!

0

riachimga kababayan

Sumagot 4 taon na ang nakakaraan sa Panimula

Ang galing mo :) !!!

Mahusay na pagkatao para sa isang Dragon! Nais ko na maaari mong gawing muli ang video habang ang pagkakaroon ng dragon direkta nakaharap sa camera (top-view), sa tingin ko ito ay masayang-maingay, kaya makita ang dila sneaking out!

Salamat sa pagbabahagi ng iyong video at natutuwa akong nakatulong

0

mga kababayanriachi

Sumagot 4 taon na ang nakakaraan sa Panimula

Sinubukan ko ang tuktok na pagtingin sa isang mas maaga na yugto ngunit hindi ito gumagana (nakikita ko ang sobra sa mga kalat sa loob) kaya inalis ko ito kapag kinuha ko ang video na ito. Tingin ko ikaw ay tama bagaman: sa huling yugto ay mukhang mahusay! Sa kasamaang palad ay ibinigay na ko ang dragon malayo … Kaya sa susunod na proyekto!

0

br1pro

4 na taon ang nakalipas

Masaya! mahirap na pag-aayos ng mga servos at disenyo ng kamay. Salamat sa instructable na ito!

1 sagot 0

riachibr1pro

Sumagot 4 taon na ang nakakaraan sa Panimula

Mahusay na trabaho tao! talagang ganda :) anumang video?

0

clincoln

5 taon na ang nakalilipas

Panoorin ang video dito muna tumawa ka ng asno

1 sagot 0

TobiasVclincoln

Sumagot 4 taon na ang nakakaraan sa Panimula

Alam kong ginawa ko! : D

0

rileyw

5 taon na ang nakalilipas

Super cool na ang video na ginawa mukhang ito ay may isang isip ng sarili nitong

0

Elitekilla117

5 taon na ang nakakaraan sa Panimula

Ang aking walang silbi machine na may arduino at code riachis! Ginawa sa isang tardis mula sa Dr.who. :)
http://www.youtube.com/watch?v=aDs0T52o6-M

2 tugon 0

riachiElitekilla117

Sumagot 5 taon na ang nakakaraan sa Panimula

LOVE IT !!!! :)) Tunay na tapos na ang tao, kaya masaya na makita ang iyong bombbox buhay! Ako din ang dramatization at ang musika: p hindi lamang maaaring ihinto ang aking sarili upang magmungkahi ng 3 maliit na pagbabago kung ako ay maaaring :)?
- Mas mahusay na ilagay ang makina sa nakatayo na posisyon, alam ko na ito ay mawawalan ng tulong ng gravity upang isara ang pinto, ngunit isang simpleng solusyon ay upang ilagay ang 2 goma banda na naka-attach sa loob ng pinto sa isang gilid at sa panloob na bahagi ng kahon para sa kabilang dulo, gagawin nito ang pinto na malapit kapag ang pinto ng pinto ay isinasara … suriin ang aking mga hakbang sa pagtatayo, makikita mo ang goma na banda sa Hakbang 6 …
- Kung ano man ang tungkol sa pagpipinta ng mga kamay sa itim, ito ay magiging mas palihim at makinis
! Gayundin ang kamay ng tip ay maaaring lagyan ng kulay sa duguan pula o pinalamutian ng isang nakatutuwang mukha o isang bagay tulad na ..
- alisin ang huling paglipat bilang walang mangyayari sa loob nito (dapat na ang isa ang gumagalaw sa kahon) at isulat ang iyong sariling paglipat …
Gayunpaman, kalimutan ang mga suhestiyon, mahal ko ang iyong machineeee! At salamat sa maraming salamat sa tao, mangyaring maaari mong bawasan ang mga ito at panatilihin ang video na nakatuon sa makina :)
Sana ang iyong gf nagustuhan ito!

0

Elitekilla117riachi

Sumagot 5 taon na ang nakakaraan sa Panimula

Hahah Salamat sa iyo para sa mga papuri :) Gusto ko talagang gawin ang higit pa sa ito ngunit dahil sa ang oras langutngot hindi ko maaaring magkasya sa maraming mga detalye na gusto ko. Gusto kong magdagdag ng kulay sa mga bisig ngunit walang oras para sa mga iyon. At gusto kong gumuhit ng isang mukha sa braso na may isang sharpie ngunit ito ay naka-balot up at handa upang ibigay sa kanya para sa Pasko. Hehehe. Sa tingin ko gusto niya ito. Gusto ko rin itong tumayo ngunit natatakot na ang mga banda ng goma ay maglalagay ng sobrang timbang sa mga servos. Ang pinto ay medyo mabigat. Ang huling paglilipat ko ay nag-iingat dahil pinapanatili mo ito sa pag-aalinlangan na naghihintay para mag-pop out. Hahaha ngunit pinahahalagahan ko ang lahat ng tulong sa aking kaibigan! Talagang sulit!

0

chuckletushy

5 taon na ang nakalilipas

Ito ang kailangan kong gawin … ito ay kahanga-hanga

0

wrs715

5 taon na ang nakakaraan sa Panimula

Ito ang unang proyekto na nakita ko gamit ang isang Arduino kung saan naisip ko, "Yeah, iyan ay katumbas ng halaga. Ngayon kailangan kong kumuha ng isa." Hindi kapani-paniwala trabaho!

0

siliconghost

5 taon na ang nakakaraan sa Panimula

Wow, awesome take on a common project! Mahalin ang iyong magsulid sa ginagawang mas kawili-wiling!

0

bob3030

5 taon na ang nakalilipas

Ang walang silbi na aparato ng isang tao ay lubos na kahanga-hanga sa ibang tao, sa mundong ito, naisip namin, masaya na magkaroon, hinahangaan ng marami, walang silbi na aparato. Salamat sa iyong mga pag-update sa proyekto. Salamat sa pag-post.

0

wobbler

5 taon na ang nakakaraan sa Panimula

Iniisip 1: Ang paggamit ng isang Arduino para sa mga ito ay katawa-tawa lamang na labis na labis
Pag-iisip 2: Pagkatapos panoorin ang video-Paggamit ng isang Arduino para sa ito ay purong henyo lamang!
Yumuko ako sa iyong pagkamalikhain!

0

stumitch

5 taon na ang nakakaraan sa Panimula

Mga seryoso na mahusay! Uri ng reminds ako ng isang Wall-E pagkatao. Salamat sa ganoong mahusay na proyekto!

0

gazillabytes

5 taon na ang nakakaraan sa Panimula

Tunay na walang silbi! Nice 'ible. Naka-inspirasyon ako at kailangang bumuo ng isa para sa aking mesa. Salamat.