Мазмуну:

Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control: 6 кадам
Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control: 6 кадам

Video: Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control: 6 кадам

Video: Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control: 6 кадам
Video: BTT SKR2 — TMC2209 UART с бездатчиковым возвратом в исходное положение 2024, Ноябрь
Anonim
Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control
Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control
Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control
Камтылган Universal Interface Board - USB/Bluetooth/WIFI Control

Мен көбүнчө жаңы камтылган модулдар үчүн китепканаларды түзмөктүн маалымат барагынын негизинде нөлдөн баштап түзөм. Китепкананы түзүүдө мен коддордун циклине кептелип калам, компиляция жасайм, программалайм жана тесттер иштешин камсыз кылат жана катасыз. Көбүнчө компиляция жана программалоо убактысы кодду түзөтүү убактысынан алда канча узак болушу мүмкүн жана иштеп чыгууда бул кадамдарды кесүү ыкмасы абдан ыңгайлуу болмок.

Ошондой эле, мен көбүнчө орнотулган модулду компьютер менен интерфейске салгым келет. Эгерде модулда атайын USB туташуусу жок болсо, анда көбүнчө ушундай болсо, анда көбүнчө SPI же жөн эле I2C сыяктуу бир жумушту аткара турган өтө кымбат USB конвертерин сатып алууга туура келет.

Дал ушул себептерден улам универсалдуу интерфейс тактасын түзүүнү чечтим. Бул орнотулган модулдар менен компьютерге негизделген оңой байланышууга мүмкүнчүлүк берүү үчүн иштелип чыккан.

Мен тактага орнотулган интерфейстин өзгөчөлүктөрү кирет.

  • Санариптик I/O
  • I2C
  • SPI
  • UART
  • PWM
  • Servo Motor
  • ADC киргизүү
  • DAC чыгаруу

Мунун баары толугу менен өз алдынча колдонулушу мүмкүн.

Интерфейс тактасын компьютерге USB туташуусу аркылуу көзөмөлдөсө болот, бирок тактаны алыстан же IoT сценарийинде колдонууга уруксат берүү үчүн кошумча WIFI же Bluetooth модулунун туташуулары бар.

Стандарттык 2.54мм SIL аталыштарын колдонуу менен, тактай менен камтылган модулдун ортосундагы аял дюпон кабелдерин тез, ишенимдүү жана ширетпей туташтырууга мүмкүндүк берет.

Мен ошондой эле CAN, LIN, H-bridge сыяктуу нерселерди кошуу жөнүндө ойлондум, бирок булар кийинчерээк v2 версиясы менен келиши мүмкүн.

1 -кадам: PCB долбоорлоо

PCB долбоорлоо
PCB долбоорлоо
PCB долбоорлоо
PCB долбоорлоо
PCB долбоорлоо
PCB долбоорлоо
PCB долбоорлоо
PCB долбоорлоо

ПКБны иштеп чыгууда мен нерселерди мүмкүн болушунча жөнөкөй сактоону жакшы көрөм. Кол менен такталарды кура турган болсоңуз, компоненттерди белгилүү бир максатты аткарганда гана кошуу жана микроконтроллердин мүмкүн болушунча ички мүмкүнчүлүктөрүн колдонуу маанилүү.

Тандалган электроника жеткирүүчүсүнө карап, мен издеп жүргөн өзгөчөлүктөргө ээ болгон ыңгайлуу болгон чипти таптым жана бул акылга сыярлык баа. Мен түшкөн чип PIC18F24K50 болчу.

Жеткиликтүү 23 I/O казыктары менен бул мага бул өзгөчөлүктөрдү берди

  • Digtal I/O
  • I2C
  • SPI
  • UART
  • PWM x 2
  • Серво мотору x 6
  • ADC киргизүү x 3
  • DAC чыгаруу x 1
  • I/O 5V же 3V3 менен шартталган
  • LED абалы

Мен тандаган ICдин бир кемчилиги - бул бир гана UART перифериялык түзүлүшү бар, ошондуктан Bluetooth же Wifi башкаруу ыкмасын колдонуу UART туташуусун колдонууну токтотот.

Жогорудагы сүрөттөрдө даяр схема жана ПХБ көрсөтүлгөн.

2 -кадам: Протоколду иштеп чыгуу

Протоколду иштеп чыгуу
Протоколду иштеп чыгуу

Протоколду иштеп чыгуунун биринчи кадамы, тактага эмне кылуу керек экенин чечүү болуп саналат. Бөлүшүү жакшыраак көзөмөл деңгээлин кошот, ал эми нерселерди чогуу чогултуу интерфейсти жөнөкөйлөтөт жана такта менен ЖКнын ортосундагы трафикти азайтат. Бул теңдештирүүчү оюн жана аны өркүндөтүү кыйын.

Тактанын ар бир функциясы үчүн сиз каалаган параметрлерди жана кайтарымдарды көрсөтүшүңүз керек. Мисалы, ADC кирүүсүн окуу функциясы кайсы киришти тандап алууну жана натыйжаны камтыган кайтарым маанини көрсөтө турган параметрге ээ болушу мүмкүн.

Менин дизайнымда бул жерде мен киргизгим келген функциялардын тизмеси:

  • Санариптик I/O

    • SetPin (PinNumber, штаты)
    • Мамлекет = GetPin (PinNumber)
  • SPI

    • Баштоо (SPI режими)
    • DataIn = Transfer (DataOut)
    • ControlChipSelect (Канал, Мамлекет)
    • SetPrescaler (Rate)
  • I2C

    • Баштоо ()
    • Баштоо ()
    • Кайра жүргүзүү ()
    • Токтоо ()
    • SlaveAck = Жөнөтүү (DataOut)
    • DataIn = Алуу (Акыркы)
  • UART

    • Баштоо ()
    • TX байт (DataOut)
    • BytesAvailable = RX саны ()
    • DataIn = RX байт ()
    • SetBaud (Baud)
  • PWM

    • Иштетүү (Канал)
    • Өчүрүү (Канал)
    • SetFrequency (Channel, Frequency)
    • GetMaxDuty (Милдет)
    • SetDuty (Милдет)
  • Servo

    • Иштетүү (Канал)
    • Өчүрүү (Канал)
    • SetPosition (Канал, Позиция)
  • ADC

    ADCsample = Үлгү (Канал)

  • DAC

    • Иштетүү
    • Өчүрүү
    • SetOutput (Voltage)
  • WIFI

    • SetSSID (SSID)
    • Сырсөз коюу (Сырсөз)
    • Статус = CheckConnectionStatus ()
    • IP = GetIPAddress ()

Параметрлер кашааларда көрсөтүлөт жана кайтаруулар барабар символдун алдында көрсөтүлөт.

Мен коддоону баштоодон мурун мен ар бир функцияга 128ден башталган командалык кодду (бинардык 0b10000000) жана жогору карай иштөөнү тапшырам. Мен протоколду толугу менен документтештирип, башым коддо болгондон кийин кайрыла турган жакшы документ бар экенин камсыз кылуу үчүн. Бул долбоордун толук протоколу документи тиркелет жана кирген буйрук коддорун жана бит туурасын камтыйт.

3 -кадам: Камтылган программаны иштеп чыгуу

Камтылган программаны иштеп чыгуу
Камтылган программаны иштеп чыгуу
Камтылган программаны иштеп чыгуу
Камтылган программаны иштеп чыгуу
Камтылган программаны иштеп чыгуу
Камтылган программаны иштеп чыгуу

Протокол түзүлгөндөн кийин, бул аппараттык функцияларды ишке ашыруу учуру.

Мен потенциалдуу буйрукту жана маалымат өткөрүмдүүлүгүн жогорулатуу үчүн кул системаларын иштеп чыгууда жөнөкөй мамлекеттик типтеги ыкманы кабыл алам, ал эми микрофонду түшүнүү жана мүчүлүштүктөрдү оңой сактоо. Башка туташкан түзмөктөр менен жакшыраак өз ара аракеттенүү керек болсо, анын ордуна Modbus сыяктуу өнүккөн системаны колдонсо болот, бирок бул нерселерди жайлатуучу кошумча чыгымдарды кошот.

Мамлекеттик машина үч абалдан турат:

1) буйруктарды күтүү

2) параметрлерди алуу

3) Жооп берүү

Үч мамлекет төмөнкүчө өз ара аракеттенишет:

1) Биз эң маанилүү битке ээ болгон байтка чейин буфердеги кирүүчү байттарды аралайбыз. Биз мындай байтты алган соң, аны белгилүү буйруктардын тизмеси менен текшеребиз. Эгерде биз дал келүүнү тапсак, анда биз протоколго дал келүү үчүн параметр байттардын санын жана кайтаруучу байттарды дайындайбыз. Эгерде эч кандай параметр байттары жок болсо, анда биз бул жердеги буйрукту аткара алабыз же 3 -абалга өтөбүз же 1 -абалды кайра баштайбыз. Эгерде параметр байттары бар болсо, анда биз 2 -абалга жылабыз.

2) Биз бардык параметрлерди сактаганга чейин аларды сактап жаткан кирүүчү байттарды аралайбыз. Бардык параметрлер бар болгондон кийин биз буйрукту аткарабыз. Эгерде кайтуу байттары бар болсо, анда биз 3 -этапка өтөбүз. Эгерде жөнөтүүчү байт жок болсо, анда биз 1 -этапка кайтабыз.

3) Биз кирген байттарды аралайбыз жана ар бир байт үчүн жарактуу кайтаруучу байт менен эхо байтты кайра жазабыз. Бардык кайтаруу байттарын жөнөткөндөн кийин, биз 1 -этапка кайтабыз.

Мен программалык камсыздоону иштеп чыгуу үчүн Flowcode колдондум, анткени ал эмне кылып жатканымды визуалдуу түрдө көрсөтөт. Ушул эле нерсени Arduino же башка камтылган программалоо тилдеринде да бирдей жасаса болот.

Биринчи кадам - ЖК менен байланыш түзүү. Бул үчүн микро туура ылдамдыкта иштеши үчүн конфигурацияланышы керек жана биз USB жана UART перифериялык түзүлүштөрүн айдай турган кодду кошушубуз керек. Flowcodeдо бул долбоорго Comms компоненти менюсунан USB Serial компоненти менен UART компонентин сүйрөө сыяктуу оңой.

Биз UART боюнча келген буйруктарды кармоо үчүн RX үзгүлтүгүн жана буферин кошобуз жана USBден дайыма сурамжылоо жүргүзөбүз. Биз бош убактыбызда буферди иштете алабыз.

Flowcode долбоору жана түзүлгөн C коду тиркелет.

4 -кадам: Flowcode аркылуу интерфейс

Flowcode аркылуу интерфейс
Flowcode аркылуу интерфейс
Flowcode аркылуу интерфейс
Flowcode аркылуу интерфейс
Flowcode аркылуу интерфейс
Flowcode аркылуу интерфейс

Flowcode симуляциясы абдан күчтүү жана такта менен сүйлөшүү үчүн компонент түзүүгө мүмкүндүк берет. Компонентти түзүүдө биз азыр компонентти долбоорубузга сүйрөп кирип, ошол замат доска функцияларын колдоно алабыз. Кошумча бонус катары, SPI, I2C же UART перифериялык түзүлүштөрү бар болгон бардык компоненттер симуляцияда колдонулушу мүмкүн жана комм маалыматтары Инжектор компоненти аркылуу интерфейс тактасына өткөрүлүшү мүмкүн. Тиркелген сүрөттөр дисплейге билдирүү басып чыгаруу үчүн жөнөкөй программаны көрсөтөт. Интерфейс тактасы аркылуу I2C Display, I2C Injector жана Interface Board компоненттери менен иш жүзүндөгү дисплей жабдыктарына жана компоненттерди орнотууга жөнөтүлгөн комм маалыматтары.

Flowcode 8.1 үчүн жаңы SCADA режими - бул абсолюттук кошумча бонус, анда биз Flowcode симуляторунда бир нерсе кылган программаны алып, аны экспорттой алабыз, ошондо ал эч кандай лицензиялык көйгөйсүз каалаган компьютерде жалгыз иштейт. Бул сыноо жабдуулары же сенсордук кластерлер сыяктуу долбоорлор үчүн сонун болушу мүмкүн.

Мен бул SCADA режимин SSIDди жана паролду конфигурациялоодо, ошондой эле модулдун IP дарегин чогултууда колдонула турган WIFI конфигурация куралын түзүү үчүн колдоном. Бул мага USB туташуусун орнотуп, анан нерселер иштеп баштаганда WIFI тармагына өткөрүүгө мүмкүнчүлүк берет.

Кээ бир долбоорлордун мисалдары тиркелет.

5 -кадам: Башка интерфейс ыкмалары

Flowcode сыяктуу эле, интерфейс тактасы менен баарлашуу үчүн сиз каалаган программалоо тилин колдонсоңуз болот. Биз Flowcode колдонгонбуз, анткени анын бөлүктөрүнүн китепканасы бар болчу, биз аны дароо ишке киргизе алмакпыз, бирок бул башка көптөгөн тилдерге да тиешелүү.

Бул жерде Interface тактасы менен байланышуу үчүн тилдердин жана методдордун тизмеси келтирилген.

Python - COM портуна же IP дарегине маалыматтарды берүү үчүн сериялык китепкананы колдонуу

Matlab - Маалыматты COM портуна же IP дарегине жеткирүү үчүн File командаларын колдонуу

C ++ / C# / VB - Алдын ала жазылган DLLди колдонуу менен, COM портуна же Windows TCP / IP API түз кирүү

Labview - Алдын ала жазылган DLL, VISA Serial компоненти же TCP/IP компонентин колдонуу

Эгерде кимде -ким жогорудагы тилдердин аткарылышын кааласа, анда мага кабарлаңыз.

6 -кадам: даяр продукт

Даяр Продукт
Даяр Продукт
Даяр Продукт
Даяр Продукт
Даяр Продукт
Даяр Продукт

Даяр продукт кийинки жылдарда менин камтылган шаймандар топтомумда көрүнүктүү өзгөчөлүк болуп калышы мүмкүн. Буга чейин ал мага ар кандай Grove дисплейлеринин жана сенсорлорунун компоненттерин иштеп чыгууга жардам берген. Мен азыр кодду кандайдыр бир компиляцияга же программалоо shenanigansка кайрылуудан мурун толугу менен кадап ала алам.

Мен дагы кесиптештериме иштөө процессин жакшыртуу үчүн кээ бир тактайчаларды тапшырдым, алар абдан жакшы кабыл алынды.

Менин көрсөтмөмдү окуганыңыз үчүн рахмат, мен сизге пайдалуу болду деп үмүттөнөм жана бул сиздин өндүрүмдүүлүгүңүздү тездетүү үчүн өзүңүздүн шаймандарыңызды түзүүгө дем берет деп үмүттөнөм.

Сунушталууда: