![Klavieru flīzes, kas spēlē robota roku: 5 soļi Klavieru flīzes, kas spēlē robota roku: 5 soļi](https://i.howwhatproduce.com/images/001/image-322-69-j.webp)
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59
![Klavieru flīzes spēlē robota roku Klavieru flīzes spēlē robota roku](https://i.howwhatproduce.com/images/001/image-322-70-j.webp)
Grupu veido 2 automatizācijas inženieri no UCN, kuri nāca klajā ar izcilu ideju, ko mēs esam motivēti darīt un attīstīt. Idejas pamatā ir Arduino tāfele, kas kontrolē robotu roku. Arduino dēlis ir operācijas smadzenes, un tad operācijas izpildmehānisms - robotizētā roka - darīs to, kas tam nepieciešams. Sīkāks skaidrojums tiks sniegts vēlāk.
1. solis: aprīkojums
![Aprīkojums Aprīkojums](https://i.howwhatproduce.com/images/001/image-322-71-j.webp)
Robota roka:
Phantomx Pincher robotu roku komplekts Maek II (https://learn.trossenrobotics.com/38-interbotix-ro…)
Programmatūra robotam- https://www.arduino.cc/en/Main/OldSoftwareRelease… Krāsu noteikšanas kamera:
CMUcam5 Pixy kamera - (https://charmedlabs.com/default/pixy-cmucam5/)
Programmatūra - PixyMon (https://cmucam.org/projects/cmucam5/wiki/Install_PixyMon_on_Windows_Vista_7_8)
2. darbība: Arduino iestatīšana
![Arduino iestatīšana Arduino iestatīšana](https://i.howwhatproduce.com/images/001/image-322-72-j.webp)
Šeit varat redzēt iestatījumus uz tāfeles, kas ir ļoti vienkārši.
Kreisajā pusē ir barošanas avots.
Vidējais ir paredzēts pirmajam servo, kas vēlāk ir savienots ar citiem servos, servo pa servo.
Apakšējā daļa ir vieta, kur mēs kontrolējam dēli no datora vai klēpjdatora, kura otrā galā ir USB ieeja.
3. solis: galīgā programma
||| PROGRAMMA |||
#iekļaut
#include #include "pozes.h" #include // Pixy Library #include
#define POSECOUNT 5
BioloidController bioloid = BioloidController (1000000);
const int SERVOKONTS = 5; int id; int pos; Būla IDCheck; Būla RunCheck;
void setup () {pinMode (0, OUTPUT); ax12SetRegister2 (1, 32, 50); // iestatiet kopīgo numuru 1 reģistru 32 uz ātrumu 50. ax12SetRegister2 (2, 32, 50); // iestatiet savienojuma 2. numuru reģistru 32 uz ātrumu 50. ax12SetRegister2 (3, 32, 50); // iestatiet kopīgo numuru 3 reģistru 32 uz ātrumu 50. ax12SetRegister2 (4, 32, 50); // iestatiet kopīgo numuru 4 reģistru 32 uz ātrumu 50. ax12SetRegister2 (5, 32, 100); // iestatiet kopīgā numura 5 reģistru 32 līdz ātrumam 100. // inicializēt mainīgos id = 1; poz = 0; IDCheck = 1; RunCheck = 0; // atvērt seriālo portu Serial.begin (9600); kavēšanās (500); Serial.println ("#########################"); Serial.println ("Izveidota seriālā komunikācija.");
// Check Lipo Battery Voltage CheckVoltage ();
// Scan Servos, atgriešanās pozīcija MoveTest (); MoveHome (); MenuOptions (); RunCheck = 1; }
void loop () {// lasīt sensoru: int inByte = Serial.read ();
slēdzis (inByte) {
gadījums '1': MovePose1 (); pārtraukums;
gadījums '2': MovePose2 (); pārtraukums; gadījums '3': MovePose3 (); pārtraukums;
gadījums '4': MovePose4 (); pārtraukums;
gadījums '5': MoveHome (); pārtraukums; gadījums '6': Grab (); pārtraukums;
gadījums '7': LEDTest (); pārtraukums;
gadījums '8': RelaxServos (); pārtraukums; }}
void CheckVoltage () {// pagaidiet, tad pārbaudiet sprieguma (LiPO drošība) pludiņa spriegumu = (ax12GetRegister (1, AX_PRESENT_VOLTAGE, 1)) / 10.0; Serial.println ("#########################"); Serial.print ("Sistēmas spriegums:"); Sērijas nospiedums (spriegums); Serial.println ("volti"); ja (spriegums 10,0) {Serial.println ("Sprieguma līmeņi nomināli."); } ja (RunCheck == 1) {MenuOptions (); } Serial.println ("##########################"); }
void MoveHome () {kavēšanās (100); // ieteicamā pauze bioloid.loadPose (Home); // ielādēt pozu no FLASH, nextPose buferšķīdumā bioloid.readPose (); // nolasīt pašreizējās servo pozīcijās uz curPose buferi Serial.println ("#########################"); Serial.println ("Servo pārvietošana sākuma stāvoklī"); Serial.println ("#########################"); kavēšanās (1000); bioloid.interpolateSetup (1000); // uzstādīšana interpolācijai no strāvas-> nākamais vairāk nekā 1/2 sekundi (bioloid.interpolating> 0) {// dariet to, kamēr neesam sasnieguši savu jauno pozu bioloid.interpolateStep (); // pārvietot servos, ja nepieciešams. kavēšanās (3); } ja (RunCheck == 1) {MenuOptions (); }}
void MovePose1 () {kavēšanās (100); // ieteicamā pauze bioloid.loadPose (Pose1); // ielādēt pozu no FLASH, nextPose buferšķīdumā bioloid.readPose (); // nolasīt pašreizējās servo pozīcijās uz curPose buferi Serial.println ("#########################"); Serial.println ("Servo pārvietošana uz 1. pozīciju"); Serial.println ("#########################"); kavēšanās (1000); bioloid.interpolateSetup (1000); // uzstādīšana interpolācijai no strāvas-> nākamā vairāk nekā 1/2 sekundes, kamēr (bioloid.interpolating> 0) {// dariet to, kamēr neesam sasnieguši savu jauno pozu bioloid.interpolateStep (); // pārvietot servos, ja nepieciešams. kavēšanās (3); } SetPosition (3, 291); // iestatiet savienojuma 3 pozīciju uz '0' aizkavi (100); // gaidiet, kamēr savienojums pārvietosies, ja (RunCheck == 1) {MenuOptions (); }}
void MovePose2 () {kavēšanās (100); // ieteicamā pauze bioloid.loadPose (Pose2); // ielādēt pozu no FLASH, nextPose buferšķīdumā bioloid.readPose (); // nolasīt pašreizējās servo pozīcijās uz curPose buferi Serial.println ("#########################"); Serial.println ("Servo pārvietošana uz 2. pozīciju"); Serial.println ("#########################"); kavēšanās (1000); bioloid.interpolateSetup (1000); // uzstādīšana interpolācijai no strāvas-> nākamais vairāk nekā 1/2 sekundi (bioloid.interpolating> 0) {// dariet to, kamēr neesam sasnieguši savu jauno pozu bioloid.interpolateStep (); // pārvietot servos, ja nepieciešams. kavēšanās (3); } SetPosition (3, 291); // iestatiet locītavas 3 pozīciju uz '0' aizkavi (100); // gaidiet, kamēr savienojums pārvietosies, ja (RunCheck == 1) {MenuOptions (); }} void MovePose3 () {kavēšanās (100); // ieteicamā pauze bioloid.loadPose (Pose3); // ielādēt pozu no FLASH, nextPose buferšķīdumā bioloid.readPose (); // nolasīt pašreizējās servo pozīcijās uz curPose buferi Serial.println ("#########################"); Serial.println ("Servo pārvietošana uz 3. pozīciju"); Serial.println ("#########################"); kavēšanās (1000); bioloid.interpolateSetup (1000); // uzstādīšana interpolācijai no strāvas-> nākamā vairāk nekā 1/2 sekundes, kamēr (bioloid.interpolating> 0) {// dariet to, kamēr neesam sasnieguši savu jauno pozu bioloid.interpolateStep (); // pārvietot servos, ja nepieciešams. kavēšanās (3); } SetPosition (3, 291); // iestatiet locītavas 3 pozīciju uz '0' aizkavi (100); // gaidiet, kamēr savienojums pārvietosies, ja (RunCheck == 1) {MenuOptions (); }}
void MovePose4 () {kavēšanās (100); // ieteicamā pauze bioloid.loadPose (Pose4); // ielādēt pozu no FLASH, nextPose buferšķīdumā bioloid.readPose (); // nolasīt pašreizējās servo pozīcijās uz curPose buferi Serial.println ("#########################"); Serial.println ("Servo pārvietošana uz 4. pozīciju"); Serial.println ("#########################"); kavēšanās (1000); bioloid.interpolateSetup (1000); // uzstādīšana interpolācijai no strāvas-> nākamā vairāk nekā 1/2 sekundes, kamēr (bioloid.interpolating> 0) {// dariet to, kamēr neesam sasnieguši savu jauno pozu bioloid.interpolateStep (); // pārvietot servos, ja nepieciešams. kavēšanās (3); } SetPosition (3, 291); // iestatiet savienojuma 3 pozīciju uz '0' aizkavi (100); // gaidiet, kamēr savienojums pārvietosies, ja (RunCheck == 1) {MenuOptions (); }}
void MoveTest () {Serial.println ("########################")); Serial.println ("Kustības zīmju testa inicializēšana"); Serial.println ("#########################"); kavēšanās (500); id = 1; poz = 512; while (id <= SERVOCOUNT) {Serial.print ("Moving Servo ID:"); Sērijas.println (id);
while (poz> = 312) {SetPosition (id, pos); poz = pos--; kavēšanās (10); }
while (poz <= 512) {SetPosition (id, pos); poz = pos ++; kavēšanās (10); }
// atkārtot līdz nākamajam servo ID id = id ++;
} ja (RunCheck == 1) {MenuOptions (); }}
void MenuOptions () {Serial.println ("########################")); Serial.println ("Lūdzu, ievadiet opciju 1-5, lai vēlreiz palaistu atsevišķus testus."); Serial.println ("1) 1. pozīcija"); Serial.println ("2) 2. pozīcija"); Serial.println ("3) 3. pozīcija"); Serial.println ("4) 4. pozīcija"); Serial.println ("5) Sākuma stāvoklis"); Serial.println ("6) Pārbaudiet sistēmas spriegumu"); Serial.println ("7) Veikt LED testu"); Serial.println ("8) Relax Servos"); Serial.println ("#########################"); }
anulēts RelaxServos () {id = 1; Serial.println ("#########################"); Serial.println ("Relaksējoši servi."); Serial.println ("#########################"); while (id <= SERVOCOUNT) {Relax (id); id = (id ++)%SERVOCOUNT; kavēšanās (50); } ja (RunCheck == 1) {MenuOptions (); }}
void LEDTest () {id = 1; Serial.println ("#########################"); Serial.println ("Running LED Test"); Serial.println ("#########################"); while (id <= SERVOCOUNT) {ax12SetRegister (id, 25, 1); Serial.print ("LED ON - Servo ID:"); Sērijas.println (id); kavēšanās (3000); ax12SetRegister (id, 25, 0); Serial.print ("LED OFF - Servo ID:"); Sērijas.println (id); kavēšanās (3000); id = id ++; } ja (RunCheck == 1) {MenuOptions (); }}
void Grab () {SetPosition (5, 800); // iestatiet savienojuma 1 pozīciju uz “0” aizkavi (100); // pagaidiet, līdz savienojums pārvietosies
}
Mēs esam balstījuši savu programmu uz ražotāja PincherTest programmu ar dažiem lieliem pielāgojumiem pozicionēšanas gadījumā. Mēs izmantojām pozas.h, lai robotam atmiņā būtu pozīcijas. Pirmkārt, mēs centāmies izveidot savu spēles roku ar Pixycam automātisku, taču gaismas un mazu ekrāna problēmu dēļ tas nevarēja notikt. Robotam ir pamata mājas pozīcija, pēc programmas augšupielādes tas pārbaudīs visus robotā atrastos servos. Mēs esam iestatījuši pozas 1-4 pogām, tāpēc to būs viegli atcerēties. Jūtieties brīvi izmantot programmu.
4. darbība. Video ceļvedis
5. darbība. Secinājums
Noslēgumā jāsaka, ka robots mums ir mazs jautrs projekts un jautra rotaļa un eksperiments. Es iesaku jums to izmēģināt un arī pielāgot.
Ieteicams:
Spēle ar stabilu roku: 6 soļi
![Spēle ar stabilu roku: 6 soļi Spēle ar stabilu roku: 6 soļi](https://i.howwhatproduce.com/images/008/image-23852-j.webp)
Stabila roku spēle: Šajā projektā es jums parādīšu, kā izveidot stabilu roku spēli. Tas izmanto ļoti vienkāršu ķēdi un ir izgatavots no cieta stieples, kuru varat saliekt jebkurā formā
Pavirziet roku, lai kontrolētu OWI robotu roku Nav pievienotas virknes: 10 soļi (ar attēliem)
![Pavirziet roku, lai kontrolētu OWI robotu roku Nav pievienotas virknes: 10 soļi (ar attēliem) Pavirziet roku, lai kontrolētu OWI robotu roku Nav pievienotas virknes: 10 soļi (ar attēliem)](https://i.howwhatproduce.com/images/002/image-3530-28-j.webp)
Pavirziet roku, lai kontrolētu OWI robotu roku … Nav pievienota virkne: IDEJA: vietnē Instructables.com (vismaz 2015. gada 13. maijā) ir vismaz vēl 4 projekti, kas saistīti ar OWI robotu rokas modificēšanu vai kontroli. Nav pārsteidzoši, jo tas ir tik lielisks un lēts robotu komplekts, ar kuru spēlēties. Šis projekts ir līdzīgs
Arduino - klavieru flīzes: 16 soļi (ar attēliem)
![Arduino - klavieru flīzes: 16 soļi (ar attēliem) Arduino - klavieru flīzes: 16 soļi (ar attēliem)](https://i.howwhatproduce.com/images/001/image-1682-89-j.webp)
Arduino - klavieru flīzes: Sveiki, interneta ļaudis! Šis būs jautājums par to, kā padarīt to, kas NOTEIKTI nav mobilās spēles pārrāvums arduino uno r3. Lai sāktu, jums būs nepieciešamas visas daļas, kas ir šādas ! 1x Arduino Uno r3 (42 ASV dolāri) 2x LCD tastatūras vairogs (katrs 19 USD) 5
KĀ MONTĒT IMPRESĪVU KOKA ROBOTA ROKU (3. DAĻA: ROBOTA ROKA) - PAMATOJOTIES uz MIKRO: BITN: 8 soļi
![KĀ MONTĒT IMPRESĪVU KOKA ROBOTA ROKU (3. DAĻA: ROBOTA ROKA) - PAMATOJOTIES uz MIKRO: BITN: 8 soļi KĀ MONTĒT IMPRESĪVU KOKA ROBOTA ROKU (3. DAĻA: ROBOTA ROKA) - PAMATOJOTIES uz MIKRO: BITN: 8 soļi](https://i.howwhatproduce.com/images/001/image-2767-95-j.webp)
KĀ MONTĒT IMPRESĪVU KOKA ROBOTA ROKU (3. DAĻA: ROBOTA ROKA) - PAMATOJOTIES MIKRO: BITN: Nākamais instalēšanas process ir balstīts uz izvairīšanās šķēršļu režīma pabeigšanu. Iepriekšējā sadaļā instalēšanas process ir tāds pats kā instalēšanas process līniju izsekošanas režīmā. Tad apskatīsim galīgo A formu
Lodēšanas flīzes (AKA - galda aizsargs): 3 soļi
![Lodēšanas flīzes (AKA - galda aizsargs): 3 soļi Lodēšanas flīzes (AKA - galda aizsargs): 3 soļi](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10962131-soldering-tile-aka-the-table-protector-3-steps-0.webp)
Lodēšanas flīze (AKA The Table Protector): Mani vecāki sāk kliegt uz mani, ka uz baltā flīžu galda ir izkusis lodmetāls un plūsmas atlikumi. Tas nāk nost, bet dažkārt ir mazliet grūts. Tas bija ļoti vienkāršs projekts. Tas maksā zem 10 USD, un to var izgatavot mazāk nekā 5 minūtēs. S