chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ART PI重力感應無線智能小車

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2021-01-20 09:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

雷德斯 and枕頭們,好久不見,大家是不是更優(yōu)秀了呢,哈哈,工作太忙啦,夜里肝一篇,大家久等啦,話不多說,來,干貨!

ART-PI-重力感應無線智能小車第二彈-----OneNet+板載wifi控制電機轉(zhuǎn)動此次分享主要用到的軟硬件資源:軟件(RT-Studio平臺): 1、OneNet軟件包; 2、OneNet服務(wù)器; 3、pahomqtt軟件包 4、webclient軟件包 硬件: 1、板載wifi模塊 2、ART-PI擴展板(自設(shè)計,開源) 3、L298N電機驅(qū)動 4、4個普通IO 實現(xiàn)目標:OneNet服務(wù)器下發(fā)控制電機正轉(zhuǎn)、反轉(zhuǎn)、停止。

一、L298N簡介

此次使用的是左邊封裝的15引腳封裝

05bc42ba-59b9-11eb-8b86-12bb97331649.png

L298N是專用驅(qū)動集成電路,屬于H橋集成電路,其持續(xù)輸出電流為2A,最高電流4A,最高工作電壓46V,可以驅(qū)動感性負載,如大功率直流電機,步進電機,電磁閥等,輸入端可以與單片機直接相連接,方便單片機控制。當驅(qū)動直流電機時,可以直接控制步進電機,并可以實現(xiàn)電機正轉(zhuǎn)與反轉(zhuǎn),實現(xiàn)此功能只需改變輸入端的邏輯電平。L298N芯片可以驅(qū)動兩個二相電機,也可以驅(qū)動一個四相電機,輸出電壓最高可達46V,可以直接通過電源來調(diào)節(jié)輸出電壓;可以直接用單片機的IO口提供控制信號。 內(nèi)部結(jié)構(gòu)框圖:有興趣的可以分析分析里面的控制邏輯,也比較簡單,不多說了。

05deb890-59b9-11eb-8b86-12bb97331649.png

引腳定義:

061b0552-59b9-11eb-8b86-12bb97331649.png

064224ca-59b9-11eb-8b86-12bb97331649.png

069843dc-59b9-11eb-8b86-12bb97331649.png

L298N可接受標準TTL邏輯電平信號VSS,VSS可接4.5~7V電壓。4腳VS接電源電壓,VS電壓范圍為VIH+2.5~46V。輸出電流可達2A,可驅(qū)動電感性負載。1腳和15腳下管的發(fā)射極分別單獨引出以便接入電流采樣電阻,形成電流傳感信號。L298可驅(qū)動2個電動機,OUT1,OUT2和OUT3,OUT4之間可分別接電動機。5,7,10,12腳接輸入控制電平,控制電機的正反轉(zhuǎn)。EnA,EnB接控制使能端,控制電機的停轉(zhuǎn)。此次設(shè)計我們驅(qū)動兩個直流電機,OUT1和OUT2控制1個,OUT3和OUT4控制1個。 以上介紹我們知道,通過5,7,10,12引腳可以控制電機的正轉(zhuǎn),反轉(zhuǎn),停止,那么怎么實現(xiàn)呢,下面是控制IO的真值表,拿其中一組作為演示,另一組一樣的邏輯,手冊中給出的是:

06b53500-59b9-11eb-8b86-12bb97331649.png

從手冊給出的說明來看,欲要電機驅(qū)動輸出,需要以下步驟來實現(xiàn):1、使能EnA,EnB引腳,可以直接接到單片機系統(tǒng)電源或者由單片機IO輸出高電平來控制; 2、Input1、Input2必須是相反的電平,即以下邏輯,至于前進還是后退,跟電機的接線有關(guān)系哈,大家可以自己測試調(diào)整。

輸入信號 電機運行方式
使能端A/B 輸入引腳1(5)/3(10) 輸入引腳2(7)/4(12)
1 1 0 前進
1 0 1 后退
1 1 1 緊急停車
1 0 0 緊急停車
0 X X 停止

二、電路設(shè)計

070553f0-59b9-11eb-8b86-12bb97331649.png

前半部分是光耦隔離芯片,用來抗干擾以及保護單片機IO,P8、P9是使能端,如果不接單片機IO控制,直接短路帽短接即可,P7是電機控制輸出端口。 與ART-PI的接口采用的是4個普通IO,伙伴們?nèi)羰琴I的L298N模塊,IO可以自選。

075b3efa-59b9-11eb-8b86-12bb97331649.png

電機:關(guān)于電機的介紹,大家可以移步到一位大佬的公眾號,介紹非常詳細啦,公眾號:嵌入式從0到1,大家可以多多關(guān)注,非常nice的一位號主。

組裝好的小車,用了2個輪子加一個萬向輪,剛好用一個L298N來驅(qū)動。

三、代碼控制實現(xiàn)

此前我們一直用的是ESP8266,現(xiàn)在我們改為使用板載的wifi模組,充分利用板載資源,沒有ART-PI板子的童鞋不要擔心,RT-Studio支持很多芯片的,大家可以使用手里現(xiàn)有的板子跟著做,一樣的,wifi部分可以使用小飛哥上個教程,使用esp8266或者其他方式,邏輯是一樣的啦。 1、新建工程,我們選擇如下的參數(shù),基于ART-PI開發(fā)板,當然沒有板子的伙伴可以選擇基于芯片,然后選擇示例工程,wifi工程,RT-Thread團隊已經(jīng)把AP6212部分做成庫封裝在RT-Studio平臺,建立好工程之后,setting里面可以看到關(guān)于AP6212的組件已經(jīng)勾選,main函數(shù)開始增加了2個函數(shù)調(diào)用,這兩個函數(shù)是用來上電自動初始化wifi部分,如果已經(jīng)連接了wifi,下次上電就會自動搜索完成連接。編譯完成之后,download進去,來看看初步效果:

0889c7b0-59b9-11eb-8b86-12bb97331649.png

08bfcfa4-59b9-11eb-8b86-12bb97331649.png

08fa909e-59b9-11eb-8b86-12bb97331649.png

092e72a6-59b9-11eb-8b86-12bb97331649.png

控制臺輸入wifi help,可以看到關(guān)于wifi的一些命令

輸入wifi scan,掃描附近區(qū)域wifi,接下來輸入wifi join SSID password,由于小飛哥的板子之前連接過別的wifi,一直在搜索,但并沒有找到,輸入新的wifi名稱。

096b668e-59b9-11eb-8b86-12bb97331649.png

09c27898-59b9-11eb-8b86-12bb97331649.png

Wifi連接成功,現(xiàn)在重啟設(shè)備,看看自動連接效果,可以發(fā)現(xiàn),是逐個進行掃描的,成功找到當前wifi并連接成功,開機自動連接效果測試OK。

0a08d626-59b9-11eb-8b86-12bb97331649.png

接下來是連接OneNet啦,熟悉小飛哥的應該知道怎么做啦,第一次看小飛哥文章的麻煩移步前面的文章看看呀,不懂的,加群一起交流,群里有很多志同道合的好伙伴。 下面在我們的工程里面添加L298N控制邏輯代碼,主要是對IO的控制,也是比較簡單的,根據(jù)上面介紹的控制邏輯,讓相應的IO輸出高低電平就可以啦,方向控制函數(shù)可以合成一個,小飛哥為了讓大家看的更簡單明了,分開寫了,要注意的是,方向控制跟你的L29N輸出接到電機的順序有關(guān),如果方向反了,修改代碼或者接線順序反一下就可以實現(xiàn)同樣的功能啦。有需要的伙伴,源碼都是開源的,可以跟小飛哥說一下,后續(xù)會上傳到github,大家可以自行下載。

IO初始化配置函數(shù):

#include

#include

#include"drv_common.h"

#include"motor_drv.h"

#defineMotorCtrl1Pin GET_PIN(B, 0)

#defineMotorCtrl2Pin GET_PIN(B, 2)

#defineMotorCtrl3Pin GET_PIN(B, 1)

#defineMotorCtrl4Pin GET_PIN(A, 11)

voidMotorCtrlPinInit()

{

rt_pin_mode(MotorCtrl1Pin, PIN_MODE_OUTPUT);

rt_pin_mode(MotorCtrl2Pin, PIN_MODE_OUTPUT);

rt_pin_mode(MotorCtrl3Pin, PIN_MODE_OUTPUT);

rt_pin_mode(MotorCtrl4Pin, PIN_MODE_OUTPUT);

rt_pin_write(MotorCtrl1Pin, PIN_LOW);

rt_pin_write(MotorCtrl2Pin, PIN_LOW);

rt_pin_write(MotorCtrl3Pin, PIN_LOW);

rt_pin_write(MotorCtrl4Pin, PIN_LOW);

}

前進:

voidMotorCtrlForward()

{

rt_pin_write(MotorCtrl1Pin, PIN_HIGH);

rt_pin_write(MotorCtrl2Pin, PIN_LOW);

rt_pin_write(MotorCtrl3Pin, PIN_HIGH);

rt_pin_write(MotorCtrl4Pin, PIN_LOW);

}

后退:

voidMotorCtrlBack()

{

rt_pin_write(MotorCtrl1Pin, PIN_LOW);

rt_pin_write(MotorCtrl2Pin, PIN_HIGH);

rt_pin_write(MotorCtrl3Pin, PIN_LOW);

rt_pin_write(MotorCtrl4Pin, PIN_HIGH);

}

右轉(zhuǎn):

voidMotorCtrlRight()

{

rt_pin_write(MotorCtrl1Pin, PIN_LOW);

rt_pin_write(MotorCtrl2Pin, PIN_HIGH);

rt_pin_write(MotorCtrl3Pin, PIN_HIGH);

rt_pin_write(MotorCtrl4Pin, PIN_LOW);

}

左轉(zhuǎn):

voidMotorCtrlLeft()

{

rt_pin_write(MotorCtrl1Pin, PIN_HIGH);

rt_pin_write(MotorCtrl2Pin, PIN_LOW);

rt_pin_write(MotorCtrl3Pin, PIN_LOW);

rt_pin_write(MotorCtrl4Pin, PIN_HIGH);

}

停止:

voidMotorCtrlStop()

{

/* rt_pin_mode(MotorCtrl1Pin, PIN_MODE_OUTPUT);

rt_pin_mode(MotorCtrl2Pin, PIN_MODE_OUTPUT);

rt_pin_mode(MotorCtrl3Pin, PIN_MODE_OUTPUT);

rt_pin_mode(MotorCtrl4Pin, PIN_MODE_OUTPUT);*/

rt_pin_write(MotorCtrl1Pin, PIN_LOW);

rt_pin_write(MotorCtrl2Pin, PIN_LOW);

rt_pin_write(MotorCtrl3Pin, PIN_LOW);

rt_pin_write(MotorCtrl4Pin, PIN_LOW);

}

接下來就是OneNet下發(fā)指令進行控制啦,這也是為后面的重力感應遙控做鋪墊,小飛哥在之前代碼基礎(chǔ)上做了一些修改,不需要再一條條發(fā)命令接入Onenet啦,上電就可以自動連接wifi,接入Onenet服務(wù)器啦,省了不少麻煩,哈哈,無需輸入一條命令,就可以連接到Onenet服務(wù)器了。

0a27bb0e-59b9-11eb-8b86-12bb97331649.png

設(shè)備已在線

0c5b0610-59b9-11eb-8b86-12bb97331649.png

然后在Onenet端做了一個無比丑陋的控制器。拿一個舉例子,電機ON是發(fā)送控制命令,OFF發(fā)送停止命令,相信到這里,之前做過Onenet控制控制板載LED的童鞋已經(jīng)知道怎么做啦,沒錯,LED控制函數(shù)中增加下車接收命令控制即可,完整函數(shù)內(nèi)容,占篇幅,可以直接跳過,主要是給大家拷貝方便點。

0cb34c8a-59b9-11eb-8b86-12bb97331649.png

/* onenetmqttcommand response callback function */

staticvoidonenet_cmd_rsp_cb(uint8_t*recv_data, size_trecv_size, uint8_t**resp_data, size_t*resp_size)

{

charres_buf[] = { "cmdis received! "};

LOG_D("recvdata is %.*s ", recv_size, recv_data);

if(!strncmp((char*)recv_data, "led0 on", 7)) //(strstr((char*)recv_data, "led0 on"))

{

rt_pin_write(LED_PIN, 0);

rt_snprintf(res_buf,sizeof(res_buf), "led0 is on");

rt_kprintf("led0 is on ");

}

elseif(!strncmp((char*)recv_data, "led0 off", 8))//(strstr((char*)recv_data, "led0 off"))

{

rt_pin_write(LED_PIN, 1);

rt_snprintf(res_buf,sizeof(res_buf), "led0 is off");

rt_kprintf("led0 is off ");

}

else

{

//rt_kprintf("ledcmdERROR! ");

}

if(!strncmp((char*)recv_data, "led1 on", 7))//(strstr((char*)recv_data, "led1 on"))

{

//rt_pin_write(LED1_PIN, 0);

rt_snprintf(res_buf,sizeof(res_buf), "led1 is on");

rt_kprintf("led1 is on ");

}

elseif(!strncmp((char*)recv_data, "led1 off", 8))//(strstr((char*)recv_data, "led1 off"))

{

//rt_pin_write(LED1_PIN, 1);

rt_snprintf(res_buf,sizeof(res_buf), "led1 is off");

rt_kprintf("led1 is off ");

}

else

{

//rt_kprintf("ledcmdERROR! ");

}

if(!strncmp((char*)recv_data, "forward", 7))//

{

MotorCtrlForward();

rt_kprintf("forward is on ");

}

elseif(!strncmp((char*)recv_data, "back", 4))//

{

MotorCtrlBack();

}

elseif(!strncmp((char*)recv_data, "turnright", 9))//

{

MotorCtrlRight();

}

elseif(!strncmp((char*)recv_data, "turnleft", 8))//

{

MotorCtrlLeft();

}

elseif(!strncmp((char*)recv_data, "stop", 4)){

MotorCtrlStop();

}

/* user have to mallocmemory for response data */

*resp_data = (uint8_t*) ONENET_MALLOC(strlen(res_buf));

strncpy((char*)*resp_data, res_buf,strlen(res_buf));

*resp_size =strlen(res_buf);

}

實現(xiàn)效果:

0d10a3a8-59b9-11eb-8b86-12bb97331649.png

原文標題:ART-PI-重力感應無線智能小車第二彈-----OneNet+板載wifi控制電機轉(zhuǎn)動

文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 集成電路
    +關(guān)注

    關(guān)注

    5441

    文章

    12339

    瀏覽量

    371501
  • 封裝
    +關(guān)注

    關(guān)注

    128

    文章

    9018

    瀏覽量

    147410
  • 智能車
    +關(guān)注

    關(guān)注

    21

    文章

    409

    瀏覽量

    78079

原文標題:ART-PI-重力感應無線智能小車第二彈-----OneNet+板載wifi控制電機轉(zhuǎn)動

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ART-Pi中啟用外部flash是在哪里配置了qspi的引腳呢?

    。由于我是按照以芯片建立工程,并沒有使用ART-PI的工程。 2、我目前了解到在ART-PI工程中會有這個下載算法。 在這個鏈接文件要配置地址 3、于是我有個好奇的點是在工程中沒看到有QSPI的配置
    發(fā)表于 10-10 06:09

    ART-PI使用新的env工具已經(jīng)無法編譯SDK倉庫里的示例工程了,怎么解決?

    ART-PI 使用新的env工具已經(jīng)無法編譯SDK倉庫里的示例工程了 希望還是能維護一下,新的env已經(jīng)無法構(gòu)建出工程進行編譯了 使用scons —target=mdk5 直接報錯了 希望有方
    發(fā)表于 10-09 06:47

    art_pi_lrs007_lora_gw_driver示例工程無法創(chuàng)建怎么解決?

    art_pi_lrs007_lora_gw_driver示例工程無法創(chuàng)建 1.log
    發(fā)表于 09-25 06:57

    按照官方文檔在ART-PI上開啟PWM,但是串口輸出找不到設(shè)備,怎么解決?

    , tim_config.h里也仿照TIM13加入了有關(guān)TIM3的代碼, stm32h7xx_hal_msp.c里也打開了TIM3的使能, 最后按照官方文檔上的代碼,拷貝到ART-PI的模板例程里。但是不能發(fā)現(xiàn)TIM3的設(shè)備
    發(fā)表于 09-17 06:27

    如何在 ART-Pi 平臺使用 openocd 直接燒錄到外部 spi flash?

    ART-Pi 內(nèi)置的 128Kb flash太小了,我現(xiàn)在在 Linux openocd 燒錄程序,請問有沒有人成功使用 openocd 可以直接燒寫到外部 Quad spi flash 的?
    發(fā)表于 09-15 07:32

    ART-PI2串口DMA累計接收超過buf設(shè)置的大小后就不能再接收了為什么?

    使用ART-PI2板子串口1DMA接收數(shù)據(jù),buf的大小為64,只能累計接收64字節(jié),如果擴大到256字節(jié),也只能累計接受到256字節(jié)。數(shù)據(jù)及時讀取,緩沖區(qū)應該是沒有溢出的,應用程序移到F4的板子是正常,求解
    發(fā)表于 09-12 07:56

    ART-PI2的CherryUSB cdc_acm例程 在復位后需要好久才能出來COM口?

    第一次使用ART-PI2上的USB-HS接口。在ART-PI2上燒錄編譯的art_pi2_cherryusb_usbdev_cdc_acm工程,程序能夠正常運行: 但是在復位后,需要等待2分鐘
    發(fā)表于 09-12 07:01

    智能小車設(shè)計源碼和圖紙資料

    智能小車設(shè)計源碼和圖紙
    發(fā)表于 08-25 15:38 ?0次下載

    ART-PI H750-USB-MSC設(shè)備描述符異常的原因?怎么解決?

    主控:STM32H750XBH6- ART-Pi 開發(fā)環(huán)境:CubeMX+MDK V5.27問題背景:當前已經(jīng)調(diào)試通SD卡+Fatfs文件系統(tǒng),(通過主控來模擬讀卡器)使用單根USB-C線纜連接至
    發(fā)表于 06-19 06:52

    感應電機智能調(diào)速

    原理,感應電機的MATLAB?/Simulink 建模和仿真,智能控制 MATLAB?/Simulink仿真基礎(chǔ),感應電機的專家系統(tǒng)控制,混合模糊/PI兩段控制方法,基于人工神經(jīng)網(wǎng)絡(luò)(
    發(fā)表于 05-28 15:53

    藍牙無線遙控小車

    藍牙無線遙控小車? ?各種無線遙控都有各自的優(yōu)缺點和用途,我們稍做對比:1.紅外遙控,需要固定方向,不能有物體遮擋,遙控距離一般在8米以內(nèi),性能穩(wěn)定;2.315M/433M無線遙控,方
    發(fā)表于 04-19 17:08 ?3次下載

    ART-PI2使用vscode cortex-debug插件進行外部flash燒錄調(diào)試

    一、前言最近,RT-Thread發(fā)布了一款名為ART-PI2的新開發(fā)板,搭載了STM32H7RS微控制器。好久沒接觸STM32的東西了,借此機會也了解ST的新產(chǎn)品。STM32H7RS的一大特點是其內(nèi)
    的頭像 發(fā)表于 02-24 19:19 ?2309次閱讀
    <b class='flag-5'>ART-PI</b>2使用vscode cortex-debug插件進行外部flash燒錄調(diào)試

    RT-Thread ART-Pi二代正式發(fā)布

    自2020年首次亮相以來,ART-Pi一代憑借其強悍的性能、豐富的資源以及極簡的開發(fā)體驗,迅速贏得了嵌入式工程師們的廣泛贊譽,被譽為“開發(fā)利器”。隨著市場對高性能嵌入式開發(fā)板需求的不斷增長,以及技術(shù)
    的頭像 發(fā)表于 02-18 14:31 ?973次閱讀

    RT-Thread全新發(fā)布ART-Pi二代,攜手ST H7R芯片!

    ART-Pi一代于2020年首次推出,憑借強悍性能、豐富資源與極簡開發(fā)體驗,迅速成為嵌入式工程師的“開發(fā)利器”。為滿足不斷增長的市場需求和技術(shù)挑戰(zhàn),基于STM32H7R的ART-Pi二代迭代啟航
    的頭像 發(fā)表于 02-17 18:37 ?1318次閱讀
    RT-Thread全新發(fā)布<b class='flag-5'>ART-Pi</b>二代,攜手ST H7R芯片!

    紅外感應智能照明中的具體應用

    一款國產(chǎn)A/D型具有增強型1T8051內(nèi)核8位高性能Flash的接近感應單片機XD08M3232,因其性能優(yōu)越而受到用戶的青睞。在智能照明系統(tǒng)中,XD08M3232紅外感應單片機可以發(fā)揮重要作用
    發(fā)表于 12-12 18:21