Obsah:

Sériový ovládač na báze Arduino: 6 krokov
Sériový ovládač na báze Arduino: 6 krokov

Video: Sériový ovládač na báze Arduino: 6 krokov

Video: Sériový ovládač na báze Arduino: 6 krokov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Sériový ovládač na báze Arduino
Sériový ovládač na báze Arduino
Sériový ovládač na báze Arduino
Sériový ovládač na báze Arduino

Jedná sa o jednoduchý sériový radič pre viac servo založených na Arduine. (aj môj prvý pokyn:))

Väčšina práce v tomto smere pochádzala z toho, že sa softvér porozprával s arduino a vytvoril protokol na prenos údajov. Čo sa týka hardvérového aspektu, všetko, čo som použil, boli dve servá (tu štandardné servo Parallax.) Sparkfun Arduino ProtoShield a Arduino Duemilanove s ATMEGA328, ale väčšinu týchto častí je možné nahradiť podobnými položkami. Tento projekt som vymyslel ako súčasť RC systému, ale nastavenie komunikácie trvalo veľa času. Ak má niekto nejaké vylepšenia, nápady alebo chyby, neváhajte sa vyjadriť. EDIT: Napísal som to pred chvíľou, práve som sa k publikovaniu dostal nedávno.

Krok 1: Veci, ktoré môžete potrebovať …

Veci, ktoré môžete potrebovať…
Veci, ktoré môžete potrebovať…
Veci, ktoré môžete potrebovať…
Veci, ktoré môžete potrebovať…

Niektoré veci, ktoré budete potrebovať na stavbu tohto. 1. Doska Arduino (vyberiete) 2. dve (alebo jedno) servo 3. prepojovacie vodiče 4. Visual Studio 2008 Express - prepojenie (voliteľné) 5. Arduino IDE - prepojenie Ospravedlňujeme sa fanúšikom Linuxu a Apple, môj program beží iba na Windows, ale stále môžete ručne odosielať sériové príkazy na arduino bez zmeny kódu.

Krok 2: Pripojte hardvér

Pripojte hardvér
Pripojte hardvér

V tomto kroku nie je nič zložité. Stačí pripojiť jedno servo k pinu 9 a druhé ku kolíku 10.

Krok 3: Naprogramujte Arduino

Naprogramujte Arduino
Naprogramujte Arduino

teraz môžete náčrt nahrať do arduina.

Tu je jednoduché rozdelenie kódu: #include Servo myservo; // vytvorenie objektu servo na ovládanie serva Servo myservo1; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // pre prichádzajúce sériové údaje char data [10]; const char verify [8] = "ma11hew"; príkaz char [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // otvára sériový port, nastavuje rýchlosť prenosu dát Serial.println („Ahoj Arduino tu!“); // pridané na identifikáciu sériového portu Týmto sa nastaví sériový port a serva. int i; pre (i = 0; i <180; i ++) {myservo.write (i); oneskorenie (15); } myservo.write (5); pre (i = 0; i <180; i ++) {myservo1.write (i); oneskorenie (15); } myservo1.write (5); } Jednoduchý pohyb zametania na overenie správneho fungovania serva. void loop () {pripravený = 0; počítadlo = 0; while (1 == 1) {if (Serial.read ()! = verify [counter]) {break; } if (counter == 6) {delay (20); príkaz [0] = Serial.read (); príkaz [1] = Serial.read (); // if (Serial.read () == ((príkaz [1] * 12) % 8)) // {ready = 1; //} Serial.println ("uložený príkaz"); } počítadlo ++; oneskorenie (2); } toto skontroluje, či je v sériovej vyrovnávacej pamäti správny autorizačný reťazec, a potom chytí dva bajty pre príkaz. komentovaný príkaz if umožňuje predbežný kontrolný súčet, ale sťažil by manuálne rozhranie. ready je možné nastaviť na 0, takže príkazy nebudú analyzované, ako napríklad v prípade poškodených údajov. // prehľadávanie príkazov if (ready == 1) {if (príkaz [0] == 'T') {príkaz [0] = 0; Serial.print ("ovládanie plynu na kolíku 9:"); Serial.println (mapa (príkaz [1], 32, 126, 2, 180), DEC); myservo.write (mapa (príkaz [1], 32, 126, 2, 180)); } if (príkaz [0] == 'S') {príkaz [0] = 0; Serial.print ("ovládanie plynu na kolíku 10 až:"); Serial.println (mapa (príkaz [1], 32, 126, 2, 180), DEC); myservo1.write (mapa (príkaz [1], 32, 126, 2, 180)); }}} zvyšok kódu je vyhľadať v príkaze platné príkazy (T alebo S.), ak sa zhodujú, vezme ďalší bajt a pošle ho na servo. viac na mape (príkaz [1], 32, 126, 2, 180) neskôr … kód tu je možné rozšíriť o čokoľvek, čo budete potrebovať (napr. svetlá, motory, IR atď.), tento kód by mal fungovať dobre bez úpravy.

Krok 4: Nainštalujte softvér

Nainštalujte softvér
Nainštalujte softvér

Mám dva spôsoby, ako nainštalovať tento … nsis inštalátor: Stiahnite si samorozbaľovací inštalátor nižšie a spustite ho. Počas inštalácie budete mať možnosť nainštalovať zdroje. inštalačný binárny balík nainštaluje základné c ++ dll, takže ho možno spustiť na počítači bez nainštalovaného vizuálneho c ++. Akonáhle sa inštalátor dokončí, môžete ho spustiť z pracovnej plochy alebo z ponuky Štart. spôsob zip (neoverený): Stiahnite a spustite, malo by to fungovať. možno. (Archív zip má rovnakú štruktúru priečinkov vytvorenú inštalátorom, bez zdrojov. Nemám počítač bez vizuálneho štúdia, na ktorom by som ho mohol otestovať, takže nemusí fungovať.)

Krok 5: Použite program rozhrania

Použite program rozhrania
Použite program rozhrania
Použite program rozhrania
Použite program rozhrania

Ak chcete program použiť, najskôr vyberte prenosovú rýchlosť definovanú v náčrte arduina. Nemodifikovaná skica má predvolenú hodnotu 38 400 baudov, ale môže byť zmenená tak, aby vyhovovala vašim potrebám napríklad v prípade pomalšieho rádiového spojenia. poznámka: prenosové rýchlosti vyššie ako 38400 neboli veľmi stabilné, myslím si, že je to kvôli tomu, že sa uart zapĺňa skôr, ako je možné údaje spracovať. Ďalej vyberte port COM, ktorý chcete použiť. program má predvolenú hodnotu COM4, určite ho zmeňte, inak sa program pokazí. Nakoniec kliknite na položku otvoriť. Ak všetko prebehlo dobre, program otvorí zvolený sériový port pri zvolenej prenosovej rýchlosti. Ak nie, program pravdepodobne zlyhá s neošetrenou výnimkou. skontrolujte, či je port správny, a skúste to znova. Pomocou textových polí odošlite arduino priame príkazy. „Mapa (príkaz [1], 32, 126, 2, 180)“mierkuje všetkých 94 možných príkazov, * priestor * až ~, čitateľné arduinom v ASCII na 2 až 180 pre servo. ľubovoľný bajt menší ako ASCII 32 (medzera) alebo viac ako 126 (~), predvolene 63 (?) Riadiace lišty poskytujú príjemnejšie rozhranie pre priame príkazy. každý krok posiela sériový príkaz arduino postupne.

Krok 6: Buďte kreatívni

Buďte kreatívni!
Buďte kreatívni!
Buďte kreatívni!
Buďte kreatívni!

Vymyslite skvelé veci, ktoré sa dajú pomocou tohto vyrobiť. Niekoľko nápadov: 1. Diaľkový plyn pre auto. 2. Držiak 3D kamery 3. podvodný rover Bavte sa !!

Odporúča: