Wireless PIC PIC

A

atferrari

Guest
A 16F877 invia i comandi a tre 16F628 indipendenti, ciascuna PWM quella che controlla la start / stop / reverse e la velocità di un motore a corrente continua o servo modificati.

Per un collegamento wireless ho ritenuto di usare un diodo a infrarossi che emette un comune Sony Codice IR con l'istruzione (start - stop - inversione di valore o PWM) e l'identificazione del motore (per il momento, i tre farà tutto allo stesso tempo ).

Segnale, modulato a 38 KHz decodificati da un modulo ricevitore IR.

Poiché il diodo IR non può "vedere" ogni ricevitore IR per tutto il tempo (si muovono rispetto al diodo) Vorrei mettere due ricevitori IR per motore, debitamente OR.Ridondanti per garantire che non 16F628 perdere un comando.

Se necessario userei tre diodi di "inondare" il settore e di garantire la ridondanza anche di più.

Diodo Distanza ricevitore: massimo 30 cm.

Decodifica via software ad ogni 16F628

-------------------------------------------

Ormai non mi aspetto di ottenere le cose molto più complessa.Per ottenere un link diretto a ciascun 16F628, se non ho wireless dovrebbe ricorrere a scivolare gli anelli.Veramente costoso (che io non posso permettermi).Suggerimenti / Commenti qualcuno?Mi rendo conto che.

<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Interrogazione" border="0" />Tomás Agustín

 
Salve,

Io non sono un pro a Micro ancora, ancora bloccato sulla mia tastiera midi

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />

Heres, ma quello che penso:

Quindi, si sta utilizzando IR.38KHz tali moduli sono una meraviglia, ho ricevuto una serie di 25m con uno ad alta emettitore IR uscita!

Il 16F628, se non sbaglio ha UAR hardware / SCI.Questo potrebbe tornare utile, so che lei ha detto la decodifica in software, ma se è possibile utilizzare una periferica ......

Seconda della quantità di dati che si desidera inviare, ciò che fa, quanto sia importante, ecc.Non posso essere molto specifiche, ma direi che qualcosa di simile al protocollo RC5 (in sostanza quello che hai detto).O utilizzare il proprio protocollo, la codifica Manchester, con un preambolo, byte di sincronizzazione (inizio dei dati, fine del preambolo), quindi un byte di indirizzo, e quindi i vostri dati.Se si sta utilizzando solo 3 ricevitori indipendenti, allora sarei ancora utilizzare un intero byte per l'indirizzo, perché allora si può scegliere l'indirizzo di ogni destinatario in modo che sia completamente diverso dagli altri due, al massimo 'Hamming a distanza'.Così eventuali errori nel byte di indirizzo deve essere in realtà non importa, perché il ricevitore per la sua poteva tollerare un po 'o due fuori luogo.Se sei veramente per esso, si potrebbe aggiungere un CRC, alla fine dei dati, ma suppongo che sarà necessario-comms modo per provare a inviare.Personalmente non credo che gli errori saranno un problema.

Così, per un diagramma crap:
[premessa] [] sync [indirizzo] [data] [LEADOUT]

O, se tutti i ricevitori devono essere (o possono) essere aggiornati allo stesso tempo:
[premessa] [sync] [address1] [data1] [address2] [data2] [address3] [data3] [LEADOUT]

O (scusate, mi fermo in un po '), si potrebbe avere solo 3 byte di dati, e ogni ricevitore è assegnato uno slot.Così il primo byte di dati è per la prima Rx, in secondo luogo, per il secondo Rx, ecc. N. indirizzi necessari, ogni Rx conta solo il numero appropriato di bit / byte, finché non si tocca leggere.

Date un'occhiata qui per usare il tuo hardware UART (ricevitore nel 16F628's) per la codifica Manchester / decodifica:
http://www.quickbuilder.co.uk/qb/articles/ - bellissimo articolo, molto intelligente!

Ma il software va bene, finché non si devono costantemente ricevere bytes back-to-back.

Per quanto riguarda la configurazione hardware.Allagamento della zona con alta emettitori IR di potenza, e con 2 / 3 moduli ricevitore IR su ogni ricevitore suoni abbastanza affidabili per me, è sempre possibile striscia verso il basso, se funziona bene e vedere esattamente che cosa avete bisogno.Non riesco a ricordare se il modulo IR è 0 o 1 quando è inattivo, potrebbe essere necessario un inverter.

Beh, non è possibile pensare ad altro, non fa male a sperimentare un po ', provare a scrivere un codice di prova per Tx e Rx un singolo, per ottenere un errore di buona stabile collegamento gratuito.Poi basta scalare.

Buona fortuna, e spiace se sai tutto questo.

BuriedCode

 
Suggerirei di usare la radio RF e indirizzabili.IR è abbastanza altamente direzionale soprattutto se siete al di fuori della stanza in cui non muri per far rimbalzare il segnale.In questo caso è solo bisogno di 1 ricevitore per motore.Spero di capire bene il tuo problema e ho posto questa risposta.Grazie ...

 
Hi BuriedC e Pete,

Hai capito la mia idea molto bene.Grazie per tutti i suggerimenti.Oggi sto cominciando a scrivere il codice, ma darà uno sguardo alla codifica Manchester

<img src="http://www.edaboard.com/images/smiles/icon_idea.gif" alt="Idea" border="0" />

(tante volte sentito parlare ma mai indagato in it!

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutral" border="0" />

).

Inf forse un futuro prossimo sarò in grado di pubblicare alcuni risultati

<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Interrogazione" border="0" />Gracias di nuovo

<img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Esclamativo" border="0" />
 
È possibile cercare su micro elicotteri RC e forum aerei.
La gente a volte l'uso a infrarossi per controllare i modelli RC negli edifici design (molto economico e leggero confronto alla maggior parte dei sistemi RC)
Circuito di solito composto da diversi / diodi IR di più per inviare il segnale e uno / fototransistors pochi a ricevere il segnale.

 
salve
vedere
http://www.edaboard.com/viewtopic.php?t=130804&highlight =

 
Primo passo fatto!

Gli ordini dal cervello del bot, inviato tramite un collegamento IR, composto da un impulso di inizio e uno a 8-bit con il pack nybble MS per il dispositivo di ID e la LS nybble per i comandi.Te tutto codificato secondo il protocollo di Sony SIRC.

Fors prove ho impostato il 16F628 generare un PWM, che dopo aver ricevuto l'ordine di inizio, si avvia e rampe fino a un valore intero ciclo del servizio, mentre l'ordine di arresto porta il PWM out pin a 0.
-----------------------------------------------
Per il momento, l'IR Emitting Diode si trova di fronte il ricevitore a pochi millimetri di distanza.

Quando la luce della lampada è in panchina, vedo nel campo di applicazione impulsi casuali raggiungere i pin di ingresso del 16F628.Fino ad ora non ho rilevato avevano alcun effetto visibile, come un inaspettato avviare o arrestare, ma ...Può succedere?

Nel caso in cui si chiede, no, non ho alcuna luci fluorescenti circa (io li odio!)

Con le finestre spalancate e le inondazioni del soleggiamento è la stanza non riesco a vedere alcun impulso visibili.

Commenti anyone?
-----------------------------------------------

Next step:a-routine di controllo degli errori.I googled per questo e trovato troppo (schiacciante) info.Checksum / CRC / maggioranza / ANDing / etc ..

Suggerimenti / commenti welcome!

E dopo che:b-routine per controllare la direzione in avanti / indietro.Tomás Agustín

 

Welcome to EDABoard.com

Sponsor

Back
Top