Përmbajtje:

Servo Servo Servo Controller Servo: 6 hapa
Servo Servo Servo Controller Servo: 6 hapa

Video: Servo Servo Servo Controller Servo: 6 hapa

Video: Servo Servo Servo Controller Servo: 6 hapa
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Nëntor
Anonim
Servo Servo Kontrolluesi Serial i Bazuar
Servo Servo Kontrolluesi Serial i Bazuar
Servo Servo Kontrolluesi Serial i Bazuar
Servo Servo Kontrolluesi Serial i Bazuar

Ky është një kontrollues i thjeshtë serik për servos të shumtë bazuar në Arduino. (udhëzimi im i parë gjithashtu:))

Shumica e punës në këtë erdhi nga marrja e softuerit për të folur me arduino dhe bërja e një protokolli për transferimin e të dhënave. Sa i përket aspektit të harduerit, gjithçka që kam përdorur ishte dy servos (servo standarde Parallax këtu.) Një Sparkfun Arduino ProtoShield dhe një Arduino Duemilanove me ATMEGA328, por shumica e këtyre pjesëve mund të zëvendësohen me artikuj të ngjashëm. E mendova këtë projekt si pjesë të një sistemi RC, por krijimi i komunikimit mori shumë kohë. Nëse dikush ka ndonjë përmirësim, ide ose defekte, ju lutem mos ngurroni të komentoni. EDIT: E kam shkruar këtë pak kohë më parë, sapo e kam botuar atë kohët e fundit.

Hapi 1: Gjërat për të cilat mund të keni nevojë…

Gjërat për të cilat mund të keni nevojë…
Gjërat për të cilat mund të keni nevojë…
Gjërat për të cilat mund të keni nevojë…
Gjërat për të cilat mund të keni nevojë…

Disa gjëra që ju nevojiten për ta ndërtuar këtë. 1. Bordi Arduino (ju zgjidhni) 2. dy (ose një) servos 3. tela kërcyes 4. Visual Studio 2008 Express - lidhje (opsionale) 5. Arduino IDE - lidhje Na falni për fansat e Linux dhe Apple, programi im funksionon vetëm dritaret tani për tani, por ju ende mund të dërgoni manualisht komanda serike në arduino pa ndryshuar kodin.

Hapi 2: Lidhni pajisjen

Lidhni pajisjen
Lidhni pajisjen

Asgjë shumë komplekse në këtë hap. Thjesht lidhni një servo me pin 9 dhe tjetrin me pin 10.

Hapi 3: Programoni Arduino

Programoni Arduino
Programoni Arduino

tani mund ta ngarkoni skicën në arduino.

Këtu është një ndarje e thjeshtë e kodit: #include Servo myservo; // krijoni një servo objekt për të kontrolluar një servo Servo myservo1; int hyrëseByte = 0, datacount = 0, counter = 0, gati = 0; // për të dhënat seriale hyrëse të dhënat char [10]; const char verifiko [8] = "ma11hew"; komanda char [3]; void setup () {myservo.attach (9); myservo1.tach (10); Serial.fillo (38400); // hap portin serik, vendos shpejtësinë e të dhënave Serial.println ("Përshëndetje Arduino Këtu!"); // shtuar për të ndihmuar në identifikimin e portit serik Kjo vetëm vendos konfigurimin e serisë dhe servos. int i; për (i = 0; i <180; i ++) {myservo.shkruaj (i); vonesa (15); } myservo.write (5); për (i = 0; i <180; i ++) {myservo1.shkruaj (i); vonesa (15); } myservo1.shkruaj (5); } Lëvizje e thjeshtë gjithëpërfshirëse për të verifikuar funksionimin e servove në mënyrë korrekte. lak void () {gati = 0; numërues = 0; ndërsa (1 == 1) {if (Serial.lexo ()! = verifiko [kundër] {pushim; } if (kundër == 6) {vonesë (20); komanda [0] = Serial.read (); komanda [1] = Serial.lex (); // nëse (Serial.lex () == ((komanda [1] * 12) % 8)) // {gati = 1; //} Serial.println ("komanda e ruajtur"); } sportel ++; vonesa (2); } kjo kontrollon bufferin serik për vargun e saktë të autorizimit, pastaj kap dy byte për komandën. deklarata e komentuar nëse lejon një kontroll të improvizuar, por do ta bënte të vështirë ndërhyrjen manuale. gati mund të vendoset në 0 kështu që komandat nuk do të analizohen siç është në rastin e të dhënave të korruptuara. // kërko përmes komandave if (gati == 1) {if (komanda [0] == 'T') {komanda [0] = 0; Serial.print ("kontrolli i mbytjes në pin 9 në:"); Serial.println (harta (komanda [1], 32, 126, 2, 180), DEC); myservo.write (harta (komanda [1], 32, 126, 2, 180)); } if (komanda [0] == 'S') {komanda [0] = 0; Serial.print ("kontrolli i mbytjes në pin 10 në:"); Serial.println (harta (komanda [1], 32, 126, 2, 180), DEC); myservo1.shkruaj (harta (komanda [1], 32, 126, 2, 180)); }}} pjesa tjetër e kodit është për të kërkuar komandën për komandat e vlefshme (T ose S.) nëse secila prej tyre merr bajtin tjetër dhe e dërgon atë në servo. më shumë në hartë (komanda [1], 32, 126, 2, 180) më vonë … kodi këtu është i zgjerueshëm për çdo gjë tjetër që mund t'ju nevojitet (p.sh. dritat, motorët, IR, etj.) ky kod duhet të funksionojë mirë pa modifikimet.

Hapi 4: Instaloni Softuerin

Instaloni Softuerin
Instaloni Softuerin

Unë kam dy mënyra për të instaluar këtë instalues… nsis: Shkarkoni instaluesin vetë nxjerrës më poshtë dhe drejtojeni atë. Do të keni mundësinë të instaloni burime gjatë instalimit. paketa binare e instaluesit instalon cll+ cll+ dll në mënyrë që të mund të ekzekutohet në një kompjuter pa c ++ vizual të instaluar tashmë. Pasi të përfundojë instaluesi, mund ta ekzekutoni nga desktopi ose të filloni menunë. mënyrë zip (e pa verifikuar): Shkarkoni dhe ekzekutoni, duhet të funksionojë. ndoshta. (Arkivi zip ka të njëjtën strukturë dosje të krijuar nga instaluesi, pa burime. Unë nuk kam një makinë pa studio vizuale për ta testuar atë në mënyrë që të mos funksionojë.)

Hapi 5: Përdorni Programin e Ndërfaqes

Përdorni Programin e Ndërfaqes
Përdorni Programin e Ndërfaqes
Përdorni Programin e Ndërfaqes
Përdorni Programin e Ndërfaqes

Për të përdorur programin, së pari zgjidhni normën e baudit të përcaktuar në skicën arduino. Skica e pa modifikuar është e paracaktuar në 38400 baud, por mund të ndryshohet për t'iu përshtatur nevojave tuaja për gjëra të tilla si një lidhje radioje më e ngadaltë. shënim: normat e baud më të larta se 38400 nuk kanë qenë shumë të qëndrueshme, mendoj se kjo ndodh sepse uart mbushet para se të dhënat të mund të përpunohen. Tjetra, zgjidhni portën COM për t'u përdorur. programi i paracaktuar në COM4 sigurohuni që ta ndryshoni atë ose programi do të rrëzohet. Së fundi, klikoni hapur. Nëse gjithçka shkoi mirë, programi do të hapë portën seriale të zgjedhur me shpejtësinë e zgjedhur. Nëse jo, programi ndoshta do të rrëzohet me një përjashtim të pakontrolluar. sigurohuni që porta është e saktë dhe provoni përsëri. Përdorni kutitë e tekstit për të paraqitur komanda të drejtpërdrejta në arduino. "Harta (komanda [1], 32, 126, 2, 180)" shkallëzon të gjitha 94 komandat e mundshme, * hapësirë * deri në ~, të lexueshme nga arduino në ASCII në 2 deri në 180 për servo. çdo bajt më pak se ASCII 32 (hapësirë) ose mbi 126 (~) parazgjedhje në 63 (?) Shiritat e pistave ofrojnë një ndërfaqe eaiser për komandat direkte. çdo hap dërgon një komandë serike në arduino në mënyrë graduale.

Hapi 6: Bëhuni kreativ

Bëhuni Kreativ!
Bëhuni Kreativ!
Bëhuni Kreativ!
Bëhuni Kreativ!

Mendoni gjëra interesante për të bërë me këtë. Disa ide: 1. Mbytës i largët për një makinë. 2. Montimi i kamerës 3D 3. rover nënujor Argëtohuni !!

Recommended: