Facciamo uso di uno strumento molto utile disponibile nell'ID Arduino, si chiama il monitor dei cereali e possiamo aprirlo come una
nuova finestra e monitorerà e visualizzerà qualsiasi comunicazione seriale sull'U. S.
porto dal nostro Arduino.
È stato bello ottenere un riscontro diretto dal microcontrollore, specialmente quando abbiamo iniziato a utilizzare la
conversione da analogico a digitale.
Boy Sarà utile lì.
Ma quello che sto per fare è mostrarti l'esperimento di cui ti ho parlato con i miei micro servi.
Quindi ho il circuito usato per la lezione del servo driver e lo stesso schizzo lo modifico in pochi modi
e poi sperimenteremo con il monitor seriale.
Voglio vedere qual è il polso per ogni posizione di quel servo.
Ora non so quale sia quel numero perché lo sai nascosto nell'elettronica o nel microcontrollore.
Quindi otterrò l'Arduino per trasmettere il ritardo che sta usando al monitor dei cereali in modo da ottenere un feedback diretto direttamente
dalla bocca del cavallo.
Così stanno facendo sai che mi dirà esattamente cosa sta facendo.
Quindi se non hai il tuo programma aperto già vai avanti e aprilo.
Lo modificheremo.
Quindi, qui nella funzione di impostazione, inseriremo le istruzioni per aprire le linee di comunicazione seriali con il daut
seriale Daut e noteremo che la S maiuscola si distacca dalla convenzione di istruzioni
qui.
Finora tutte le nostre istruzioni avevano una piccola lettera sulla prima parola e la seconda parola nell'istruzione era in
maiuscolo, ma non è così che l'hanno fatto qui.
Ora ovviamente sai che ora sai che questa è una connessione seriale asincrona.
Quindi per comunicare attraverso una linea seriale dobbiamo stabilire cose come il baud rate e
concordare tale diritto.
Quindi, se semplicemente forniamo la frequenza del bug, la spinta assumerà tutte le altre impostazioni predefinite per te.
Quindi mettiamo il baud rate tra parentesi con 96 cento che è il default più comune.
E non dimenticare il punto e virgola alla fine della riga.
Abbiamo ora stabilito linee di comunicazione seriali in modo che ora possiamo inviare comunicazioni tramite la connessione seriale.
Questo viene
fatto con il comando seriale serial whoops print.
Notate di nuovo la S maiuscola tra parentesi, ora diciamo cosa stampare.
Quindi se
metto qualcosa tra virgolette come
sono intrappolato in questo computer, convertirà tutto nelle quotazioni in un codice ASCII trasmesso attraverso la connessione seriale e quindi
il monitor seriale lo riassembla dall'altra parte nelle lettere e nei numeri che
mettere tra le virgolette.
Quindi non dimenticare di chiudere le virgolette per chiudere le parentesi e mettere il punto e virgola alla fine della riga.
Quindi apriamo il monitor seriale.
Vai a Tools serial monitor e questo farà apparire questa finestra.
E poi questa finestra è dove si svolge tutta l'azione, guarda c'è un paio di opzioni dropdown
qui di cui una è la velocità di trasmissione.
Quindi, qual era la cosa più importante che dovevamo fare quando impostavamo un collegamento di comunicazione seriale.
Dovevamo assicurarci che le impostazioni su entrambe le estremità fossero identiche a quelle del trasmettitore e del ricevitore.
Bene, l'Arduino è il trasmettitore e gli abbiamo appena detto novanta seicento baht proprio qui nel
programma il monitor seriale è il ricevitore.
Quindi dobbiamo assicurarci che anche questo sia a 96 cento baud.
Vedrai tra un minuto cosa succede se sono diversi, ma assicurati che siano entrambi a
seicento al momento e vai avanti e abbaglia gli occhi.
Sappiamo cosa è il nuovo schizzo quando Arduino si ripristina ed esegue il suo programma voilà si ottiene il messaggio
stampato sul monitor dei cereali, quindi inviamo un'altra linea sulla connessione seriale proprio sotto il primo comando di stampa
seriale.
Ho
messo un altro serial altro un altro tra virgolette con qualcosa di simile a non so.
Stavo solo scherzando.
O qualunque cosa tu voglia inserire lì.
Vai avanti e fai lampeggiare facendo no e guarda cosa succede.
Li sto stampando entrambi sulla stessa riga.
Ora per fare qualcosa al riguardo.
Posso cambiare le istruzioni per una stampa su linea seriale inserendo un LN alla fine delle istruzioni, in modo che
la stampa seriale e la stampa seriale si comportino
esattamente allo stesso modo in cui entrambe si comportano esattamente allo stesso modo, tranne che nella linea di stampa seriale.
quei caratteri di controllo ASCII alla fine di qualsiasi cosa tu invii.
Invia un carattere di ritorno a capo e un carattere di nuova riga.
Quindi questi sono i codici ASCII 13 e 10, quindi non li vedi mai, ma sicuramente fa un mondo di
differenza quando carichi il tuo programma su Arduino che lo farà ed eseguirlo di nuovo.
Mette il testo su una nuova riga OK, puoi lasciare quelli lì, se vuoi, andremo
qui in
basso alla funzione di loop e proprio in alto.
Voglio stampare una stampa su
linea seriale di ritardo del servo
in modo da non notare citazioni perché questa è una variabile.
Se lo metto tra virgolette, sarà sufficiente stampare le parole servo underscore delay nel monitor seriale e non
è quello che voglio.
Quello che voglio è sapere esattamente quale sia il mio ritardo in millisecondi che sta dettando l'ampiezza
dell'impulso del tick nel battito del mio servomotore.
Non dimenticare il punto e virgola alla fine e piatto andare avanti e flash il tuo Arduino una volta
che inizia a correre inizierà la stampa del ritardo.
Sullo schermo del monitor dei cereali No, è iniziato alle 1300 perché è così che l'abbiamo programmato proprio lì.
E se premo un pulsante quel numero sale di conseguenza o giù di conseguenza posso ora guardare il monitor del cereale guardare la
posizione del clacson e vedere esattamente che cosa corrisponde a DeLay in quale posizione sul
servo.
Ovviamente questo è molto utile perché se sto progettando un robot e usando un
servo per posizionare il suo braccio o qualcosa posso ora vedere quale numero fa cosa spostare il braccio in una posizione ripetibile abbastanza precisa.
Ora un'altra cosa che posso fare qui che puoi fare, ma con cautela.
Ora ti ricordi che ho detto che i servo possono tipicamente ruotare al di fuori dei loro parametri progettati.
Scopriremo fino a che punto potrei trasformare questi servi.
Posso eseguire un esperimento.
Posso abbassare il ritardo
minimo da 1000 a 300 millisecondi e posso modificare il ritardo massimo da 2000 a dire 4000 millisecondi di
microsecondi.
Scusa microsecondi non millisecondi.
Ora i miei ritardi dovrebbero cercare di guidare il servo ben oltre il normale intervallo operativo.
Ora, se lo fai, fai attenzione perché stai guidando il tuo servomotore proprio contro di esso si ferma
proprio e soprattutto perché ho questo potente potente pacchetto da sei volt collegato ad esso.
Probabilmente posso guidarlo così forte che si romperà cercando di arrivare a una posizione dove non può andare.
Quindi sarò gentile e lento spostandolo fino alle fermate.
Faccio lampeggiare il mio Arduino e una volta resettato si posizionerà al servo al centro proprio come ho
programmato.
Ora posso abbassare il ritardo sempre di più fino a quando il servo non girerà più.
K. Sembra proprio
Quindi il minimo ritardo assoluto che posso inviare è di circa 500 microsecondi.
Ora è come la metà di un migliaio di microsecondi.
Quindi questo è in realtà un po 'più lontano.
Ora andiamo su finché non raggiungiamo l'altro Stop OK
che sembra lì.
Quindi sembra che il numero più grande che posso inviare sia ventitrecentonovanta microsecondi.
Ancora una volta è un po 'più ampio.
Posso uscire dal serval ora sto per girarlo attentamente più verso il centro.
Solo per evitare di sforzarti.
Quindi, usando il monitor seriale, posso scoprire esattamente cosa sta facendo Arduino e collegarlo alla mia progettazione e
programmazione del mio robot.
Adesso il monitor dei cereali sta funzionando proprio ora.
Cosa succede se il baud rate non corrisponde a quello impostato per il monitor
seriale a diciannovemiladuecento baud.
È strano, vero.
L'Arduino sta inviando.
E cosa otteniamo.
Diventiamo senza senso.
Il motivo è perché il monitor seriale sta andando e leggendo un po 'impostato da Arduino che
potrebbe essere uno.
Ritorna di nuovo e un altro diciannovemiladuecento secondi legge di nuovo pensando che
questo è prossimo.
Ma l'Arduino funziona a metà della velocità.
Quindi c'è ancora uno sulla linea, sempre lo stesso bit.
Quindi il monitor ne legge un altro il prossimo bit e l'Arduino inviato era uno 0 non un 1, ma ora
il monitor legge due zeri.
Quindi rovina totalmente le cose.
Quindi se nel tuo cereale Monder diventi un po 'banale, quella è la prima cosa che cerchi sono le
velocità di trasmissione uguali.
Probabilmente no.
OK.
Divertiti con quello nella prossima lezione.
Entreremo nel convertitore analogico-digitale e utilizzeremo nuovamente il monitor dei cereali per fornirci un feedback diretto
su ciò che l'Arduino sta effettivamente vedendo e misurando.