Taula de continguts:
- Pas 1: coses que potser necessiteu …
- Pas 2: connecteu el maquinari
- Pas 3: programa l'Arduino
- Pas 4: Instal·leu el programari
- Pas 5: utilitzeu el programa d'interfície
- Pas 6: sigueu creatius
Vídeo: Servo controlador basat en Arduino: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:18
Es tracta d’un controlador sèrie simple per a diversos servos basat en l’Arduino. (el meu primer instructable també:))
La major part del treball en això prové d’aconseguir que el programari parli amb l’arduino i de fer un protocol per transmetre les dades. Pel que fa a l’aspecte del maquinari, només he utilitzat dos servos (el servidor estàndard Parallax.) Un Sparkfun Arduino ProtoShield i un Arduino Duemilanove amb ATMEGA328, però la majoria d’aquestes parts es poden substituir per articles similars. Vaig pensar aquest projecte com a part d’un sistema de RC, però configurar la comunicació va trigar molt de temps. Si algú té alguna millora, idees o errors, no dubteu a fer comentaris. EDITAR: Vaig escriure això fa estona, vaig començar a publicar-lo recentment.
Pas 1: coses que potser necessiteu …
Algunes coses que necessitareu per construir això. 1. Taula Arduino (trieu) 2. dos (o un) servos 3. cables de pont 4. Visual Studio 2008 Express - enllaç (opcional) 5. ID Arduino - enllaç Ho sento, fan de Linux i Apple, el meu programa només funciona Windows per ara, però encara podeu enviar comandes serials manualment a l’arduino sense canviar el codi.
Pas 2: connecteu el maquinari
Res de molt complex a aquest pas: connecteu només un servo al pin 9 i l’altre al pin 10.
Pas 3: programa l'Arduino
ara podeu penjar l'esbós a l'arduino.
Aquí teniu un simple desglossament del codi: #include Servo myservo; // crear un objecte servo per controlar un servo Servo myservo1; int incomingByte = 0, datacount = 0, comptador = 0, llest = 0; // per a dades de sèrie de dades de caràcters entrants [10]; const char verify [8] = "ma11hew"; ordre char [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // obre el port sèrie, estableix la velocitat de dades Serial.println ("Hola Arduino aquí!"); // afegit per ajudar a identificar el port sèrie Això només configura el port sèrie i els servos. int i; per a (i = 0; i <180; i ++) {myservo.write (i); retard (15); } myservo.write (5); per a (i = 0; i <180; i ++) {myservo1.write (i); retard (15); } myservo1.write (5); } Moviment d'escombrat simple per verificar que els servos funcionin correctament. bucle buit () {llest = 0; comptador = 0; while (1 == 1) {if (Serial.read ()! = verifica [comptador]) {break; } if (comptador == 6) {demora (20); ordre [0] = Serial.read (); ordre [1] = Serial.read (); // if (Serial.read () == ((ordre [1] * 12)% 8)) // {llest = 1; //} Serial.println ("ordre desada"); } comptador ++; retard (2); } això comprova la memòria intermèdia de sèrie per a la cadena d'autorització correcta i després agafa dos bytes per a l'ordre. la declaració comentada si permet una suma de comprovació improvisada però dificultaria la interfície manual. ready es pot establir a 0, de manera que no s'analitzaran les ordres, com ara en el cas de dades danyades. // cerca ordres if (llest == 1) {if (ordre [0] == 'T') {ordre [0] = 0; Serial.print ("control de l'accelerador al pin 9 a:"); Serial.println (mapa (ordre [1], 32, 126, 2, 180), DEC); myservo.write (mapa (ordre [1], 32, 126, 2, 180)); } if (ordre [0] == 'S') {ordre [0] = 0; Serial.print ("control de l'accelerador al pin 10 a:"); Serial.println (mapa (ordre [1], 32, 126, 2, 180), DEC); myservo1.write (mapa (ordre [1], 32, 126, 2, 180)); }}} la resta del codi és cercar a l'ordre comandes vàlides (T o S.) si coincideix, pren el següent byte i l'envia al servo. més al mapa (ordre [1], 32, 126, 2, 180) més endavant … el codi aquí es pot ampliar per a qualsevol altra cosa que pugueu necessitar (per exemple, llums, motors, IR, etc.) aquest codi hauria de funcionar bé sense modificacions.
Pas 4: Instal·leu el programari
Tinc dues maneres d'instal·lar aquest … nsis installer: descarregueu l'instal·lador d'autoextracció que es mostra a continuació i executeu-lo. Tindreu l'opció d'instal·lar fonts durant la instal·lació. el paquet binari de l’instal·lador instal·la dlls c ++ bàsics perquè es pugui executar en un ordinador sense que tingui instal·lat c ++ visual. Un cop finalitzat l'instal·lador, podeu executar-lo des de l'escriptori o el menú d'inici. zip zip (sense verificar): baixeu-lo i executeu-lo, hauria de funcionar. pot ser. (L'arxiu zip té la mateixa estructura de carpetes creada per l'instal·lador, sense fonts. No tinc cap màquina sense visual studio per provar-lo, de manera que potser no funcioni.)
Pas 5: utilitzeu el programa d'interfície
Per utilitzar el programa, primer seleccioneu la velocitat en bauds definida a l'esbós d'arduino. L'esbós sense modificar té un valor predeterminat a 38400 bauds, però es pot canviar per adaptar-lo a les vostres necessitats per a coses com ara un enllaç de ràdio més lent. nota: els índexs de transmissió superiors a 38400 no han estat molt estables, crec que això es deu al fet que el uart s'omple abans de processar les dades. A continuació, seleccioneu el port COM que voleu utilitzar. el programa per defecte és COM4. Assegureu-vos de canviar-lo o el programa fallarà. Finalment, feu clic a obre. Si tot va bé, el programa obrirà el port sèrie seleccionat a la velocitat de transmissió seleccionada. Si no, el programa probablement es bloquejarà amb una excepció no gestionada. assegureu-vos que el port és correcte i torneu-ho a provar. Utilitzeu els quadres de text per enviar ordres directes a l’arduino. El "mapa (ordre [1], 32, 126, 2, 180)" escala totes les 94 ordres possibles, * espai * a ~, llegibles per l'arduino en ASCII de 2 a 180 per al servo. qualsevol byte inferior a ASCII 32 (espai) o superior a 126 (~) per defecte és 63 (?) Les barres de pista proporcionen una interfície més àmplia per a ordres directes. cada pas envia una ordre de sèrie de manera incremental a l'arduino.
Pas 6: sigueu creatius
Penseu en coses interessants per fer amb això. Algunes idees: 1. Acelerador remot per a un cotxe. 2. Muntatge de càmera 3D 3. rover submarí Diverteix-te !!
Recomanat:
[Wearable Mouse] Controlador de ratolí portable basat en Bluetooth per a Windows 10 i Linux: 5 passos
[Wearable Mouse] Wearable Mouse Controller basat en Bluetooth per a Windows 10 i Linux: vaig fabricar un controlador de ratolí basat en Bluetooth que es pot utilitzar per controlar el punter del ratolí i realitzar operacions relacionades amb el ratolí del PC sobre la marxa, sense tocar cap superfície. Els circuits electrònics, que estan incrustats en un guant, es poden utilitzar per rastrejar h
Controlador de jocs DIY basat en Arduino - Controlador de jocs Arduino PS2 - Jugar a Tekken amb el bricolatge Arduino Gamepad: 7 passos
Controlador de jocs DIY basat en Arduino | Controlador de jocs Arduino PS2 | Jugar a Tekken amb el bricolatge Arduino Gamepad: Hola nois, jugar sempre és divertit, però jugar amb el vostre propi controlador de jocs de bricolatge és més divertit
Termòmetre infraroig sense contacte basat en Arduino - Termòmetre basat en IR mitjançant Arduino: 4 passos
Termòmetre infraroig sense contacte basat en Arduino | Termòmetre basat en IR que utilitza Arduino: Hola nois, en aquest instructable farem un termòmetre sense contacte amb arduino, ja que de vegades la temperatura del líquid / sòlid és massa alta o baixa a la temperatura i és difícil fer-hi contacte i llegir-ne temperatura llavors en aquell escenari
Generador de música basat en el temps (generador de midi basat en ESP8266): 4 passos (amb imatges)
Generador de música basat en el temps (generador de midi basat en ESP8266): Hola, avui explicaré com fer el vostre propi generador de música basat en el temps. Es basa en un ESP8266, que és com un Arduino, i respon a la temperatura, a la pluja i intensitat lumínica. No espereu que faci cançons senceres o progrés d’acords
Tacte capacitiu amb Evive (controlador basat en Arduino): 6 passos (amb imatges)
Tacte capacitiu amb Evive (controlador basat en Arduino): sabeu com funciona la pantalla tàctil del vostre telèfon intel·ligent? El telèfon intel·ligent té una sèrie de sensors tàctils sota la pantalla de vidre. Avui en dia, es basa fàcilment en la tecnologia de detecció tàctil de capacitat i fins i tot en un toc suau. Es percep el tacte capacitiu