Sommario:
- Passaggio 1: cose di cui potresti aver bisogno…
- Passaggio 2: collegare l'hardware
- Passaggio 3: programma Arduino
- Passaggio 4: installazione del software
- Passaggio 5: utilizzare il programma di interfaccia
- Passaggio 6: diventa creativo
Video: Servo controller seriale basato su Arduino: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:06
Questo è un semplice controller seriale per più servi basato su Arduino. (anche il mio primo istruttore:))
La maggior parte del lavoro è venuto dal far parlare il software con l'arduino e creare un protocollo per il passaggio dei dati. Per quanto riguarda l'aspetto hardware, tutto ciò che ho usato sono stati due servi (servo standard Parallax qui.) Uno Sparkfun Arduino ProtoShield e un Arduino Duemilanove con ATMEGA328, ma la maggior parte di queste parti può essere sostituita con oggetti simili. Ho pensato a questo progetto come parte di un sistema RC, ma impostare la comunicazione ha richiesto molto tempo. Se qualcuno ha miglioramenti, idee o bug, non esitate a commentare. EDIT: l'ho scritto un po' di tempo fa, ho appena avuto modo di pubblicarlo di recente.
Passaggio 1: cose di cui potresti aver bisogno…
Alcune cose ti serviranno per costruirlo. 1. Scheda Arduino (scegli tu) 2. due (o uno) servo 3. cavi dei ponticelli 4. Visual Studio 2008 Express -- link (opzionale) 5. Arduino IDE -- link Mi dispiace fan di Linux e Apple, il mio programma funziona solo su Windows per ora, ma puoi comunque inviare manualmente comandi seriali ad arduino senza modificare il codice.
Passaggio 2: collegare l'hardware
Niente di molto complesso in questo passaggio. Basta collegare un servo al pin 9 e l'altro al pin 10.
Passaggio 3: programma Arduino
ora puoi caricare lo schizzo su arduino.
Ecco una semplice suddivisione del codice: #include Servo myservo; // crea un oggetto servo per controllare un servo Servo myservo1; int incomingByte = 0, datacount = 0, contatore = 0, pronto = 0; // per i dati seriali in entrata char data[10]; const char verificare[8] = "ma11hew"; char comando[3]; void setup() { myservo.attach(9); mioservo1.attach(10); Serial.begin(38400); // apre la porta seriale, imposta la velocità dei dati Serial.println("Hi Arduino Here!"); // aggiunto per aiutare a identificare la porta seriale Questo imposta solo la porta seriale ei servi. int io; for(i = 0; i<180;i++) { mioservo.write(i); ritardo(15); } mioservo.write(5); for(i = 0; i<180;i++) { mioservo1.write(i); ritardo(15); } mioservo1.write(5); } Semplice movimento ampio per verificare che i servi funzionino correttamente. void loop() { pronto = 0; contatore = 0; while (1==1) { if (Serial.read() != verifica[contatore]) { break; } if(contatore == 6) { ritardo(20); comando[0] = Serial.read(); comando[1] = Serial.read(); //if (Serial.read() == ((command[1] * 12) % 8)) // { ready = 1; //} Serial.println("comando salvato"); } contatore ++; ritardo(2); } questo controlla il buffer seriale per la stringa di autorizzazione corretta quindi prende due byte per il comando. l'istruzione if commentata consente un checksum improvvisato ma renderebbe difficile l'interfacciamento manuale. ready può essere impostato su 0 in modo che i comandi non vengano analizzati come nel caso di dati corrotti. //cerca tra i comandi if (pronto == 1) { if (comando[0] == 'T') { comando[0] = 0; Serial.print("controllo acceleratore sul pin 9 su: "); Serial.println(map(command[1], 32, 126, 2, 180), DEC); myservo.write(map(command[1], 32, 126, 2, 180)); } if (comando[0] == 'S') { comando[0] = 0; Serial.print("controllo acceleratore sul pin 10 su: "); Serial.println(map(command[1], 32, 126, 2, 180), DEC); myservo1.write(map(comando[1], 32, 126, 2, 180)); } } } il resto del codice è cercare command per comandi validi (T o S.) se uno dei due corrisponde prende il byte successivo e lo invia al servo. più sulla mappa (comando[1], 32, 126, 2, 180) più tardi … il codice qui è espandibile per qualsiasi altra cosa di cui potresti aver bisogno (ad es. Luci, motori, IR, ecc.) Questo codice dovrebbe funzionare bene senza modifiche.
Passaggio 4: installazione del software
Ho due modi per installare questo… programma di installazione nsis: Scarica il programma di installazione autoestraente di seguito ed eseguilo. Avrai la possibilità di installare i sorgenti durante l'installazione. il pacchetto binario di installazione installa le dll core di c++ in modo che possa essere eseguito su un computer senza visual c++ già installato. Una volta terminato il programma di installazione, puoi eseguirlo dal desktop o dal menu di avvio. zip way (non verificato): scarica ed esegui, dovrebbe funzionare. può essere. (L'archivio zip ha la stessa struttura di cartelle creata dal programma di installazione, senza fonti. Non ho una macchina senza Visual Studio su cui testarlo, quindi potrebbe non funzionare.)
Passaggio 5: utilizzare il programma di interfaccia
Per utilizzare il programma selezionare prima il baud rate definito nello sketch di arduino. Lo schizzo non modificato ha un valore predefinito di 38400 baud ma può essere modificato in base alle proprie esigenze per cose come un collegamento radio più lento. nota: baud rate superiori a 38400 non sono stati molto stabili, penso che questo sia dovuto al fatto che l'uart si riempie prima che i dati possano essere elaborati. Quindi, seleziona la porta COM da utilizzare. il programma predefinito è COM4, assicurati di cambiarlo o il programma si bloccherà. Infine, fai clic su Apri. Se tutto è andato bene il programma aprirà la porta seriale selezionata al baud rate selezionato. In caso contrario, il programma probabilmente andrà in crash con un'eccezione non gestita. assicurati che la porta sia corretta e riprova. Usa le caselle di testo per inviare comandi diretti ad arduino. Il "map(command[1], 32, 126, 2, 180)" scala tutti i 94 comandi possibili, da *spazio* a ~, leggibili dall'arduino in ASCII da 2 a 180 per il servo. qualsiasi byte inferiore a ASCII 32 (spazio) o superiore a 126 (~) il valore predefinito è 63 (?) Le barre di traccia forniscono un'interfaccia più semplice per i comandi diretti. ogni passaggio invia un comando seriale all'arduino in modo incrementale.
Passaggio 6: diventa creativo
Pensa a cose fantastiche da fare con questo. Alcune idee: 1. Acceleratore a distanza per un'auto. 2. Supporto per fotocamera 3D 3. Rover subacqueo Buon divertimento!!
Consigliato:
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Gateway UDP/IP seriale per Arduino basato su ESP8266 Shield: 8 passaggi
Gateway UDP/IP seriale per Arduino Basato su ESP8266 Shield: ho già pubblicato nel 2016 questo tutorial "Come creare il tuo gateway Wifi per connettere il tuo Arduino alla rete IP". Dato che ho apportato alcuni miglioramenti al codice e sto ancora utilizzando questa soluzione. Tuttavia, ora ci sono alcuni scudi ESP8266 per
Controller di gioco fai-da-te basato su Arduino - Controller di gioco Arduino PS2 - Giocare a Tekken con il gamepad Arduino fai da te: 7 passaggi
Controller di gioco fai-da-te basato su Arduino | Controller di gioco Arduino PS2 | Giocare a Tekken con il gamepad Arduino fai da te: Ciao ragazzi, giocare è sempre divertente, ma giocare con il tuo controller di gioco personalizzato fai-da-te è più divertente. Quindi creeremo un controller di gioco usando arduino pro micro in queste istruzioni
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
SmartMirror basato sul Web che utilizza la comunicazione seriale: 6 passaggi
SmartMirror basato sul Web che utilizza la comunicazione seriale: questo istruibile viene consegnato con tutto il codice pronto per l'uso. Lo sviluppo è stato molto complicato ma una volta impostato è davvero facile da personalizzare. Dai un'occhiata e divertiti;)