WEBVTT

00:01.760 --> 00:06.820
Abbiamo costruito il nostro robot e collegato tutta l'elettronica.

00:06.820 --> 00:09.470
No, dobbiamo insegnargli qualche mossa di danza.

00:09.830 --> 00:18.560
Quindi, se hai collegato la tua elettronica esattamente come ho fatto, probabilmente sarai in grado di rilasciare il codice

00:18.560 --> 00:23.990
di esempio sul tuo Arduino e funzionerà esattamente allo stesso modo.

00:23.990 --> 00:29.080
Ora esaminiamo come funzionava il ponte H.

00:29.180 --> 00:39.440
Abbiamo il lato A del doppio ponte H collegato al motore del lato sinistro e il lato B collegato al

00:39.440 --> 00:41.930
motore del lato destro.

00:41.930 --> 00:57.400
I pin 1 in 1 e i 2 controllano la direzione del ponte a h e I n 3 e I n per controllare la

00:57.400 --> 01:00.590
direzione del ponte B H.

01:00.730 --> 01:11.920
Quindi sul lato A per andare avanti ho bisogno di un alto sull'I e un pin che è collegato al pin dodici

01:12.940 --> 01:25.310
sull'arduino e ho bisogno di un basso sul lato i per pin che è collegato al pin 13 in modo da andare avanti sul ruota

01:25.310 --> 01:26.270
sinistra.

01:26.360 --> 01:35.540
Semplicemente invio un comando di scrittura digitale al pin dodici con un alto e il pin 13 con un basso.

01:35.540 --> 01:44.780
Ora, quando metto un pin sul pin 11 che è collegato all'abilitazione di un pin, il motore sinistro guida in

01:46.070 --> 01:54.500
avanti per guidare quel motore in retromarcia, inverto il segnale sui pin 12-13 un basso sul pin dodici

01:54.500 --> 02:06.130
e un alto sul pin 13 con il B lato tenuta tre o otto sullo stelo Arduino con un basso pin 9 collegato allo ione

02:06.190 --> 02:17.210
per impostare il motore B per ruotare in avanti quando è presente un alto sul pin abilitazione B che è collegato al pin 10

02:17.210 --> 02:26.000
un facile da ricordare un il modo semplice per ricordare la direzione era che il piedino dodici e il

02:26.090 --> 02:37.630
perno otto dovevano essere regolati in alto per entrambi i motori, quindi una volta impostata la direzione dei pin del motore undici controlli, il perno

02:37.630 --> 02:46.060
motore sinistro 10 controlla il motore giusto accendendo uno di questi giri alti sul motore corrispondente a piena

02:46.060 --> 02:54.400
esplosione come opzione invece del digitale, proprio sul pin dieci o undici per girare il motore a

02:54.700 --> 03:03.220
piena esplosione, è possibile utilizzare il comando analogico destro su quei pin per inviare invece un impulso con

03:04.590 --> 03:12.810
segnale modulato quindi controllando la velocità del motore cosa faremo prima è provare e guidare una

03:14.090 --> 03:22.100
linea retta e useremo P. W. m per controllare la velocità mantienilo lento

03:22.100 --> 03:24.470
e muoviti in un piccolo spazio.

03:24.470 --> 03:31.130
Ciò amplifica anche un problema che voglio sottolineare Devo continuare a provare a mantenere tutta l'azione giusta in

03:31.370 --> 03:38.900
questa piccola area di questo tavolo per tenerlo nella visuale della telecamera, ma puoi correre anni sul pavimento o in una

03:38.900 --> 03:46.290
grande Il piano da tavolo qualunque sia il primo che si può scaricare dalla sezione download si chiama calibrazione straight

03:46.290 --> 03:52.680
line che si può semplicemente copiare e incollare in un nuovo schizzo, se lo si desidera.

03:52.680 --> 04:00.090
Tutto ciò che fa è impostare i pin di controllo come uscite e quindi aziona entrambi i motori in una direzione in avanti a circa metà

04:02.840 --> 04:12.630
velocità con circa un ciclo di lavoro del 50% su P. W. M ..

04:12.860 --> 04:16.750
Arresta quindi i motori in attesa per un secondo

04:19.720 --> 04:27.280
e quindi spinge indietro i motori ora perché entrambi i motori vengono comandati con gli stessi esatti

04:27.280 --> 04:29.860
comandi e ciclo di lavoro.

04:29.860 --> 04:34.280
In teoria dovrebbe guidare una linea retta.

04:34.450 --> 04:41.980
Facciamo lampeggiare il nostro Arduino con questo schizzo e vediamo cosa succede ora per farlo lampeggiare.

04:42.610 --> 04:46.630
Guarda cosa succede quando collego il cavo USP, è in esecuzione

04:50.210 --> 04:55.580
uno schizzo precedente che avevo per testarlo, quindi inizia a girare i motori anche se

04:55.580 --> 04:57.470
ho la batteria spenta.

04:57.620 --> 05:08.960
Quindi in questo momento la potenza del computer sta alimentando l'Arduino che è tornato a dare energia al nostro ponte H

05:08.990 --> 05:10.870
nei nostri motori.

05:11.010 --> 05:14.860
Ora l'Arduino semplicemente non può gestire quel tipo di assorbimento di corrente.

05:14.870 --> 05:22.880
Quindi è molto importante accendere il ponte H con le batterie o premere l'interruttore o

05:22.880 --> 05:27.470
sulla posizione O N o inserire le batterie.

05:27.470 --> 05:33.330
Se non si dispone dell'interruttore, è possibile tenere il robot solo mentre lo si programma o

05:33.800 --> 05:41.640
si sa di appoggiarlo su una scatola o su un blocco di legno in modo che le ruote siano sollevate da terra.

05:42.590 --> 05:47.600
Quindi vai avanti con il tuo

05:52.750 --> 05:58.810
schizzo all'Arduino, quindi scollega l'USP e spegni il dispositivo.

05:58.880 --> 06:07.460
Ora questo schizzo è un semplice test per due cose da vedere se hai problemi di cablaggio o

06:07.460 --> 06:11.990
un motore collegato all'indietro o un filo scollegato qualunque.

06:12.170 --> 06:13.770
La seconda cosa

06:14.030 --> 06:15.980
Beh, lasciami correre

06:15.980 --> 06:23.420
Lasciami correre il mio così vedrai da te quando lo accendo e gli viene comandato di andare avanti in

06:23.420 --> 06:24.320
linea retta.

06:27.760 --> 06:36.040
Beh, questo non è un vero e proprio inverso, l'uomo non è molto più serio sul serio.

06:36.060 --> 06:38.810
Cosa diavolo sta succedendo qui.

06:38.820 --> 06:47.840
Bene, tutta questa produzione di tutte queste parti, le ruote, i motori, gli ingranaggi nella trasmissione,

06:48.560 --> 06:50.690
sono tutti imperfetti.

06:50.690 --> 06:53.720
Nessun due motori non ha due ruote uguali.

06:53.720 --> 07:00.560
E così in ogni caso un motore gira molto più liberamente dell'altro.

07:00.560 --> 07:08.750
In effetti il motore sinistro sul mio è così rigido che ha l'abitudine di fermarsi veramente quando il P. W. M diventa inferiore a

07:08.840 --> 07:11.270
circa 150.

07:11.570 --> 07:17.660
È più che probabile che avrai un motore che gira più velocemente dell'altro.

07:17.720 --> 07:19.480
Ora potrebbe essere cattivo come il mio.

07:19.580 --> 07:21.110
Potrebbe non farlo.

07:21.110 --> 07:30.880
Quindi posso giocare con i numeri e fondamentalmente calibrare lo schizzo per compensare.

07:30.880 --> 07:32.290
Ho appena indovinato.

07:34.920 --> 07:40.350
Nel mio caso è evidentemente il motore sinistro che mi sta dando problemi quindi ho intenzione di alzare il p. W. quando fino alle

07:42.640 --> 07:48.370
parole di Thanos è perfettamente bilanciato come dovrebbero essere tutte le cose.

07:48.520 --> 07:55.390
Ora ho sperimentato molto prima di girare questo film e quindi sono stato in grado

07:55.960 --> 08:04.540
di capire un fattore di caramelle qui, anche se attraverso la sperimentazione ho scoperto che il motore giusto era

08:04.540 --> 08:09.000
a venticinque e il motore sinistro era a sessantacinque.

08:09.130 --> 08:11.140
Era abbastanza equilibrato ora

08:15.280 --> 08:17.400
capisco che non sarà mai perfetto.

08:17.400 --> 08:24.180
Questo servizio di tabella è in realtà molto scivoloso quando si utilizza il mio robot a piena potenza.

08:24.240 --> 08:30.830
Posso letteralmente vedere girare le ruote giuste mentre la ruota sinistra tiene la sua trazione in modo che possa girare

08:30.830 --> 08:33.460
il robot in un modo o nell'altro.

08:33.480 --> 08:36.680
Questa rotella Dolly sul retro può

08:39.330 --> 08:47.280
essere rigida e ruota, quindi può essere bloccata inclinando il robot in un modo o nell'altro.

08:47.370 --> 08:56.500
O anche quando il robot sta passando da una direzione avanti a una direzione indietro.

08:56.500 --> 09:00.030
Questa ruota del Dolly deve girare mentre gira.

09:00.130 --> 09:02.370
Sta cambiando la direzione del robot.

09:04.350 --> 09:10.450
Quindi non sarà mai perfetto e per quello che vogliamo fare è perfettamente accettabile.

09:10.500 --> 09:20.430
Se stavi tentando di ostacolare la navigazione in montagna con ostacoli, ora puoi capire perché vorrai quelle ruote del codificatore sui tuoi

09:20.430 --> 09:27.720
alberi di trasmissione dato che ti dirà fino a che punto è ruotata ogni ruota.

09:27.720 --> 09:38.120
Ma anche quello si trova perché una ruota potrebbe avere più aria rispetto all'altra e quindi avere un diametro maggiore.

09:38.220 --> 09:44.100
Potrebbe essere solo una differenza di millimetro, ma una differenza di millimetri è di

09:44.160 --> 09:48.070
tre punti cinque millimetri nella distanza percorsa per rotazione.

09:48.180 --> 09:54.990
Quindi, anche se sei un programmatore dice che le ruote hanno entrambe viaggiato esattamente ad un metro di un pasto, una

09:54.990 --> 10:01.260
ruota ha effettivamente viaggiato di un punto di cinque centimetri più lontano e quindi si accumula nel tempo.

10:01.260 --> 10:07.140
Più viaggi più e più l'errore dice che puoi solo vedere che è sempre un sistema

10:07.140 --> 10:07.920
imperfetto.

10:07.920 --> 10:14.910
Ora approfondiremo tutto questo nel 5 ° corso sui robot autonomi in cui sperimentiamo

10:14.910 --> 10:23.610
con robot e auto navigati utilizzando l'intelligenza artificiale e varie tecniche di navigazione con o senza l'ausilio di

10:23.820 --> 10:26.870
G. P. S..

10:26.880 --> 10:28.920
Ma sto divagando.

10:29.460 --> 10:41.240
Quindi ho un numero che userò nel mio prossimo schizzo in cui tentiamo di guidare il robot a

10:41.240 --> 10:42.140
otto.

10:42.360 --> 10:50.580
Inizieremo qui sulla figura 8, prima percorrendo una breve linea retta e per girare semplicemente cambierà

10:50.580 --> 11:00.090
la velocità dei motori usando P. W. quando facciamo un avanzamento spostando

11:00.090 --> 11:07.170
la mano destra accelerando il motore sinistro o rallentando il motore destro.

11:07.170 --> 11:15.180
Quindi, per far avanzare la svolta a sinistra, acceleriamo il motore destro o rallentiamo il motore

11:15.180 --> 11:16.090
sinistro.

11:16.260 --> 11:24.510
Quindi nel mio caso e nella mia figura di robot di schizzo campione 8 che puoi scaricare dalla sezione

11:25.410 --> 11:30.190
download ho rallentato uno dei motori per fare una svolta.

11:32.410 --> 11:37.540
E questo è solo per tenere tutto sotto controllo e muoversi a una bella bassa velocità.

11:37.570 --> 11:44.940
Quindi, quando guardi il mio schizzo, inizio su questo tratto rettilineo nel mezzo della figura 8 e lo schizzo

11:44.940 --> 11:51.820
scaricabile ha lo stock P. W. n valori di centoventicinque.

11:51.820 --> 12:00.170
Il tuo robot potrebbe effettivamente eseguire una linea molto dritta e quindi non è necessario modificare questi numeri.

12:00.190 --> 12:00.970
Il mio no.

12:00.970 --> 12:12.210
Quindi in realtà modifico questi numeri in modo che sulle gambe dritte della figura 8 corrisponda a quello che

12:12.660 --> 12:18.790
ho scoperto quando ho eseguito lo schizzo di calibrazione ora.

12:18.800 --> 12:25.790
Inoltre sono contento che il mio robot sia un caso così estremo perché mi dà

12:26.060 --> 12:29.450
l'opportunità di mostrarti come compenso il programma.

12:29.450 --> 12:31.580
Sto semplicemente sincronizzando tutti

12:34.540 --> 12:43.750
i movimenti per approssimare la figura 8, il mio motore di guida destro è molto più forte della sinistra.

12:43.750 --> 12:54.370
In realtà hanno alterato questi tempi ritardati nei turni perché completavano la svolta a destra molto più

12:54.760 --> 12:58.400
velocemente della svolta a sinistra.

12:58.570 --> 13:04.200
Quindi dovrai semplicemente sperimentare e giocare per vedere come si comporta il tuo robot.

13:04.240 --> 13:12.550
Ci sarà sempre una variazione delle condizioni del motore, dove il fattore più grande sarà il fattore maggiore

13:12.550 --> 13:15.010
saranno le condizioni della batteria.

13:15.160 --> 13:22.750
Se il tuo robot ha due motori che sono molto veloci potrebbe essere necessario abbassare il tempo di abbassamento della

13:22.990 --> 13:28.360
figura otto gambe dritte perché si sta spostando troppo lontano sulle gambe dritte.

13:28.360 --> 13:29.060
Non lo so.

13:29.560 --> 13:33.160
Dovrai semplicemente giocarci per scoprirlo.

13:33.160 --> 13:40.660
Quindi modificherai i miei numeri nello schizzo nel mio schizzo e semplicemente sperimenterò i tempi di ritardo.

13:42.180 --> 13:46.560
Dopo molti esperimenti, ho fatto il mio andare in una

13:50.680 --> 13:56.950
Figura 8 abbastanza decente ora e vaga per essere sicuro e potrei sperimentare di più per

13:56.950 --> 14:04.850
renderlo più preciso, ma sto semplicemente cambiando i tempi per quanto tempo guido in linea retta e come lunga una svolta.

14:04.930 --> 14:11.020
Questo è tutto ciò che faremo quando utilizzeremo il nostro sensore a infrarossi come rilevatore di prossimità e

14:11.020 --> 14:14.810
in effetti questo è praticamente tutto ciò che l'aspirapolvere robotico.

14:14.880 --> 14:16.690
Lo fa Roomba.

14:16.810 --> 14:24.720
Ha un sensore sulla parte anteriore che gira intorno alla stanza a vuoto casuale, questo va

14:24.720 --> 14:28.900
quando si avvicina al suo sensore di prossimità.

14:29.020 --> 14:38.590
Esegue il backup e gira per un tempo prestabilito, quindi procede di nuovo in avanti fino a raggiungere un altro ostacolo,

14:38.680 --> 14:47.210
quindi qualsiasi navigazione che eseguiremo sarà molto semplice in questo modo e semplicemente i movimenti approssimativamente vanno bene.

14:48.250 --> 14:51.430
Abbiamo una festa di ballo per una corda che un robot sta per.

14:51.490 --> 14:54.370
Quindi dobbiamo insegnargli alcune mosse di danza.

14:54.370 --> 15:00.890
Puoi scaricare lo schizzo di esempio dai download se lo desideri.

15:00.890 --> 15:03.240
O puoi semplicemente creare il tuo schizzo.

15:03.260 --> 15:06.180
È davvero semplice.

15:06.560 --> 15:12.240
Nella mia danza Dance Party, uno schizzo, sono andato dritto a tutta forza.

15:12.260 --> 15:18.580
O i motori erano accesi o spenti perché stavo facendo rapidi movimenti rapidi.

15:18.650 --> 15:21.960
Il robot non è davvero andato così lontano.

15:22.070 --> 15:32.900
Quindi non ho avuto bisogno di rallentare i motori per usare usando P. W. n quindi ho prima impostato tutti i pin di

15:32.900 --> 15:39.970
controllo come uscite come prima e ora ho bisogno di decidere quali movimenti farò e con quale velocità.

15:40.070 --> 15:42.450
Ora una cosa interessante che puoi provare qui.

15:42.620 --> 15:51.620
Puoi solo fare mosse casuali in quattro sequenze di battute e ti sorprenderà sapere come i movimenti del tuo robot

15:51.800 --> 15:55.430
si allineeranno praticamente a qualsiasi musica che suoni.

15:55.640 --> 16:03.830
Tuttavia con un po 'di sforzo puoi anche mettere insieme una routine di danza piuttosto complessa in un tempo

16:03.890 --> 16:06.720
predeterminato con un po' di musica.

16:07.490 --> 16:14.870
Quindi ho scelto una bella melodia anni 70 e aveva circa centodieci battiti al minuto.

16:15.080 --> 16:22.840
Ben 60 secondi divisi per centodieci è zero virgola cinque cinque secondi stiamo usando il comando di

16:22.840 --> 16:27.200
ritardo nello schizzo per misurare le nostre mosse.

16:27.230 --> 16:34.730
Quindi ho appena provato a tempo tutto è tutto in multipli di ritardo.

16:34.730 --> 16:36.640
Cinquecentocinquanta.

16:36.770 --> 16:38.240
Ora è approssimativo.

16:38.240 --> 16:40.850
Alcuni dei miei tempi erano un po 'diversi.

16:41.030 --> 16:48.330
Per compensare i tempi di inizio e fine dei motori o scivoleremo per movimenti veloci eccetera.

16:48.440 --> 16:56.480
Ma era incredibile quanto dei movimenti allineati mettessero i battiti nella musica semplicemente sincronizzando

16:56.480 --> 17:01.810
tutti i movimenti in multipli di circa cinquecentocinquanta millisecondi.

17:02.060 --> 17:06.350
Quindi carico il mio sketch Dance Dance all'Arduino,

17:12.390 --> 17:13.190
liberiamo

17:25.360 --> 17:29.800
la pista da ballo e inserisco la musica

17:44.560 --> 17:46.000
e OK,

18:07.260 --> 18:11.060
è sufficiente che tu capisca il punto.

18:11.100 --> 18:18.570
Basta dare un'occhiata al mio codice e vedrai che è molto

18:18.570 --> 18:32.190
semplice, in effetti puoi tagliare e incollare una di queste sequenze per costruire una lunga sequenza come ho fatto. Ho fatto

18:33.260 --> 18:44.880
una serie di movimenti in avanti all'indietro. rotazione a destra a sinistra e rotazioni e movimenti all'indietro basati

18:48.160 --> 18:50.230
sul tempo.

18:51.340 --> 18:58.410
Quindi, se prendi questo schizzo e lo fai lampeggiare sul tuo Dino, riproduci qualsiasi musica che sia circa

18:58.410 --> 19:04.960
centodieci battiti al minuto o un suo multiplo e sarai sorpreso di quanto bene la sua danza

19:04.960 --> 19:07.150
si allinei con la musica.

19:07.330 --> 19:12.760
Se hai una musica diversa, calcola quanti battiti al minuto è come ho fatto

19:12.760 --> 19:15.550
e conta i tuoi millisecondi di intervalli.

19:15.610 --> 19:21.750
È necessario allinearsi con i ritmi e la musica cambia tutti i tuoi tempi di ritardo e basta giocarci.

19:21.790 --> 19:25.830
Costruire un debito costruendo una sequenza di danza.

19:26.020 --> 19:33.850
Chiediti OK quali mosse voglio fare e quindi programmare quella sequenza semplicemente impostando i piedini di controllo per il

19:33.850 --> 19:42.010
movimento in avanti o indietro sui tuoi due motori, quindi i tempi ritengono quanto tempo desideri rendere quel movimento

19:42.010 --> 19:43.290
semplice eh.
