WEBVTT

00:02.740 --> 00:11.060
Okay, come spero di non urlare contro di me attraverso internet sono sicuro che voi ragazze e ragazzi avete fatto

00:11.060 --> 00:12.430
solo bene però.

00:12.530 --> 00:16.770
Ti mostrerò cosa ho fatto nel caso avessi avuto problemi.

00:16.910 --> 00:25.210
Letteralmente ho preso il programma vuoto e copiato e incollato il moccio fuori di esso.

00:25.390 --> 00:33.660
Per prima cosa devi impostare tutti i pin che userai come output.

00:33.760 --> 00:34.230
Destra.

00:35.270 --> 00:40.680
Quindi puoi vedere qui che ho impostato tutti i pin da 8 a 13 come uscite.

00:40.700 --> 00:43.840
Se non lo fai, avrai un brutto momento.

00:43.860 --> 00:53.080
Ho quindi acceso solo un LHD per iniziare con il display LCD verde sul semaforo numero uno e vedrai perché in un

00:53.080 --> 00:56.240
attimo, ma questo è solo per l'avvio.

00:56.530 --> 01:05.490
Così l'ho messo nella funzione di impostazione perché avevo solo bisogno di eseguirlo una volta al primo avvio.

01:05.790 --> 01:08.260
Allora mi sono chiesto OK cosa è esattamente.

01:08.270 --> 01:14.660
Voglio fare una riflessione su cosa devi fare se il semaforo numero uno è verde e ciò significa

01:14.660 --> 01:20.570
che l'altra luce deve essere rossa mentre il rosso sull'altra luce era collegato al pin 13.

01:20.570 --> 01:24.490
Quindi boom ho appena messo il

01:26.980 --> 01:32.180
pin 13 in alto, ora la Red Lady è attiva.

01:32.250 --> 01:35.190
Allora aspetto cinque secondi.

01:35.190 --> 01:41.080
Ora nella vita reale la luce rimane probabilmente verde per 20 o 30 secondi, ma ho fretta.

01:41.190 --> 01:45.840
Questa è solo una dimostrazione, quindi ho ritardato di cinque secondi.

01:45.840 --> 01:48.080
Ora cosa succede dopo.

01:48.480 --> 01:54.990
In Canada nella U. S. la luce verde passa quindi a un giallo per alcuni secondi poi a un rosso.

01:55.300 --> 02:05.340
L'ho fatto spegnendo prima il display LCD verde e accendendo immediatamente il display LCD giallo.

02:05.450 --> 02:08.730
Ho quindi aspettato un secondo.

02:08.730 --> 02:13.890
Ora, di nuovo, è più veloce che nei semafori della vita reale che probabilmente Boom sarà

02:13.890 --> 02:17.470
più come cinque secondi a seconda della velocità del traffico.

02:17.490 --> 02:26.470
Ma sono andato con un secondo, poi ho spento il display LCD giallo e ho acceso immediatamente il display LCD rosso.

02:26.520 --> 02:28.680
Non c'è nessun ritardo tra loro.

02:28.680 --> 02:31.110
Ho quindi aspettato un secondo.

02:31.290 --> 02:32.390
Perché.

02:33.000 --> 02:37.620
Perché noterai le macchine ai semafori quando stanno aspettando il semaforo rosso.

02:37.620 --> 02:44.130
I piloti sono come cercare di saltare la luce verde quando vedono l'altra luce che diventa rossa e allo stesso tempo

02:44.130 --> 02:46.680
i piloti che hanno una luce verde.

02:46.920 --> 02:48.600
Ora è giallo

02:48.750 --> 02:54.000
Stanno pavimentando il gas cercando di superare l'incrocio prima che diventi rosso.

02:54.570 --> 02:58.290
Quindi se l'altra luce diventasse verde immediatamente.

02:58.650 --> 03:04.730
Bene, quelle persone per il gas devono attraversare l'incrocio proprio quando la luce diventa verde.

03:05.070 --> 03:12.030
E proprio come l'ultimo ragazzo l'ha pavimentata per superare l'incrocio proprio mentre la sua luce diventa rossa e

03:13.350 --> 03:15.750
poi si ha un incidente.

03:15.750 --> 03:27.630
Così ho lanciato un ritardo di 1 secondo tra quando la prima luce diventa rossa e la seconda luce diventa verde una volta che

03:28.830 --> 03:30.960
è trascorso un secondo.

03:31.140 --> 03:35.070
Ora trasformiamo questa luce verde.

03:35.070 --> 03:37.230
Attendi cinque secondi.

03:38.350 --> 03:45.490
Prima di passare attraverso la sequenza di giallo rosso e poi accendere l'altra luce verde.

03:45.640 --> 03:52.750
Ho letteralmente copiato e incollato tutte queste righe dal programma originale di lampeggiamento, le ho aggiunte e

03:52.960 --> 04:01.930
ho solo modificato i numeri che ho modificato, quali spille sono state accese o spente e ho modificato il ritardo con facilità.

04:01.930 --> 04:06.930
Ora voglio sottolineare che ci sono quasi sempre diversi modi per fare lo stesso lavoro.

04:06.970 --> 04:12.150
Molto probabilmente ti sei ritrovato a fare la stessa cosa o qualcosa di simile.

04:12.450 --> 04:17.290
E in parte perché non conosci ancora il codice e le tecniche per farlo in altro modo.

04:17.680 --> 04:26.580
Se hai avuto problemi hai dimenticato di impostare le modalità per i pin.

04:26.620 --> 04:37.420
Hai mescolato i numeri dei pin o hai fatto quello che ho fatto e ho inviato un numero alto anziché uno basso a uno spillo.

04:37.480 --> 04:41.700
Hai dimenticato un punto e virgola alla fine delle righe di un anno.

04:42.710 --> 04:47.040
Quindi questi sono tutti errori comuni.

04:47.190 --> 04:54.060
Ora, prima di andare avanti, voglio sottolineare qualcosa dietro le quinte che rende la

04:54.300 --> 04:56.530
programmazione molto più semplice.

04:56.910 --> 05:05.110
Ora, mentre programmavo in codice macchina, personalmente ritengo che sia importante per l'apprendimento dei sistemi digitali.

05:05.130 --> 05:12.630
Ora capisco che il codice macchina è un orso con cui lottare e spero davvero che io non sapessi giudicare male

05:13.020 --> 05:17.020
e rendere le cose troppo complicate per te è iniziare.

05:17.240 --> 05:25.480
Ora avrei potuto iniziare con l'Arduino e le cose sarebbero molto più semplici ma non

05:25.480 --> 05:32.990
capiresti il funzionamento interno dei microprocessori e dei microcontrollori come hai fatto ora.

05:33.070 --> 05:42.950
Ora ricorderai come i tempi potrebbero essere un problema critico nei microprocessori e nei circuiti digitali.

05:43.120 --> 05:50.830
Hai imparato che i microprocessori possono essere così veloci da poter letteralmente contare i rimbalzi quando premi un

05:50.830 --> 05:51.340
pulsante.

05:52.420 --> 05:59.070
Hai imparato che dovevamo rallentare il microprocessore e l'abbiamo fatto inviando il microprocessore

05:59.070 --> 06:08.380
per farti fare i giri di giri, in pratica vorremmo solo mandarlo per andare a sederci e contare qualche

06:08.380 --> 06:16.600
milione di volte e anche allora era così il conteggio veloce in migliaia lo ritarderebbe solo

06:16.600 --> 06:19.770
di un centesimo di secondo.

06:20.470 --> 06:30.220
E ti ricordi di tutto il codice complesso coinvolto nell'avere il conto alla rovescia tante volte ti ricordi come

06:30.220 --> 06:38.220
abbiamo fatto i nostri ritardi di utilità che l'orologio Arduino non può essere cambiato.

06:38.270 --> 06:44.260
È bloccato con un cristallo saldato fisicamente alla lavagna.

06:44.310 --> 06:46.460
Ora questo ha alcuni svantaggi.

06:46.460 --> 06:54.680
Ad esempio, ricordate che quando stavamo usando il nostro display LCD abbiamo imbrogliato e semplicemente semplicemente rallentato la

06:54.680 --> 07:01.350
velocità del clock sul pick perché l'LCD richiedeva tempo per svolgere i suoi compiti.

07:01.370 --> 07:05.890
Ora non possiamo più rallentare la velocità di clock su Arduino.

07:06.080 --> 07:15.380
Quindi, per mantenere la nostra conoscenza di Duy compatibile con il nostro display LCD, ora dobbiamo programmare ritardi nel

07:15.380 --> 07:25.620
nostro codice, in modo che avere un orologio impostato in modo permanente non abbia svantaggi, ha un paio di grandi vantaggi.

07:25.680 --> 07:33.860
Ora sappiamo esattamente quanto tempo impiegherà il microcontrollore per contare i suoi ritardi.

07:34.450 --> 07:39.970
Quindi, ricordando che il tuo codice qui è tradotto in codice macchina simile a quello

07:42.710 --> 07:44.780
che abbiamo fatto sul plettro.

07:44.870 --> 07:53.660
Ma gli autori del compilatore Arduino hanno svolto un intero casino del lungo lavoro per rendere

07:53.660 --> 07:56.520
la tua vita molto semplice.

07:56.570 --> 08:03.290
Ora sapevano che per ritardare di un millesimo di secondo dovevano avere il conteggio di Arduino esattamente per

08:03.650 --> 08:05.940
l'intero 243 o qualcosa del genere.

08:05.990 --> 08:13.550
Non so quale sia il numero effettivo ma lo fanno perché hanno fatto tutti i

08:13.550 --> 08:21.920
calcoli hanno calcolato esattamente quanti cicli di clock sono stati consumati dal numero di istruzioni che conta l'Arduino

08:21.920 --> 08:30.090
e possono calcolare con sorprendente accuratezza il conteggio che ora devono fare ritardare un millesimo di secondo.

08:30.110 --> 08:40.830
Quindi ora vieni e digita una semplice riga di ritardo del codice e il tempo in millisecondi.

08:41.330 --> 08:47.630
Il compilatore scrive quindi diverse righe di codice macchina per ritardare di un millisecondo e quindi compila un

08:47.750 --> 08:50.940
altro ciclo per chiamare quel ciclo di ritardo.

08:51.080 --> 08:57.620
Tuttavia molte volte hai chiesto di aver chiesto 500 millisecondi.

08:57.710 --> 09:07.010
Il compilatore ha scritto molte righe di codice macchina per te includendo la scrittura di loop multipli di cicli tutti per

09:07.010 --> 09:10.160
ottenere un ritardo di 500 millisecondi.

09:10.310 --> 09:19.610
Ora ti ricordi che il microprocessore pick era così veloce che dovevamo farlo contare fino a 256 256 volte e poi per ottenere

09:20.450 --> 09:24.790
ritardi ancora più lunghi dovevamo codificare quel loop di loop.

09:24.860 --> 09:27.110
Altre 256 volte.

09:27.160 --> 09:28.550
Ricorda tutto questo.

09:29.000 --> 09:38.260
Bene, guardate qui un'anima gentile ha avuto il tempo di scrivere un compilatore per fare tutto quel duro lavoro per voi.

09:38.380 --> 09:42.010
Quindi tutto ciò che devi fare ora è scrivere una riga di codice semplice.

09:42.100 --> 09:53.590
Una linea di ritardo e poi dire esattamente per quanto tempo si desidera ritardare il compilatore fa il resto e tutti i nostri

09:53.590 --> 09:57.300
esercizi precedenti il tempismo era così critico.

09:57.350 --> 10:07.550
Dovevamo essere più lenti di quanto tu non conosca un po 'di tempo, ma ora possiamo essere molto precisi e molto facilmente puoi

10:07.910 --> 10:09.430
dire quel microprocessore.

10:09.430 --> 10:21.910
Ehi, aspetta 16 millisecondi non più di un millisecondo e lo farà.

10:21.950 --> 10:29.360
Quindi queste sono alcune delle cose che accadono in background che non si vedono, di cui sono certo che

10:29.360 --> 10:31.390
tu ora abbia un apprezzamento.

10:31.430 --> 10:39.200
Per quanto riguarda ciò che hanno fatto perché hai scritto che i ritardi del codice macchina sono grandiosi.

10:39.230 --> 10:44.000
Quindi se non hai fatto funzionare i tuoi semafori, puoi lottare con quello ora.

10:44.060 --> 10:48.760
Spero che tu abbia capito da dove sei uscito dai binari se l'hai fatto.

10:49.280 --> 10:54.980
Se non funziona ancora se non funziona ancora e non riesci a capirlo, lascia

10:55.130 --> 11:01.710
una domanda e il tuo codice nei commenti e vedremo se non possiamo aiutarti a risolvere i problemi.

11:02.120 --> 11:10.880
Se vuoi un'altra sfida, crea un sequencer leggero come la nostra auto da kit come facevamo prima con la foto.

11:10.970 --> 11:15.980
Sai come andare avanti e indietro quando torniamo alla prossima lezione.

11:16.070 --> 11:17.810
Passeremo agli input.
