Taula de continguts:

FEEDBACK LED SONIC: 7 passos (amb imatges)
FEEDBACK LED SONIC: 7 passos (amb imatges)

Vídeo: FEEDBACK LED SONIC: 7 passos (amb imatges)

Vídeo: FEEDBACK LED SONIC: 7 passos (amb imatges)
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Desembre
Anonim
FEEDBACK LED SONIC
FEEDBACK LED SONIC
FEEDBACK LED SONIC
FEEDBACK LED SONIC
FEEDBACK LED SONIC
FEEDBACK LED SONIC

Hola de nou, Odio que el vostre robot toqui tot? Això solucionarà aquest problema. Amb vuit sensors sonors això sembla complicat … però de fet ho vaig fer molt fàcil. Intento publicar projectes que us ajudin a conèixer Arduino i a mostrar un concepte "fora de la caixa". Aquesta publicació us ajudarà a entendre el canvi de 595, els pro-minis com a sensor programable i el gran ús de la retroalimentació en temps real. Si us agrada Arduino com a "copiar i enganxar i connectar", només podeu ometre-ho.

M'agrada utilitzar els pro-mini. Són aproximadament 2,50 dòlars, funcionen com un complet i la instal·lació de capçaleres els fa molt flexibles. Utilitzat com a sensor micro, el podeu fer "fer el que vulgueu" en lloc del que dicta un sensor comprat. Amb I2C que utilitza només 2 cables, es poden lligar tots en una línia. Per tant, passeu per MEGA. Puc tenir 4 minis que executen 4 línies de codi separades alhora, a només 10,00 $. Aquí faig servir un mini per fer passar els sensors sonors a través d’un 595 i mostrar la distància de led en temps real. A continuació, només cal compartir vuit bits de dades amb la placa base. Això treu la càrrega de la placa base i fa que el seu codi sigui molt senzill.

Hi ha un problema amb els sensors sonors … no hi ha retroalimentació visual. Mai se sap si el sensor només funciona o funciona. Crec que qui ha arribat amb "BLINK" és més intel·ligent que Einstine. Un parell de leds i un món d’informació es transmet mitjançant el parpelleig. Per tant, un sensor sonor necessita retroalimentació en temps real. Aquí he utilitzat una sèrie de leds per controlar cada sensor. No els necessiteu, només cal que feu els sensors sense els leds. Però és útil tenir els leds al PCB.

Pas 1: Feu PCB

FER PCB
FER PCB
FER PCB
FER PCB
FER PCB
FER PCB
FER PCB
FER PCB

fer PCB i poblar. PRECAUCIÓ … Vaig cometre un error a la PCB a les connexions de 4 pins perquè es connectessin els sensors sonors. ECHO i TRIGGER Vcc i els terrenys s’anaven a connectar a la placa base. No hi ha prou espai per als connectors, així que acabo de fer la placa amb pin-outs. Per tant, podeu soldar un connector de filferro al PCB i connectar-lo als sensors sonors reals. Pel que fa als leds, he posat leds grocs a la vora interior i vermells a l'exterior. això us ajudarà a veure a distància si els sensors mesuren correctament.

Aquest és un dels POCS PCB 2side que he fet mai. Prefereixo fer dos saltadors per un sol costat i córrer. Però, per obtenir la pantalla LED, necessiteu almenys la placa superior. He separat el disseny a la descàrrega.

El PCB és per a un pro-mini amb A4-A5 dins del capçal de la vora. De qualsevol manera, només cal que connecteu l'A4-A5 al Màster A4-A5. No us oblideu de Vcc i Grounds.

Pas 2: MOLTS ERRORS

MOLTS ERRORS
MOLTS ERRORS

Ara pels meus errors … Vaig intentar fer saltar els Triggers alhora (tots units) i això sortia bé, però es van produir algunes interaccions. Ara, doncs, tots els ECHOS van al micro (8) i els TRIGGERS estan configurats per un 595. Tres pins més (3). Pel que fa als leds, el multiplexat no funcionarà. Necessiteu un temps d'activació complet per a cada led. Això significa que cada fila de 7 leds ha de tenir el seu propi 595. Una vegada que actualitzeu el 595, els leds romandran encesos fins a la propera actualització. Quan es multiplexen els leds només s’encenen durant una dècima de segon. Això funciona bé en els meus lectors i necessita un micro dedicat. No hi ha temps per escanejar vuit sensors sonors i mesurar distàncies. Vaig provar i vaig obtenir resultats molt pobres. Multiplexar els leds també significarà una quadrícula de fila + columna i això significa al voltant de més de 64 passos d’alimentació al PCB.

Només he utilitzat 7 sortides del 595 a causa del desordre al PCB. A distància no es pot saber si hi ha 7 o 8 leds només el seu moviment. És possible que tingueu la temptació de lligar tots els leds a una sola resistència i això funcioni, però la brillantor de la matriu canvia amb la quantitat de leds que són poc importants. Per tant, és millor una resistència per led. M'encanta el 595, però si només moguessin els pins Vcc i 0-out o fessin un ic de 18 pins amb TOTES les sortides del mateix costat … seria tan fàcil connectar les vuit sortides. Però després no es vendria per menys de 30 cèntims.

Pas 3: MONTEU SENSORS

SENSORS DE MUNTATGE
SENSORS DE MUNTATGE
SENSORS DE MUNTATGE
SENSORS DE MUNTATGE
SENSORS DE MUNTATGE
SENSORS DE MUNTATGE
SENSORS DE MUNTATGE
SENSORS DE MUNTATGE

Enganxeu els sensors sonors a la tapa del cafè. el gat masculí ha d’estar doblegat cap a dins de cada sensor. Funciona millor si doblega un passador a la vegada. He utilitzat cinta d'escuma de 2 laterals perquè la vibració sigui menor. Els meus sensors són massa propers i necessiten un espai d’1 / 4 polzada per coincidir millor amb el PCB. Abans he utilitzat sensors sonors i, de vegades, no es pot mesurar amb precisió i cal tenir-ho en compte. Per tant, no enganxeu-los tots de manera permanent.

També ajuda a fer una prova ràpida de distància en cadascun d’ells abans d’utilitzar-los. Tinc aproximadament un sensor amb una lectura deficient en un lot de 20. No està malament pel preu que he pagat.

Pas 4: FIL DUR

FIL DUR
FIL DUR

Vaig pensar que hi hauria espai per a preses i endolls del PC al

pins sonors, però em vaig quedar sense habitació. Per tant, vaig connectar durament l’extrem del PCB i vaig fer ressò i activar cables amb preses femella (8ea). Vaig lligar els terrenys 8ea Vcc i 8ea dels sensors, de manera que això feia només dues connexions a la PCB.

Amb 8 sensors i 8 595, un o pro-mini NO PODEN alimentar-lo. Hi ha d’haver una font regulada de 5 V com a part d’aquest projecte. El meu robot té un senzill 7805 @ 1amp de les bateries. Això es relaciona amb tots els 5 Vcc de tots els dispositius. el 7805 cau aproximadament un volt, de manera que necessiteu almenys 6,5 volts per alimentar-lo. És a dir, 2 bateries de liti a 3,3v. El meu robot té nicads antigues de paquets de trepants usats i 8 nicads fan funcionar el típic motor de 12 V amb engranatges de la Xina al xassís del tipus de tanc de 20 dòlars.

Pas 5: DESCÀRREGA DE SONIC SKETCH

DESCÀRREGA SONIC SKETCH
DESCÀRREGA SONIC SKETCH

Baixeu-vos l'esbós i instal·leu-lo. Hi ha moltes maneres de parlar

un altre però m'agrada l'I2c. la confusió es dirigeix i mestre / esclau. Com passa amb la majoria de sensors (penseu en el segon mini com a sensor), us adreceu al sensor i demaneu x quantitat de bytes. el mateix aquí. Al segon mini, reserveu x la quantitat de bytes que voleu enviar. La confusió és que els noms no importen. Només us ajuda a recordar si compartiu els noms. Així doncs, a l’esbós envio les 8 mesures de distància sonora en cm com sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4. El mestre només obté 8 bytes si hi ha dades i podeu trucar a aquests bytes com vulgueu. Els he llegit com gotR1, gotR2, got … L'ordre d'enviament de bytes és el mateix. Així doncs, els bytes A, B, C ….. no crec que si canvieu el nom us donaran dades diferents. I l’altra captura, només podeu rebre dades que s’enviïn. Per tant, si voleu altres dades, heu de canviar TANT el mestre com l’esclau.

Pas 6: COMUNICACIÓ

COMUNICACIÓ
COMUNICACIÓ

Podeu ometre-ho si sabeu configurar 2 Uno per parlar entre ells. Al final, tinc algunes novetats d’informació. Per facilitar-ho, anomenaré l’uno a la base del robot M1 i el sensor sonor com a S2. Connecteu Vcc, terra, A4, A5 entre si.

A l’esbós del S2 comença per #include

A continuació, creeu els 8 bytes per enviar. byte R1, byte R2, byte L1, etc. Uno és un micro de 8 bits, de manera que envien 1 byte a la vegada fent servir 'byte' en lloc de 'int' és correcte.

A "setup ()" afegeix "Wire.begin (adreça)", això indica a I2c quin dispositiu es tracta. L'adreça sol ser qualsevol número que vulgueu entre 4 i 200. la mida d'un byte. Aquí he fet servir el número 10. Així, per parlar amb aquest sensor S2, el mestre ha de trucar a Wire.requestFrom (10, 8). Aquesta és l'adreça 10 i el 8 és el nombre de bytes que es volien. També a 'setup ()' afegiu Wire.onRequest (isr anyName). Quan el M1 truca a la sol·licitud, el sensor S2 reacciona amb la interrupció. Això només crida la funció anyName. Per tant, cal crear aquesta funció anyName. Mireu l'esbós i vegeu la funció 'sendThis ()' Aquí és on realment s'envien els bytes al M1. Els bytes només van i NO els noms i l'ordre enviat. Aquí és on comença la mida i la quantitat de dades a enviar. En aquest format fàcil de bytes, l'enviament i la recepció haurien de coincidir. Aquí s’han enviat 8 bytes i 8 bytes rebuts. Una nota aquí és que trucar a una funció requereix (). Com delay (), millis (), Serial.print (). Quan s’utilitza una ISR (rutina de servei d’interrupció), la funció deixa caure el (). Per tant, Wire.onRequest (sendThis) no Wire.onRequest (sendThis ()).

La confusió que tenia era cosa mestre / esclau. Al principi vaig pensar que el mestre era SEMPRE el mestre. Però dins de l'esbós podeu canviar mestre / esclau per sol·licitar-lo a altres micros o enviar-lo a altres micros. Sempre que seguiu el format bàsic esbossat anteriorment. Recordeu … NOMÉS compartiu les dades assignades.

Dos bitllets fora de la paret. La interrupció ISR només s'interromp entre línies d'esbós. Si esteu bloquejat en un bucle "mentre o per", no passa res fins que no surt el bucle. NO hi ha cap problema, ja que poden ser uns quants microsegons i les dades són antigues.

L'altre problema és que "dins" d'un micro hi ha un càlcul 100% lliure d'errors. Qualsevol comunicació "exterior" (cables) està subjecta a errors. Hi ha moltes maneres de comprovar que les dades lliurades no contenen errors i coincideixen amb la font. La forma més senzilla és amb suma de verificació. Només cal afegir els totals dels bytes d’enviament (valors reals) i enviar-ne els totals i, a l’extrem receptor, afegir els totals i veure si coincideixen. Si coincideixen bé o llancen aquest conjunt de dades, si no ho fan. Per descomptat, això implica enviar un valor enter i no bytes. Per tant, només heu de dividir l’enter en el byte HI i el byte LO i enviar-lo com a bytes separats. A continuació, ajunteu al receptor.

FÀCIL:

int x = 5696; (qualsevol valor int vàlid, el màxim és 65k o 32k negatiu)

byte hi = x >> 8; (22)

byte lo = x; (64)

enviar els bytes i combinar en un altre extrem ….

byte hi = Wire.read ();

byte lo = Wire.read ();

int newx = (hi << 8) + lo; (5696)

Pas 7: TANCAMENT

TANCAMENT
TANCAMENT
TANCAMENT
TANCAMENT
TANCAMENT
TANCAMENT
TANCAMENT
TANCAMENT

Per tancar, aquest sensor sonor proporciona a la placa base dades brutes de distància en temps real. Això allibera el micro i fa que l’esbós sigui molt menys complicat. El micro ara pot prendre una bona decisió per frenar, girar, aturar o invertir basant-se en bones dades en lloc d’endevinalles aleatòries. Consulteu la meva altra publicació sobre Bluetooth IDE per penjar esbossos sense cables i haver de connectar el robot tot el temps només per fer un canvi ràpid al vostre esbós. Gràcies per veure-ho. oldmaninsc.

Recomanat: