Taula de continguts:
- Subministraments
- Pas 1: apreneu el protocol de telemetría Spektrum
- Pas 2: seleccioneu maquinari
- Pas 3: escriviu programari
- Pas 4: connecteu el circuit
- Pas 5: Compileu sense un carregador d'arrencada
- Pas 6: Flash MCU amb J-Link
- Pas 7: torneu a compilar sense el cristall extern
Vídeo: Altímetre pla RC (compatible amb Spektrum Telemetry): 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Vaig fer aquest altímetre perquè el pilot pogués saber que es troben per sota del límit de 400 peus en avions RC als EUA. El meu amic estava preocupat, ja que no podia dir amb certesa que sempre tingués menys de 400 peus i volia la seguretat addicional que proporcionaria un sensor amb dades de telemetria. Sí, podeu comprar un sensor de Spektrum, però podeu construir aquest projecte per menys de 20 dòlars amb taules de sortida (que ja tenen un preu inflat). Si ja teniu el programador J-link, podeu construir-lo en una placa personalitzada per uns quants dòlars. Per no mencionar-ho un cop hàgiu entès el protocol Xbus, podeu fabricar qualsevol dels altres sensors compatibles. Però només cobriré un altímetre en aquest projecte …
Llista de peces:
-
He utilitzat una placa de microcontrolador Seeeduino XIAO per a aquest projecte, ja que és petita, utilitza un processador M0 que té molta potència per a aquest projecte, té tant I2C com SPI preparats per sortir de la caixa i fa servir una lògica de 3.3v, de manera que no hi ha cap canvi de nivell. obligatori.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Per a la detecció de la pressió de l’aire, vaig comprar un tauler de ruptura BMP388 a Adafruit. La placa té tant I2C com SPI, i pot funcionar amb una lògica de 3.3v o 5v.
https://www.adafruit.com/product/3966
- Protoboard per cablejar el circuit
- Soldador / soldador
- Capçaleres de pins masculí / femení perquè pugui separar fàcilment el sensor / microcontrolador.
- Botó petit. Ho faig servir per restablir l'altitud inicial.
- Resistència de 10 k per a un botó desplegable.
- Connector femella JST-XH de 4 pins per connectar-lo al port de telemetría del receptor Spektrum
-
Programador SEGGER J-Link EDU per fer flaixar el M0 sense un carregador d’arrencada.
https://www.adafruit.com/product/3571
-
Tauler de ruptura Adafruit SWD de 10 pins
www.adafruit.com/product/2743
Subministraments
- També vaig imprimir en 3D un petit recinte per al meu altímetre, però no cal.
-
Oscil·loscopi: si no en teniu, us el recomano:
https://store.digilentinc.com/analog-discovery-2-1…
Pas 1: apreneu el protocol de telemetría Spektrum
Això m’ho va fer sobretot Raymond Domingo. Ja havien fet un altímetre compatible amb Spektrum, de manera que seguir aquest codi font va ajudar molt. El full de dades de telemetria de Spektrum va omplir la resta de buits. Mesurar els nivells de dades del receptor va demostrar que necessitaria una lògica de 3,3 v.
El receptor envia l'adreça del dispositiu i, a continuació, espera una resposta de 16 bytes. El full de dades mostra les estructures de tots els diversos sensors. Fins i tot si l’estructura no té una longitud de 16 bytes, el receptor espera 16 bytes cada vegada.
Full de dades de Spektrum:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Projecte de Raymond Domingo:
www.aerobtec.com/download/altisSpektrumInte…
Pas 2: seleccioneu maquinari
Vaig utilitzar un tauler BMP388 d’Adafruit per a la detecció de pressió. El trencament proporciona brots I2C i SPI i funciona amb una lògica de 3,3v o 5v. Adafruit sempre fa un treball increïble amb els seus taulers, així que el vaig comprar. Vaig utilitzar una placa DFRobot Gravity BMP388 a la meva versió, ja que la meva placa Adafruit ja estava en ús.
Tenint en compte que el dispositiu host I2C utilitza una lògica de 3.3v, necessitava un microcontrolador de 3.3v i volia que fos petit. Anava a utilitzar un Adafruit Trinket M0, però són relativament cars i no tenen molts pins trencats. Després vaig trobar el tauler XIAO de Seeeduino. És una placa M0 amb I2C i SPI a punt, amb un connector USB-C. A més, és molt petit! En general, m'agrada molt aquest tauler (tot i que el cristal·lí d'inici lent em va portar a descobrir-ho per sempre).
Spektrum utilitza un connector macho de 4 pins de mida JST-XH al receptor per al port "Xbus" al qual tocarem. He utilitzat un endoll femella JST-XH de 4 pins a l’altímetre i ha funcionat perfectament.
Pas 3: escriviu programari
He utilitzat l'IDE Arduino per escriure tot el codi. Vaig copiar el protocol de telemetría Spektrum del seu full de dades i el vaig afegir a la meva biblioteca Arduino. Com que Adafruit sempre disposa de bones biblioteques per als seus brots, he utilitzat la seva biblioteca BMP3XX per al sensor BMP388.
Els principals endolls del meu disseny són:
- Configureu l’I2C perquè es comporti com un dispositiu client i respongui a l’adreça de l’altímetre Spektrum (0x12).
- Llegiu el baròmetre BMP388 mitjançant SPI.
- Deseu les dades d’altitud en dos memòries intermèdies diferents perquè una sol·licitud I2C del receptor no corrompi les dades i alterni entre les dues memòries intermèdies en obtenir les dades. Això assegura que les dades enviades al receptor sempre estiguin completes.
- Utilitza un botó per posar a zero l’altímetre.
Per obtenir més informació i anàlisi de codi, mireu el vídeo.
Pas 4: connecteu el circuit
He utilitzat protoboard, però si voleu dedicar-vos temps a dissenyar una placa fresada personalitzada, podeu fer que el circuit sigui molt més net.
Vaig connectar el connector JST-XH als pins I2C del XIAO. Com que el receptor emet 5 volts al bus de telemetría, el positiu del bus va ser al pin VCC del XIAO. D'aquesta manera, s'utilitza el regulador de 3.3v incorporat per alimentar el sensor BMP388.
Pas 5: Compileu sense un carregador d'arrencada
-
Cerqueu el fitxer boards.txt (per a qualsevol tauler que feu servir).
En el meu cas, es trobava aquí: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / boards.txt
-
Copieu el tauler i canvieu el nom de la primera clau per especificar una versió sense carregador d'arrencada. Acabo d'afegir _nbl al nom original.
- Antic: seeed_XIAO_m0
- Novetat: seeed_XIAO_m0_nbl
-
Canvieu el valor.name:
- Antic: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Novetat: seeed_XIAO_m0_nbl.name = Seeeduino XIAO sense carregador d'arrencada
-
Modifiqueu l’enllaçador perquè parpellegi sense el carregador d’arrencada canviant l’escriptori ld del constructor:
- Antic: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts / gcc / flash_with_bootloader.ld
- Novetat: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts / gcc / flash_with out _bootloader.ld
- Reinicieu l'IDE Arduino.
- Seleccioneu la nova placa "Seeeduino XIAO No Bootloader" al menú de taules.
- Seleccioneu "Exporta el binari compilat"
- Un cop compilat, el fitxer.bin estarà a la carpeta del projecte Arduino.
Pas 6: Flash MCU amb J-Link
Adafruit té una fantàstica guia per reprogramar un carregador d’arrencada en un dispositiu M0 / M4. En el nostre cas, volem desfer-nos del gestor d’arrencada, però funciona de la mateixa manera.
learn.adafruit.com/how-to-program-samd-boo…
Un cop ho feu, no podreu penjar codi mitjançant USB. Podeu seguir la guia anterior per tornar a arrencar el carregador d’arrencada al dispositiu per tornar a penjar codi per USB, tal com heu pogut fer des de fàbrica.
La guia d’Adafruit és molt exhaustiva, però aquests són els passos bàsics:
-
Els cables del pont de soldadura a la part posterior de la placa XIAO.
- La guia d'Adafruit no va dir que calia connectar el pin RST al tauler de sortida 2x5 al pin de restabliment de les taules Adafruit. Però per al XIAO, necessitava connectar-me als quatre coixinets de la part posterior del tauler.
- Cal connectar el pin VREF al pin XIAO 3.3v. Això indica al depurador que la lògica del dispositiu és de 3,3 v. Sense ella, si seleccioneu l’opció incorrecta, podríeu danyar el microcontrolador.
- Connecteu els cables del pont a la J-Link.
- Enceneu la placa XIAO amb un cable USB.
- Obriu Atmel Studio.
- Seleccioneu Eines Programació de dispositius
- Seleccioneu la vostra placa M0. En aquest cas, el ATSAMD21G18A
- Seleccioneu SWD.
- Llegiu la configuració des de la destinació.
- Si utilitzeu EDU J-Link, accepteu les condicions d'ús (si compliu les condicions d'ús).
- Verifiqueu que la lectura en tensió sigui correcta a l'extrem superior dret. Si no és de 3,3 v, podríeu trencar el tauler.
- Esborreu el fusible de protecció d'arrencada (configureu la mida del carregador d'arrencada a 0 bytes) i, a continuació, seleccioneu programa.
- A la secció de memòries, seleccioneu el fitxer compilat.bin o.hex i seleccioneu el programa.
Resolució de problemes:
Quan llegiu la configuració del dispositiu, si teniu un error de tensió fora del rang, assegureu-vos que la MCU està connectada a l'alimentació i que el pin VREF J-Link està connectat a 3,3 volts
Pas 7: torneu a compilar sense el cristall extern
La placa XIAO té un cristall extern que triga molt a iniciar-se. El receptor Spektrum fa un descobriment del dispositiu al bus de telemetria 350 mil·lisegons després de l’encesa, de manera que hem de dir al compilador que utilitzi l’oscil·lador intern, cosa que farà que l’arrencada sigui gairebé instantània.
- Cerqueu el fitxer boards.txt que heu modificat anteriorment (sí, podria haver-vos desat aquest pas abans, però aquest va ser un procés d'aprenentatge per a mi)
- Afegiu "-DCRYSTALLESS" a la cadena seeed_XIAO_m0_nbl.build.extra_flags. Això indicarà al compilador que utilitzi l'oscil·lador intern.
- Torneu a compilar el codi.
- Torneu a llampar la MCU.
- Verifiqueu que el temps d’inici sigui prou ràpid mitjançant un oscil·loscopi.
Com podeu veure a la imatge, el canal groc 1 és la font d'alimentació. El canal cian 2 és el pin llest del microcontrolador. Aproximadament 10 mil·lisegons després de l’engegada, el microcontrolador arrossega el canal dos per indicar que es troba al bucle de configuració. Un cop feta la configuració, la MCU es codifica per baixar el pin, indicant que s’inicia el bucle principal. L'abast mostra que la configuració triga uns 3 mil·lisegons. En general, el microcontrolador triga 13 mil·lisegons després de l’engegada per estar a punt.
Recomanat:
Active Music Party LED Lantern i altaveu Bluetooth amb brillantor en la foscor PLA: 7 passos (amb imatges)
Active Music Party LED Lantern i altaveu Bluetooth amb brillantor a la foscor PLA: Hola, i gràcies per sintonitzar el meu instructable. Cada any faig un projecte interessant amb el meu fill que ara té 14 anys. Hem construït un rellotge Quadcopter, Swimming Pace Clock (que també és instructiu), un banc de tancament CNC i Fidget Spinners.Wi
Clon compatible amb DIY Arduino: 21 passos (amb imatges)
Clon compatible amb DIY Arduino: l'Arduino és l'eina definitiva de l'arsenal del Maker. Hauríeu de ser capaços de construir els vostres! Als primers dies del projecte, vers el 2005, el disseny era de peces de forat i la comunicació es feia mitjançant un cable serial RS232. Els fitxers segueixen sent
PropVario, un variòmetre / altímetre de bricolatge amb sortida de veu per a avions RC: 7 passos (amb imatges)
PropVario, un variòmetre / altímetre de bricolatge amb sortida de veu per a avions RC: aquest instructable us mostrarà com construir un Vario econòmic, que pugui parlar de l’altitud i, per descomptat, enviar diversos tons quan canvieu l’alçada del vostre hidroavió. Algunes funcions: - veu i to - utilitzeu les vostres pròpies mostres (d'ona) al vostre
Robot de dibuix compatible amb Arduino de baix cost: 15 passos (amb imatges)
Robot de dibuix compatible amb Arduino de baix cost: Nota: Tinc una nova versió d’aquest robot que utilitza una placa de circuit imprès, és més fàcil de construir i té detecció d’obstacles IR. Mireu-ho a http://bit.ly/OSTurtle. Vaig dissenyar aquest projecte per a un taller de 10 hores per a ChickTech.org que té com a objectiu
Impressions 3D: captures conductores amb grafè PLA: 9 passos (amb imatges)
Impressions 3D: captures conductores amb grafè PLA: aquest documentable documenta el meu primer intent d'imprimir en 3D captures conductores a la tela. Volia imprimir en 3D una presa femenina que es connectés a una presa masculina normal de metall. El fitxer es va modelar a Fusion360 i es va imprimir en un Makerbot Rep2 i un Drem