Sommario:

Collegamento al microcontrollore in tutto il mondo per meno di $ 20: 15 passaggi
Collegamento al microcontrollore in tutto il mondo per meno di $ 20: 15 passaggi

Video: Collegamento al microcontrollore in tutto il mondo per meno di $ 20: 15 passaggi

Video: Collegamento al microcontrollore in tutto il mondo per meno di $ 20: 15 passaggi
Video: Quando provi a fare un complimento a una ragazza... 2024, Dicembre
Anonim
Collegamento a microcontrollori in tutto il mondo per meno di $ 20
Collegamento a microcontrollori in tutto il mondo per meno di $ 20

Controlla il termostato di casa dal lavoro. Accendi un irrigatore da qualsiasi parte del mondo premendo un interruttore. Questo Instructable mostra come collegare due o più microcontrollori da $ 4 utilizzando la spina dorsale di Internet e un semplice codice VB. Net. Questo si basa su un Instructable precedente che mostra come collegare un microcontrollore a un PC e utilizzare un potenziometro per controllare un servo https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ Questa volta abbiamo un microcontrollore che parla con un programma VB. Net, poi con un sito web ftp, di nuovo con un altro VB. Net programma e quindi un secondo microcontrollore in qualsiasi parte del mondo, con o senza intervento umano. In quale altro modo le macchine di Matrix dovrebbero mai prendere il sopravvento se non possono parlare tra loro?

Passaggio 1: raccogliere le parti

Raccogli le parti
Raccogli le parti

Molte delle parti sono le stesse del PC Control Instructable https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ e si suggerisce di completarlo prima di tentare per collegare due microcontrollori. Anche se è possibile usare un potenziometro per controllare un servo, questa volta faremo qualcosa di più semplice: un interruttore che accenda un led. L'interruttore potrebbe essere facilmente un sensore di livello del serbatoio e il led potrebbe essere una pompa vicino a un fiume, ma prima facciamo funzionare qualcosa di semplice. Parti - Due chip Picaxe 08M - disponibili da molte fonti tra cui Rev Ed https://www.rev- ed.co.uk/picaxe/ (Regno Unito), PH Anderson https://www.phanderson.com/ (USA) e Microzed https://www.microzed.com.au/ (Australia). Questi chip costano meno di $ 4US. Due di: scheda prototipi, batteria da 9 V e clip per batteria, resistore da 10 k, resistore da 22 k, condensatore da 33 uF da 16 V, condensatore da 0,1 uF, regolatore da 5 V a bassa potenza 7805 l, cavi (cavo telefonico/dati a nucleo solido es. Cat5/6), LED, resistore da 1 k. 1 di: presa femmina D9 e coperchio e 2 metri di cavo dati a 3 (o 4) core (per il download) e un interruttore a levetta. 2 computer con porte seriali a 9 pin (può essere eseguito il debug su un computer però) e una connessione Internet. Per computer senza porta seriale, un dispositivo da USB a seriale https://www.rev-ed.co.uk/docs/axe027.pdf e una piccola presa stereo.

Passaggio 2: scarica e installa alcuni software

Scarica e installa alcuni software
Scarica e installa alcuni software

Avremo bisogno del software gratuito VB. Net e del controller picaxe e se hai fatto il controller per PC Instructable avrai già questi. VB. Net (Visual Basic Express) è disponibile da https://msdn2.microsoft.com/en -us/express/aa718406.aspxIl software picaxe è disponibile da https://www.rev-ed.co.uk/picaxe/ Dovrai registrarti con microsoft per ottenere il download - se questo è un problema usa un'e-mail falsa o qualcosa. In realtà ho trovato utile dare la mia vera e-mail mentre inviano aggiornamenti occasionali. Citerò anche il forum picaxe https://www.picaxeforum.co.uk/ poiché questo è il tipo di forum gestito da insegnanti ed educatori e dove gli studenti di solito possono ottenere risposte alle domande entro poche ore. Il forum è molto comprensivo anche delle domande più semplici poiché alcuni studenti sono ancora al livello della scuola primaria. Per favore non abbiate paura di chiedere aiuto!

Passaggio 3: crea un circuito di download

Costruisci un circuito di download
Costruisci un circuito di download

Questo circuito di download utilizza un chip Picaxe, un paio di resistori, un regolatore e una batteria da 9V. Maggiori informazioni sono disponibili nella documentazione/aiuto di picaxe che compare nel menu di aiuto del programma. Il circuito dovrebbe richiedere solo pochi minuti per costruire una volta che tutte le parti sono a portata di mano. Una volta che un chip è programmato, mantiene il suo programma in EEPROM anche quando l'alimentazione è spenta. Dato che stiamo programmando due chip, potrebbe valere la pena etichettare i chip in modo da sapere quale è quale. Puoi sempre tornare indietro e riprogrammare un chip rimuovendo un collegamento e spostando un resistore.

Potrei anche aggiungere che i picax funzionano felicemente con 3 batterie AA. Un'alimentazione regolata a 5V è utile per far funzionare gli ingressi analogici poiché le tensioni di riferimento non cambiano, ma per semplici circuiti on/off non è necessaria un'alimentazione regolata. Il registro 5V può essere omesso in queste situazioni.

Passaggio 4: programmare i chip

Programma le fiches
Programma le fiches

Chiameremo un programma Tx e un Rx. Tx è il chip di controllo e ha un interruttore e un led. Rx ha anche un led. Quando l'interruttore cambia il segnale va da Tx a Rx, cambia il led e cambia anche una seconda variabile che poi torna a Tx. Quindi aziona l'interruttore e in meno di un minuto il led cambia su entrambi i circuiti indicando che il messaggio è arrivato e che l'Rx sta agendo sulla nuova posizione dell'interruttore. Al livello più semplice il picaxe ha 14 registri a byte singolo. Quando viene creata una rete virtuale colleghiamo tutti quei registri insieme, quindi se un byte cambia in un picax cambia in tutti i picax. Chiaramente se due picax stanno cercando di cambiare lo stesso byte, allora sarà molto confuso, ma se ogni picax cambia solo un byte, allora tutti gli altri picax possono vedere quel cambiamento e possono agire su di esso. I messaggi semplici possono essere passati avanti e indietro se un certo byte viene modificato solo da un picax. Un potenziometro può cambiare il valore in un registro e uno o più altri picax possono percepire il cambiamento e spostare un servo o qualsiasi altra cosa e accendere un riscaldatore. Un secondo registro potrebbe restituire la temperatura nella stanza. Copia e incolla i programmi a turno nel programmatore picaxe e scaricali su ciascuno dei rispettivi chip utilizzando la freccia blu di download all'interno del programmatore picaxe. Tx:main:serin 3, N2400, ("Dati"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' ottiene il pacchetto dal computer se pin2= 0 quindi' testare l'interruttore e impostare il registro b0 in base allo stato b0=0 altrimenti b0=1 endif se b1=0 quindi' altri set picaxe b1 in base a b0 basso 1' led spento altrimenti alto 1' led acceso endif serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' rimanda al computer vai a maine Rx:main:serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' ottiene il pacchetto dal computer b1=b0' cambia registro b1 in uguale registro b0 se b1 =0 poi basso 1' led spento altrimenti alto 1' led acceso endif serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' rimanda al computer goto main

Passaggio 5: costruire il circuito Tx

Costruisci il circuito Tx
Costruisci il circuito Tx

Se stai passando avanti e indietro tra un circuito funzionante e un circuito di programmazione, assicurati di cambiare la connessione alla gamba 2 e la posizione del resistore da 22k dalla gamba 2 alla gamba 4. Oppure puoi costruire un circuito di download dedicato e spostare i chip attraverso. Basta notare se un circuito è in esecuzione o sta scaricando in quanto può diventare piuttosto confuso. In particolare, si noti che un circuito in funzione non funzionerà se la gamba 2 viene lasciata flottante: deve essere collegata a terra. Leg 2 è il pin di download e se viene lasciato fluttuare raccoglie RF vaganti dalle luci di faro e il chip pensa che sia in corso il download di un altro programma.

Vale anche la pena menzionare la nomenclatura picaxe che chiama un perno fisico una gamba e un perno virtuale un perno. Quindi un'uscita sul pin 2 nel codice è in realtà un'uscita sulla gamba fisica 5. Questo potrebbe sembrare strano ma significa che il codice può essere portato su picax più grandi come le versioni a 28 e 40 pin e funziona ancora.

Passaggio 6: costruire il circuito Rx

Costruisci il circuito Rx
Costruisci il circuito Rx

Questo circuito è quasi lo stesso del trasmettitore: semplicemente non ha un interruttore.

Passaggio 7: scrivi del codice VB. Net

Scrivi del codice VB. Net
Scrivi del codice VB. Net

Avrei potuto compilare il codice e rendere disponibile questo programma come.exe compilato, ma imparare un po' di VB. Net è così incredibilmente utile che vale la pena esaminarlo passo dopo passo. Se lo stai eseguendo su due computer diversi, puoi creare il programma in un.exe che crea un piccolo programma di installazione che può essere installato sul secondo computer. Oppure puoi mettere VB. Net su entrambi i computer ed eseguire i programmi da VB. Net Supponiamo di sapere come aprire un nuovo progetto VB.net dai passaggi 7 e 8 di https://www.instructables.com/id/S1MMU2XF82EU2GT /Sul modulo vuoto aggiungiamo i seguenti componenti dalla barra degli strumenti e li inseriamo nel modulo nelle posizioni come mostrato. Per le etichette e le caselle di testo, cambia la proprietà del testo (in basso a destra) con ciò che è necessario. Non preoccuparti delle impostazioni per il timer: le cambieremo nel codice ma assicurati di inserire un timer. Puoi spostare le cose e non ci sono regole reali sulla posizione. La casella di testo grande è una RichTextBox e le tre più piccole sono normali caselle di testo. In termini di ordine, iniziamo dalla parte superiore del modulo e ci spostiamo verso il basso. Se lasci qualcosa fuori ci sarà un errore nel codice che dovrebbe dare una sorta di indizio. Scegli un nome file casuale per Textbox3 - questo è il nome del tuo gruppo unico di picax sul server ftp e ovviamente se tutti usiamo il stesso nome, quindi i dati saranno tutti confusi! Mi dispiace per i trattini in questa tabella - l'inserimento di spazi perde la formattazione nella tabella. Oggetto Toolbox-------Testo----------- ---------------NoteLabel1---Picaxe CommunicationsLabel2------------------FTP StatusLabel3---StatusLabel4---------- --------Picaxe RegistersLabel5------------------Register 0-13Label6---- Valore 0-255Label7------------------Nomefile di collegamento FTPTextbox1--0-------- ---------------------------------------0 è uno zero non un OTextbox2----- -----------0Casella di testo3-Mionomefile--------------------- ----------Cambia in modo che non ci siano scontri! Pulsante1---ModificaRichtextbox1 Picturebox1 Picturebox2 Timer1

Passaggio 8: aggiungi del codice

Aggiungi del codice
Aggiungi del codice

Vedere il passaggio 12 dell'altra istruzione per la posizione del pulsante che passa dalla visualizzazione modulo alla visualizzazione codice. Passa alla visualizzazione codice e incolla il seguente codice. I colori dovrebbero riapparire tutti come nello screenshot. Se una riga non è stata copiata correttamente a causa di un problema di a capo automatico, elimina gli spazi finché il messaggio di errore non scompare. Ho provato a commentare la maggior parte delle righe in modo che il codice abbia almeno un senso. Elimina il bit della classe pubblica in modo che il testo sia vuoto prima di incollarlo: questo codice ha già una classe pubblica. Se un oggetto come una casella di testo non è stato inserito nel modulo o ha il nome sbagliato, verrà visualizzato nel codice di testo con una linea blu ondulata sotto di esso. Imports System. IOImports Strings = Microsoft. VisualBasic ' quindi può essere utilizzato cose come left(and right(for stringsPublic Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' per le istruzioni di sospensione Dim WithEvents serialPort As New IO. Ports. SerialPort ' la porta seriale dichiara Dim PicaxeRegisters(da 0 a 13) As Byte ' registra da b0 a b13 Dim ModifyFlag As Boolean Private Sub Form1_Load(ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. Load ' ha bisogno di tutta questa robaccia -.net la inserisce automaticamente quando vai form1events above/load Timer1. Enabled = True ' inseriscilo nel codice come impostazione predefinita su false quando viene creato Timer1. Interval = 20000 ' ogni 20 secondi PictureBox1. BackColor = Color. Gray ' inizia con le caselle di comunicazione grigie PictureBox2. BackColor = Color. Gray ModifyFlag = False ' se modifichi un valore manualmente allora s kip download RichTextBox1. Multiline = True ' quindi può visualizzare più di una riga Call DisplayPicaxeRegisters() ' visualizza i 14 registri Call ReadFTPFilename() ' legge il nome del file dal disco (salvato ogni 20 secondi) End Sub Sub SerialTxRx() Dim DataPacket(Da 0 a 17) As Byte ' intero pacchetto di dati "Data"+14 byte Dim i As Integer ' i è sempre utile per i loop, ecc. Per i = 0 a 3 DataPacket(i) = Asc(Mid("Data", i + 1, 1)) ' aggiunge la parola "Data" al pacchetto Next For i = da 0 a 13 DataPacket(i + 4) = PicaxeRegisters(i) ' aggiunge tutti i byte al pacchetto Next If serialPort. IsOpen Then serialPort. Close(). piccoli picax. Parity = IO. Ports. Parity. None ' nessuna parità. DataBits = 8 ' 8 bit. StopBits = IO. Ports. StopBits. One ' un bit di stop. ReadTimeout = 1000 ' millisecon ds così va in timeout in 1 secondo se nessuna risposta. Open() 'apri la porta seriale. DiscardInBuffer() 'cancella il buffer di input. Write(DataPacket, 0, 18) 'invia l'array datapacket Call Sleep(300) '100 millisecondi minimo per attendere il ritorno dei dati e altro se il flusso di dati è più lungo. Read(DataPacket, 0, 18) ' rilegge nell'array del pacchetto di dati. Close() ' chiude la porta seriale End With For i = 4 To 17 PicaxeRegisters (i - 4) = DataPacket(i) ' sposta il nuovo pacchetto di dati nell'array di registro Next PictureBox1. BackColor = Color. GreenYellow ' funziona Catch ex As Exception PictureBox1. BackColor = Color. Red ' non funziona End Try End Sub FTPUpload (ByVal Filename As String) Dim localFile As String 'posto in cui archiviare i dati Dim remoteFile As String ' il nome del file fa distinzione tra maiuscole e minuscole questo è molto importante Const host As String = "ftp://ftp.0catch.com" 'nota lo 0 è un zero non un carattere O Const username As String = "picaxe.0catch.com" Const password As String = "picaxetester" Dim URI As String localFile = Filename ' potrebbe non essere necessario, ma se definisci una posizione, ad esempio c:\mydirectory, puoi aggiungere facilmente in questo modo remoteFile = "/" + Filename ' sul server ftp deve essere aggiunto "/" all'inizio URI = host + remoteFile Prova Dim ftp come sistema. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(username, password) ' log in ftp. KeepAlive = False ' sarà disconnettersi una volta fatto ftp. UseBinary = True ' usa le comunicazioni binarie ftp. Timeout = 9000 ' timeout dopo 9 secondi - molto utile poiché ftp a volte muore 'il timeout (e la frequenza di clock di 20 secondi) potrebbe dover essere più lento per le connessioni dialup ftp. Metodo = System. Net. WebRequestMethods. Ftp. UploadFile ' avvia l'invio del file Dim fs As New FileStream(localFile, FileMode. Open) ' apre il file locale Dim filecontents(fs. Length) As Byte ' legge in memoria fs. Read(filecontents, 0, fs. Length) fs. Close() 'chiude il file Dim requestStream As Stream = ftp. GetRequestStream() ' avvia ftp link requestSt ream. Write(filecontents, 0, filecontents. Length) ' invialo requestStream. Close() ' chiudi il collegamento PictureBox2. BackColor = Color. GreenYellow ' cambia la casella in verde per dire che ha funzionato bene Label2. Text = "FTP Connected" ' testo che dice che è connesso Catch 'impossibile connettere PictureBox2. BackColor = Color. Red ' box in rosso come nessuna connessione Label2. Text = "FTP Upload Fail" 'testo che dice connessione fallita End Try End Sub FTPDownload(ByVal Filename As String) ' scarica remotefile in localfile Dim localFile As String 'luogo in cui archiviare i dati Dim remoteFile As String ' il nome del file fa distinzione tra maiuscole e minuscole questo è molto importante Const host As String = "ftp://ftp.0catch.com" Const username As String = "picaxe.0catch.com" Const password As String = "picaxetester" Dim URI As String 'localFile = "C:\" + Filename ' memorizza nella directory principale ma può cambiare questo localFile = Filename ' quindi può aggiungere c:\ se necessario definire posizione effettiva remoteFile = "/" + nome file ' aggiunto alla posizione ftp remota URI = host + remoteFile ' compongono indirizzo completo Try Dim ftp As System. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(username, password) ' log in ftp. KeepAlive = False ' si disconnetterà al termine ftp. UseBinary = True ' modalità binaria ftp. Timeout = 9000 ' timeout dopo 9 secondi ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile ' scarica un file ' letto a pezzi come non so quanto è grande il file Usando response As System. Net. FtpWebResponse = CType(ftp. GetResponse, System. Net. FtpWebResponse) Usando responseStream As IO. Stream = response. GetResponseStream Usando fs come nuovo IO. FileStream(localFile, IO. FileMode. Create) Dim buffer(2047) As Byte Dim read As Integer = 0 Do read = responseStream. Read(buffer, 0, buffer. Length) ' pezzo da ftp fs. Write(buffer, 0, read) ' e scrivi su file Loop Until read = 0 'fino a quando non ci sono più pezzi responseStream. Close() 'chiudi il file ftp fs. Flush() ' flush clear fs. Close() ' e chiudi th e file End Using responseStream. Close() 'chiudilo anche se non c'era nulla End Using response. Close() PictureBox2. BackColor = Color. GreenYellow 'scatola verde come ha funzionato Label2. Text = "FTP Connected" 'e testo che lo dice ha funzionato End Using Catch 'inserisci i codici di errore qui PictureBox2. BackColor = Color. Red 'scatola rossa perché non ha funzionato Label2. Text = "FTP Download Fail" 'e messaggio per dire questo End Try End Sub Private Sub Timer1_Tick(ByVal sender As System. Object, ByVal e As System. EventArgs) gestisce Timer1. Tick If ModifyFlag = False Then 'se l'utente ha modificato un byte, non scaricare Label3. Text = "Downloading" System. Windows. Forms. Application. DoEvents() ' in modo che il nuovo testo dell'etichetta venga visualizzato Call FTPDownload(TextBox3. Text) ' scarica il file remoto Label3. Text = "Downloaded" System. Windows. Forms. Application. DoEvents() Call ReadRemoteFileToRegisters() ' salva i numeri dei file nell'array di registro Label3. Text = "Parlando con picaxe" System. Windows. Forms. Application. DoEvents() Else ModifyFlag = False 'reimposta il flag End If Call SerialTxRx() ' invia a picaxe e rileggilo Label3. Text = "Inviato e ricevuto da picaxe" System. Windows. Forms. Application. DoEvents() Call DisplayPicaxeRegisters() Call SaveRegistersToLocalFile() ' salva i numeri su file Label3. Text = "Caricamento" System. Windows. Forms. Application. DoEvents() Chiama FTPUpload(TextBox3. Text) ' invia il backup al sito ftp chiamato come il mio nome Label3. Text = "Riposo" Chiama SaveFTPFilename() 'così si legge in quando si riavvia End Sub DisplayPicaxeRegisters() Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True ' quindi può visualizzare più di una riga nella casella di testo RichTextBox1. Clear() ' cancellare la casella di testo For i = 0 a 13 registernumber = Trim(Str(i)) ' elimina gli spazi iniziali If i < 10 Then registernumber = "0" + registernumber ' aggiunge 0 ai numeri inferiori a 10 End If RichTextBox1. AppendText(registernumber + " = " + Str(PicaxeRegisters(i)) + Chr(13)) Next ' chr(13) è il ritorno a capo, quindi la nuova riga End Sub Private Sub Button1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Gestisce Button1. Click Dim i As Integer ' check out of range first i = Val(TextBox1. Text) If i <0 Or i> 13 Then TextBox1. Text = 0 End If i = Val(TextBox2. Text) If i <0 Or i> 255 Then TextBox2. Text = 0 End If PicaxeRegisters(Val(TextBox1. Text)) = Val(TextBox2. Text) ' cambia il valore Call DisplayPicaxeRegisters() ' e aggiorna il display ModifyFlag = True ' e il successivo collegamento ftp salta il download End Sub Sub SaveRegistersToLocalFile() ' salva l'array di registro in un file di testo locale Dim i As Integer FileOpen(1, TextBox3. Text, OpenMode. Output) ' apre il file di testo denominato nella casella di testo For i = da 0 a 13 PrintLine(1, Str(PicaxeRegisters(i))) ' salva 14 valori Next FileClose(1) ' chiudi il file End Sub Sub ReadRemoteFileToRegisters() ' leggi il file di testo locale nell'array dei registri Dim i As Integer Dim LineOfText As String Try FileOpen(1, TextBox3. Text, OpenMode. Input) 'leggere il nome del file remoto For i = da 0 a 13 LineOfText = LineInput(1) 'leggere nel 14 lin es PicaxeRegisters(i) = Val(LineOfText) ' converte il testo in valori Next FileClose(1) Catch ex As Exception FileClose(1) ' il file non esiste quindi non fare nulla End Try End Sub ReadFTPFilename() ' quindi il nome di il file ftp remoto è lo stesso la prossima volta che questo programma viene eseguito Dim LineOfText As String Try FileOpen(1, "FTPFilename.txt", OpenMode. Input) ' apri il file LineOfText = LineInput(1) TextBox3. Text = LineOfText ' leggi il name FileClose(1) Catch ex As Exception FileClose(1) End Try End Sub Sub SaveFTPFilename() FileOpen(1, "FTPFilename.txt", OpenMode. Output) ' salva il nome del file ftp remoto PrintLine(1, TextBox3. Text) FileClose(1) End SubEnd Class

Passaggio 9: eseguire il programma su entrambi i PC

Esegui il programma su entrambi i PC
Esegui il programma su entrambi i PC

Avvia l'esecuzione del programma facendo clic sul triangolo verde nella parte superiore centrale dello schermo, il pulsante "Avvia debug". Non succederà nulla per 20 secondi e poi il programma tenterà di connettersi al server ftp e tenterà di connettersi al picaxe. I quadri diventeranno rossi o verdi. La posizione ftp è un sito Web gratuito e chiunque può utilizzarlo, ma è necessario utilizzare un nome file ftp di lavoro diverso (il mio è DoctorAcula1) altrimenti potremmo finire tutti con i dati dell'altro se usiamo lo stesso nome file! Se vuoi puoi eventualmente ottenere il tuo sito ftp - basta cambiare la posizione ftp, nome utente e password in due posti nel codice dal mio sito web 0Catch. La maggior parte dei siti Web consente ftp. Più computer possono accedere allo stesso file ftp: il fileserver ftp ordina in quale ordine si verificano. Occasionalmente ci sono conflitti di dati o blocchi e questi sembrano accadere ogni 20 letture di file. C'è un timeout nel codice se ciò accade, quindi non restituisce dati anziché dati corrotti. L'utilizzo di una connessione a banda larga con una velocità di caricamento di 128 kbs significa che il caricamento di un file richiede circa 3 secondi ma a volte fino a 8 secondi, la maggior parte dei quali è occupata nell'handshaking piuttosto che nel trasferimento dei dati. Questo imposta il tempo del timer1 di un minimo di circa 20 secondi tenendo conto di download, upload e chat con picaxe. Con una banda larga molto veloce potresti essere in grado di accorciare il tempo di ciclo. Puoi modificare un registro manualmente all'interno del programma VB. Se lo fai, il ciclo del timer successivo salta il download dal sito ftp e invia i nuovi dati al picaxe, quindi li legge e li carica. I nuovi dati trovano così la loro strada verso tutti i picax legati a questo gruppo. Questo è utile per il debug e/o per collegare il software del PC al loop hardware del microcontrollore. I siti Web possono anche accedere al loop hardware utilizzando lo script PERL o simili per scrivere un nuovo file sul sito ftp. Questa schermata è stata scattata eseguendo il chip Tx, l'interruttore era acceso e il registro b0 = a 1 era stato inviato al chip Rx che aveva quindi cambiato anche il registro b1 in 1. Il led è stato così acceso su entrambe le schede. Questa è un'applicazione banale ma è facile accendere una pompa da 3.6Kw invece di un led. Alcune altre idee sono su https://drvernacula.topcities.com/ incluso il collegamento di picax tramite collegamenti radio a energia solare. Con i collegamenti radio e Internet è possibile per 'The Machines' raggiungere molti angoli del globo. Ci sono alcune idee in giro sul forum Picaxe su come portare avanti questa idea e sostituire il PC e il sito ftp con chip di server web dedicati che si collegano direttamente a un router. Chiaramente questo ridurrebbe il consumo energetico di un collegamento. Se sei interessato ad ulteriori discussioni, pubblica sui commenti di Intstructable e/o sul forum picaxe. Dr James Moxham Adelaide, South Australia

Passaggio 10: schermate del codice

Screenshot di Codice
Screenshot di Codice

A richiesta ecco una serie di screenshot del codice vb.net con tutta la formattazione in atto. Questo codice è stato effettivamente copiato da questo istruibile e la formattazione è ricomparsa automaticamente. Sarebbe meglio copiare e incollare il testo piuttosto che provare a leggere queste immagini, ma queste saranno utili se sei in un internet café e non puoi installare vb.net.

Passaggio 11: schermata 2

Schermata2
Schermata2

Schermata 2

Passaggio 12: Schermata 3

Schermata 3
Schermata 3

Schermata 3

Passaggio 13: Schermata 4

Schermata 4
Schermata 4

Schermata 4

Passaggio 14: Schermata 5

Schermata 5
Schermata 5

Schermata 5

Passaggio 15: Schermata 6

Schermata 6
Schermata 6

Schermata 6

Consigliato: