Мазмуну:
- Жабдуулар
- 1 -кадам: Spektrum телеметрия протоколун үйрөнүңүз
- 2 -кадам: Аппараттыкты тандоо
- 3 -кадам: Программаны жазыңыз
- 4 -кадам: Райондук зым
- 5 -кадам: Жүктөгүчсүз компиляция
- 6-кадам: Flash MCU J-Link менен
- 7 -кадам: Тышкы кристаллсыз кайра компиляциялоо
Video: RC Plane Altimeter (Spektrum телеметриясы менен шайкеш): 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Мен бул бийиктикти учкуч АКШдагы RC учактарынын 400 фут чегинде экенин билиши үчүн жасадым. Досум тынчсызданып жатты, анткени ал дайыма 400 футтан төмөн экенин так айта алган жок жана телеметрикалык маалыматтары бар сенсор камсыздай тургандыгын кошумчалады. Ооба, сен Spektrumдан сенсор сатып алсаң болот, бирок бул проекти 20 долларга арзан баада (мурунтан эле баасы көтөрүлүп кеткен) кура аласың. Эгерде сизде J-link программисти бар болсо, сиз муну бир нече долларга ыңгайлаштырылган тактага кура аласыз. Xbus протоколун түшүнгөнүңүздөн кийин, башка колдоого алынган сенсорлорду жасай аласыз! Бирок мен бул долбоордо жөн эле бийиктикти жабам …
Бөлүктөрдүн тизмеси:
-
Мен бул долбоор үчүн Seeeduino XIAO микроконтроллер тактасын колдондум, анткени ал кичинекей, бул долбоор үчүн көп күчкө ээ болгон M0 процессорун колдонот, I2C жана SPI экөө тең кутудан чыгууга даяр жана 3.3v логикасын колдонот, андыктан деңгээл өзгөрбөйт талап кылынат.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Аба басымын сезүү үчүн мен Adafruitтен BMP388 сындыруучу тактасын сатып алдым. Такта I2C жана SPI экиге бөлүнгөн жана 3.3v же 5v логикасында иштей алат.
https://www.adafruit.com/product/3966
- Районду зым менен камсыздоо үчүн протобер
- Лак/темир
- Эркек/ургаачы пин баштары, ошондуктан мен сенсорду/микроконтроллерди оңой ажырата алам.
- Кичинекей баскыч. Мен муну баштапкы бийиктикти баштапкы абалга келтирүү үчүн колдоном.
- Баскычты түшүрүү үчүн 10k каршылык.
- Spektrum алуучунун телеметрикалык портуна туташтыруу үчүн JST-XH 4 pin аял коннектору
-
SEGGER J-Link EDU программисти жүктөгүчсүз M0 жаркылдайт.
https://www.adafruit.com/product/3571
-
Adafruit SWD 10-пин туташтыруу тактасы
www.adafruit.com/product/2743
Жабдуулар
- Мен дагы 3D бийиктигим үчүн кичинекей корпусту басып чыгардым, бирок бул кереги жок.
-
Осциллограф- Эгерде сизде жок болсо, мен муну сунуштайм:
https://store.digilentinc.com/analog-discovery-2-1…
1 -кадам: Spektrum телеметрия протоколун үйрөнүңүз
Бул көбүнчө мен үчүн Раймонд Доминго тарабынан жасалган. Алар буга чейин Spektrum менен шайкеш келген бийиктикти түзүшкөн, андыктан бул кодду ээрчүү чындап жардам берди. Калган боштуктарды Spektrum телеметриясынын маалыматы толтурат. Кабыл алгычтан маалыматтын деңгээлин өлчөө мен 3.3v логикасына муктаж экенимди көрсөттү.
Алуучу түзмөктүн дарегин жөнөтөт, андан кийин 16 байттык жоопту күтөт. Маалыматтар барагы ар кандай сенсорлордун түзүлүшүн көрсөтөт. Структура 16 байт болбосо дагы, алуучу ар бир жолу 16 байтты кайра күтөт.
Spektrum маалымат жадыбалы:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Раймонд Домингонун долбоору:
www.aerobtec.com/download/altisSpektrumInte…
2 -кадам: Аппараттыкты тандоо
Мен басым сезүү үчүн Adafruitтен BMP388 сындыруучу тактасын колдондум. Breakout I2C жана SPI үзүлүштөрүн камсыз кылат жана 3.3v же 5v логикасында иштейт. Adafruit ар дайым алардын сынык такталары менен укмуштуудай жумуш аткарат, ошондуктан мен аны сатып алдым. Мен DFRobot Gravity BMP388 тактасын колдондум, анткени менин Adafruit тактайым колдонулуп жүргөн.
Кабыл алуучу I2C түзмөгү 3.3v логикасын колдонорун эске алып, мага 3.3v микроконтроллери керек болчу, мен анын кичинекей болушун кааладым. Мен Adafruit Trinket M0 колдонгон болчумун, бирок алар салыштырмалуу кымбат жана анча көп казыктары жок. Андан кийин Seeeduino XIAO тактасын таптым. Бул USB-C туташтыргычы бар I2C жана SPI экөө тең даяр болгон M0 такта. Ошондой эле, бул чындыгында кичинекей! Жалпысынан мага бул такта абдан жагат (жай башталган кристалл мени түшүнүүгө түбөлүккө созулганына карабай).
Spektrum, биз таптай турган "Xbus" портунун ресивериндеги JST-XH өлчөмүндөгү 4 пиндүү эркек коннекторун колдонот. Мен бийиктикке 4-пин JST-XH ургаачы сайгычын колдондум жана ал эң сонун иштеди.
3 -кадам: Программаны жазыңыз
Мен бардык кодду жазуу үчүн Arduino IDE колдондум. Мен Spektrum телеметрия протоколун алардын маалымат барагынан көчүрүп, Arduino китепканама коштум. Adafruitте ар дайым жакшы китепканалар болгондуктан, мен алардын BMP3XX китепканасын BMP388 сенсоруна колдондум.
Менин дизайнымдан алынган негизги нерселер:
- I2Cди кардар түзмөгү катары алып жүрүү жана Spektrum altimeter дарегине (0x12) жооп берүү үчүн орнотуңуз.
- BMP388 барометрин SPI аркылуу окуңуз.
- Бийиктиктин маалыматын эки башка буферде сактаңыз, андыктан ресиверден I2C сурамы маалыматтарды бузбашы үчүн жана маалыматтарды алып жатканда эки буфердин ортосунда алмашуу. Бул алуучуга жөнөтүлгөн маалыматтын дайыма толук болушун камсыз кылат.
- Альтиметрди нөлгө салуу үчүн баскычты колдонот.
Көбүрөөк маалымат жана код анализи үчүн видеону көрүңүз.
4 -кадам: Райондук зым
Мен протоборд колдондум, бирок эгер сиз атайын фрезерленген тактаны иштеп чыгууга убакыт бөлгүңүз келсе, анда схеманы бир топ таза кыла аласыз.
Мен JST-XH коннекторун XIAOнун I2C казыктарына туташтырдым. Алуучу телеметрикалык автобуска 5 вольтту чыгаргандыктан, автобустун позитиви XIAOнун VCC пинине түштү. Ошентип, борттогу 3.3v жөндөгүч BMP388 сенсорун иштетүү үчүн колдонулат.
5 -кадам: Жүктөгүчсүз компиляция
-
Board.txt файлыңызды табыңыз (сиз колдонгон такта үчүн).
Менин учурда, ал бул жерде болгон: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / board.txt
-
Тактаңызды көчүрүңүз жана жүктөгүч жок версиясын көрсөтүү үчүн биринчи ачкычтын атын өзгөртүңүз. Мен жөн эле баштапкы атка _nbl коштум.
- Эски: seeed_XIAO_m0
- Жаңы: seeed_XIAO_m0_nbl
-
. Name маанисин өзгөртүү:
- Эски: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Жаңы: seeed_XIAO_m0_nbl.name = Seeeduino XIAO жүктөгүч жок
-
Шилтеменин жүктөөчүсү жок жаркылдатып, куруучу ld скриптин өзгөртүү менен:
- Эски: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- Жаңы: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
- Arduino IDEди өчүрүп күйгүзүңүз.
- Такталар менюсунан жаңы "Seeeduino XIAO No Bootloader" тактасын тандаңыз.
- "Түзүлгөн экилик файлды экспорттоону" тандаңыз
- Түзүлгөндөн кийин.bin файлы Arduino долбооруңуздун папкасында болот.
6-кадам: Flash MCU J-Link менен
Adafruit M0/M4 түзмөгүндө жүктөгүчтү кайра программалоо боюнча фантастикалык колдонмого ээ. Биздин учурда, биз жүктөгүчтөн кутулууну каалайбыз, бирок ал дагы ушундай иштейт.
learn.adafruit.com/how-to-program-samd-boo…
Муну кылгандан кийин, USB аркылуу кодду жүктөй албай каласыз. Сиз жүктөгүчтү кайра USB аркылуу кодду жүктөө үчүн фабрикадан кайра жүктөп алуу үчүн жогорудагы көрсөтмөнү аткарсаңыз болот.
Adafruit колдонмосу абдан кылдат, бирок бул негизги кадамдар:
-
XIAO тактайынын арт жагындагы Solder jumper зымдары.
- Adafruit жол көрсөткүчү 2x5 сынык тактасындагы RST пини Adafruit такталарындагы баштапкы абалга келтирүүчү пинге туташтырылышы керек деп айткан эмес. Бирок XIAO үчүн мен тактанын артындагы төрт подкладка туташуум керек болчу.
- VREF пин XIAO 3.3v төөнөгүчкө туташтырылышы керек. Бул мүчүлүштүктөрдү оңдоочуга түзмөктүн логикасы 3.3v экенин айтат. Ансыз, эгер сиз туура эмес жолду тандасаңыз, микроконтроллерди бузуп алышыңыз мүмкүн.
- J-Linkке секирүүчү зымдарды туташтырыңыз.
- USB кабели менен XIAO тактасын күйгүзүңүз.
- Atmel студиясын ачуу.
- Аспаптар Программасын тандоо
- M0 тактаңызды тандаңыз. Бул учурда, ATSAMD21G18A
- SWD тандаңыз.
- Максаттан конфигурацияны окуңуз.
- Эгерде сиз EDU J-Link колдонуп жатсаңыз, колдонуу шарттарына макул болуңуз (эгер сиз колдонуу шарттарына баш ийип жатсаңыз).
- Жогорку оң бурчта чыңалуудагы окуу туура экенин текшериңиз. Эгерде ал 3.3v болбосо, тактаңызды сындырып алышыңыз мүмкүн!
- Жүктөө коргоочу сактандыргычты тазалаңыз (жүктөгүчтүн өлчөмүн 0 байтка коюңуз), анан программаны тандаңыз.
- Эстутум бөлүмүндө,.bin же.hex файлыңызды түзүңүз жана программаны тандаңыз.
Кыйынчылыктарды чечүү:
Түзмөктүн конфигурациясын окуп жатканда, эгер сиз чыңалуудан ката кетсеңиз, анда MCU электр кубатына туташтырылганын жана J-Link VREF пин 3.3 вольтко туташканын текшериңиз
7 -кадам: Тышкы кристаллсыз кайра компиляциялоо
XIAO тактасы баштоо үчүн көп убакытты талап кылган тышкы кристаллга ээ. Spektrum алгычы телеметрикалык автобуста 350 миллисекунддан кийин түзмөктүн ачылышын жасайт, андыктан компиляторго ички осцилляторду колдонууну айтуубуз керек, бул стартты дээрлик заматта кылат.
- Сиз мурда өзгөрткөн board.txt файлын табыңыз (ооба, мен сизди бул кадамды эртерээк сактап калмакмын, бирок бул мен үчүн үйрөнүү процесси болчу)
- Seeed_XIAO_m0_nbl.build.extra_flags сабына "-DCRYSTALLESS" кошуңуз. Бул компиляторго ички осцилляторду колдонууну айтат.
- Кодду кайра түзүңүз.
- MCUду кайра күйгүзүңүз.
- Иштөө убактысы осциллограф аркылуу жетишерлик тез экендигин текшериңиз.
Сүрөттөн көрүнүп тургандай, сары канал 1 - энергия булагы. Көгүш канал 2 - микроконтроллердеги даяр пин. Күйгүзүлгөндөн кийин болжол менен 10 миллисекундтан кийин, экинчи канал микроконтроллер тарабынан жогору тартылат, бул анын орнотуу циклинде экенин көрсөтөт. Орнотуу бүткөндөн кийин, MCU негизги цикл башталганын көрсөтүп, пинти төмөн түшүрүү үчүн коддолгон. Орнотуу көрсөткөндөй, орнотуу 3 миллисекундка созулат. Жалпысынан микроконтроллер ишке кирүүгө даяр болгондон кийин 13 миллисекунд алат.
Сунушталууда:
Пир, 3D басылган ашкабак жана Troll Arduino менен шайкеш келген аудио пранкер/практикалык тамашалар тактасын колдонуп, Хэллоуинди коркутуучу машина .: 5 кадам
Пирди, 3D Басылган Ашкабакты жана Тролл Ардуино Аудио Пранкерин/Практикалык Тамашалар Кеңешин колдонгон Хэллоуин Коркутуучу Машинасы: EngineeringShock Electronicsтин Патрик Томас Митчелл тарабынан түзүлгөн жана жакында эле Kickstarterде каржыланган тролл тактасы. Мен сыйлыктарды бир нече жума эрте алдым, колдонуу боюнча кээ бир мисалдарды жазууга жана Arduino китепканасын курууга жардам берүү үчүн
DIY Arduino менен шайкеш келген клон: 21 кадам (сүрөттөр менен)
DIY Arduino менен шайкеш келген клон: Arduino-Жаратуучунун арсеналындагы эң сонун курал. Сиз өзүңүздү кура алышыңыз керек! Долбоордун алгачкы күндөрүндө, болжол менен 2005-жылы, дизайн тешик аркылуу бүт болгон жана байланыш RS232 сериялык кабели аркылуу болгон. Файлдар дагы эле
Ракета телеметриясы/Позицияны көзөмөлдөөчү: 7 кадам
Ракета телеметриясы/Позицияны көзөмөлдөөчү: Бул долбоор 9 DOF сенсордук модулунан SD картасына учуу маалыматын жазууга жана уюлдук тармактар аркылуу бир убакта серверге GPS жайгашуусун өткөрүүгө арналган. Бул система ракетаны табууга мүмкүндүк берет, эгер системанын конуу аймагы бейо
Арзан баалуу, Ардуино менен шайкеш чийме роботу: 15 кадам (сүрөттөр менен)
Арзан баалуу, Arduino менен шайкеш чийме роботу: Эскертүү: Менде бул роботтун жаңы версиясы бар, ал басылган платаны колдонот, курууга оңой жана IR тоскоолдуктарды аныктоого ээ! Муну http://bit.ly/OSTurtleI дарегинен караңыз, мен бул долбоорду ChickTech.org үчүн 10 сааттык семинар үчүн иштеп чыккам, анын максаты мен
UDuino: Ардуино менен шайкеш өнүгүү кеңеши: 7 кадам (сүрөттөр менен)
UDuino: Ардуино менен шайкеш өнүгүү кеңеши: Ардуино такталары прототиптөө үчүн эң сонун. Бирок алар бир эле учурда бир нече долбоорлорго ээ болгондо же чоңураак долбоор үчүн көптөгөн контролдоочу такталарга муктаж болгондо кымбатыраак болот. Кээ бир сонун, арзан альтернативалар бар (Boarduino, Freeduino), бирок