Мазмұны:

Кірістірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару: 6 қадам
Кірістірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару: 6 қадам

Бейне: Кірістірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару: 6 қадам

Бейне: Кірістірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару: 6 қадам
Бейне: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Қараша
Anonim
Кіріктірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару
Кіріктірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару
Кіріктірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару
Кіріктірілген әмбебап интерфейс тақтасы - USB/Bluetooth/WIFI басқару

Мен жиі құрылғы деректер кестесіне негізделген нөлден жаңа ендірілген модульдерге арналған кітапханалар құрамын. Кітапхананы құру кезінде мен кодтың циклінде қалып қоямын, компиляция жасаймын, бағдарламалаймын және тестілеуді қамтамасыз етемін, ол жұмыс істейді және қатесіз. Көбінесе компиляция мен бағдарламаның уақыты кодты өңдеу уақытынан әлдеқайда ұзағырақ болуы мүмкін, сондықтан бұл қадамдарды әзірлеу кезінде қысқарту өте ыңғайлы болады.

Мен сонымен қатар кіріктірілген модульді компьютермен байланыстырғым келеді. Егер модульде USB байланысы жоқ болса, ол жиі болады, онда әдетте SPI немесе жай I2C сияқты бір жұмысты орындайтын жоғары бағаланған USB түрлендіргішін сатып алу қажет.

Дәл осы себептерге байланысты мен әмбебап интерфейс тақтасын құруды шештім. Ол кіріктірілген модульдермен дербес компьютерге оңай байланыс орнатуға арналған.

Мен орнатқан тақтаның кіріктірілген интерфейс мүмкіндіктері кіреді.

  • Сандық енгізу -шығару
  • I2C
  • SPI
  • UART
  • PWM
  • Серво моторы
  • ADC енгізу
  • DAC шығысы

Мұның бәрін дербес қолдануға болады.

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

SIL стандартты 2.54 мм қадамдық колонкаларын қолдану арқылы аналық дупонды кабельдерді тақта мен ендірілген модуль арасында тікелей қосуға болады, бұл тез, сенімді және дәнекерсіз қосылуға мүмкіндік береді.

Мен сондай-ақ CAN, LIN, H-bridge және тағы басқаларды қосу туралы ойладым, бірақ олар кейінірек v2 нұсқасымен келуі мүмкін.

1 -қадам: ПХД жобалау

ПХД жобалау
ПХД жобалау
ПХД жобалау
ПХД жобалау
ПХД жобалау
ПХД жобалау
ПХД жобалау
ПХД жобалау

ПХД жобалау кезінде мен мүмкіндігінше қарапайым болғанды ұнатамын. Тақталарды өз қолыңызбен жасайтын болсаңыз, компоненттерді белгілі бір мақсатты орындағанда және микроконтроллердің мүмкіндігінше көп ішкі мүмкіндіктерін қолданғанда ғана қосу маңызды.

Мен таңдаған электрониканы жеткізушіге қарап, мен іздейтін ерекшеліктері бар және қолайлы бағадағы чипті таптым. Мен қондырған чип PIC18F24K50 болды.

Қол жетімді 23 енгізу -шығару түйреуіштерінің арқасында бұл мүмкіндіктер маған мүмкіндік берді

  • Дигтал енгізу/шығару
  • I2C
  • SPI
  • UART
  • PWM x 2
  • Серво қозғалтқышы x 6
  • ADC кірісі x 3
  • DAC шығысы x 1
  • Енгізу -шығару 5В немесе 3В3 кернеуінен қозғалады
  • Жарық диодты күй

Мен таңдаған IC -тің бір кемшілігі - бұл тек бір UART перифериялық құрылғысы бар, сондықтан Bluetooth немесе Wifi басқару әдісін қолдану UART қосылымын пайдалану мүмкіндігін тоқтатады.

Жоғарыдағы суреттерде дайын схема мен ПХД көрсетілген.

2 -қадам: Хаттаманы құрастыру

Хаттаманы жобалау
Хаттаманы жобалау

Хаттаманы құрастырудың бірінші қадамы - бұл сізге нақты не істеу керектігін шешу. Бөлшектеу бақылаудың жақсы деңгейін қосады, ал заттарды біріктіру интерфейсті жеңілдетеді және тақта мен компьютер арасындағы қатынасты азайтады. Бұл теңдестіру ойыны және оны жетілдіру қиын.

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

Менің дизайнымда мен қосқым келетін функциялардың тізімі:

  • Сандық енгізу -шығару

    • SetPin (PIN нөмірі, күй)
    • Мемлекет = 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 (Арна, Жиілік)
    • GetMaxDuty (Duty)
    • SetDuty (Duty)
  • Серво

    • Қосу (Арна)
    • Өшіру (Арна)
    • Орнату орны (арна, позиция)
  • ADC

    ADCsample = үлгі (арна)

  • DAC

    • Қосу
    • Өшіру
    • SetOutput (кернеу)
  • СЫМСЫЗ ДӘЛДIК

    • 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 сериялық компоненті мен 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 -ты қолдандық, өйткені оның құрамына кіруге болатын бөлімдердің кітапханасы болды, оны біз бірден іске қосуға болады, бірақ бұл басқа да көптеген тілдерге қатысты.

Мұнда Интерфейс тақтасымен байланысу тілдері мен әдістерінің тізімі берілген.

Python - COM портына немесе IP мекенжайына деректерді жіберу үшін сериялық кітапхананы пайдалану

Matlab - Деректерді COM портына немесе IP -адреске жіберу үшін Файл командаларын қолдану

C ++ / C# / VB - COM портына немесе Windows TCP / IP API -ге тікелей қатынасатын, алдын ала жазылған DLL көмегімен.

Зертханалық қарау - алдын ала жазылған DLL, VISA Serial компоненті немесе TCP/IP компоненті көмегімен

Егер кімде -кім жоғарыда аталған тілдердің енгізілгенін көргісі келсе, маған хабарлаңыз.

6 -қадам: Дайын өнім

Дайын өнім
Дайын өнім
Дайын өнім
Дайын өнім
Дайын өнім
Дайын өнім

Дайын өнім, менің ендірілген құралдар жинағымда алдағы жылдарда көрнекті ерекшелігі болады. Қазірдің өзінде бұл маған әртүрлі Grove дисплейлері мен сенсорларының компоненттерін жасауға көмектесті. Мен енді кодты кез -келген компиляцияға немесе бағдарламалауға жүгінбестен бұрын толық шегелеп ала аламын.

Мен тіпті әріптестеріме жұмыс тақтасын да жақсартуы үшін бірнеше тақталар таратып бердім, оларды өте жақсы қабылдады.

Менің нұсқаулықты оқығаныңыз үшін рахмет, сіз оны пайдалы деп таптыңыз деп үміттенемін және бұл сіздің өнімділігіңізді жеделдету үшін өз құралдарыңызды жасауға шабыттандырады деп үміттенемін.

Ұсынылған: