你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【我的ST:NUCLEO-F042K6】

[复制链接]
凡人就行 发布时间:2019-12-10 13:12
0 前言4 s. A  \% v* m% A8 Y
    从大学开始接触stm32以来,已经差不多有3年了。由于stm32入门相对简单,资料多,生态比较完善,再加上其芯片本身性能相对不错,功耗较低,成本也不算高(至少本科生拿来做些小作品成本并不高)。通过stm32做一些简单的小作品,参与一些竞赛,参与一些活动,也使得大学生活丰富了不少。包括2017电赛做滚球控制系统,还有大创做多足机器人,又或者是在开源飞控的基础上增加功能,或者单纯在OLED上播放个BadApple(/滑稽),都能体会到不少乐趣。相较于Ti、NXP等,在生态上,有标准库和HAL库支持使得st开发相对简单,加上CubeMx直接生成初始化代码,即使没接触过单片机也能较为容易的上手实现简单功能。micropython、MBED的支持也使stm32的受众面更加广阔,纵使优化可能并不是最好,或者说资源占用确实较大,但却让很多非专业人士也能按自己想法来实现功能。再有ST官方对开发人员的支持在国内也非常出色,不仅有专门的中文官网,资料齐全,使用较为普遍的型号也有官方的汉化手册。还有ST线下培训,线上活动,我也参与过一二,也感到非常友好。作为一名高校本科生,虽然能力较差,基础薄弱,但在ST的各类活动中并不会遭到歧视或者忽视,总之ST在生态上做的确实不错。& n  g/ m3 B( l
    下面放几张图片,都是用stm32做过的作品,有的是团队作品,有的是个人作品。! f9 I  s2 Z+ B9 y7 |9 d
IMG_20170831_163551.jpg IMG_20170901_195022.jpg IMG_20170901_200105.jpg

9 H( i: v4 r. h- X; e/ J
滚球控制系统
/ [6 O& X1 T6 n* K( g+ G$ a
正视图.jpg IMG_20171027_134831.jpg
9 \' Q+ \- q% x! V
六足机器人                                                    农业机器人大赛作品

! W: W2 P& ]% l6 K& |. k9 ~& j3 \% ?
校园卡智能门禁.jpg 图片4.png

1 g3 z7 r* B2 p/ p: o! D( B7 @5 R) b
校园卡门禁系统                                      电动车倾倒断电装置
4 u$ }: G8 v$ @8 G
信号发生器.jpg 信号发生器的输出.jpg

3 Z/ {& }" u, v" |
信号发生器
+ h/ S, Q6 J$ {$ s
VID_20180910_141727.mp4_20191210_130001.195.jpg
9 P7 O: R9 X; t( S/ w  w' `" l
BadApple
+ R/ A9 g! C4 Y$ O9 ?

. D( Z3 }( c( O然而今天我想介绍的并不是这些,而是最近利用空闲时间自己做的基于stm32f042的智能履带小车。# r0 j. `1 u3 i; K+ _! a" Q' M
/ ^; b+ m' h& I& h; U( F- P% s
1 开发板介绍
+ S: x- u8 ?" Y1 `& {  w9 e

6 j* u* y% I+ d! @  O" }7 L  y    这次用的开发板为st官方的NUCLEO32-F042,F042是一款基于M0内核的MCU,flash容量不算大,适合做一些简单的小作品。5 k7 N" ^+ h1 g  Z. q5 \+ z

8 u0 h5 Y5 Y( ~* Z9 @    之所以选用这块主板,其实主要是去年参加st活动赠送了一块,在手里有闲置的板子就总想玩玩。至于该板子详细介绍,直接参考官网即可,不在献丑搬运了,直接放链接:http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f042k6.html  J3 W( t( h. E( W1 f
    至于这款产品的优势,个人感觉功耗相较于M3内核是较低的,而且在一些小作品中需要核心板并无法提供较大空间来安放,而这款产品在如此小的体积下还自带着编程器,只需要一根mcro usb线即可调试。由于支持MBED平台,想做简单的验证直接在线编程即可,想做优化也可以直接用keil编程、下载。2 a3 v1 N& \2 N4 z( {
    这次在我的履带小车的项目中,我自己在keil中手动新建了HAL库的工程模板,具体步骤可以参考我的CSDN博客,如有错误的地方也非常欢迎大家来指正批判!, N' n5 X/ G, v. ?
http://blog.csdn.net/u011619535/article/details/801591881 J* V8 z: G9 O5 a4 v3 ~3 c
    另外还有一篇是关于visual studio + visual GDB来新建工程并同时移植了下1.44寸spi屏的文章/ P  l9 t- F1 a$ p0 }/ ^7 _
http://blog.csdn.net/u011619535/article/details/823552395 A/ e$ ^9 e! M1 g, c0 e

6 n. E" Y# W* _2 项目功能
! Q9 N$ ], K, W$ l& M6 {2 x
# `; G# D. Z# C8 D+ d8 m8 {    目前项目还在进行过程中,由于最近忙于课程设计暂时暂停了该芯片的开发而替换为FPGA,课程设计结束后继续stm32的开发。
! k, g! x3 \- S" a9 D" M) x    目前履带车实现的功能有:
2 e! k& f. R. E8 k; g8 @(1)PWM控制电机转速(驱动L298)! c* J& R! A; _4 A$ i. b4 [
(2)PWM输入捕获采集光栅编码器信号计算转速( b% b; E( g" g8 J/ Q) f" @; k! ~
(3)PID控制调节电机转速; l7 a. ?6 ^5 r: A0 r5 G
(4)UART+DMA实现数据传输(传输小车控制指令)" g. m. {6 `" S' e' K# p
(5)移植DMP实现了MPU9250初始化,调用功能函数时但由于flash不够暂时屏蔽掉了
* j. a! O; ~. M3 Z7 E: H(6)移植APDS-9930实现接近检测与环境光检测3 `: a/ F' ~* a1 O$ ?. i
(7)连接esp8266实现局域网内的tcp控制,esp8266通过串口与stm32进行连接3 g; ?( K8 _2 ~2 x0 u
; h+ c" c  G9 i3 `& D* ?7 r* V
    后期准备开发的功能:9 Q. K8 X, L. _9 o5 Y
(1)ADC采集,检测CO浓度& n/ Y+ `, h) t9 n& y# R; G
(2)DHT11采集温湿度信息2 D1 k# G3 ?: e3 d# [. u7 h
(3)蜂鸣器控制# _* _8 i5 M2 e1 a- O
(4)根据flash情况决定MPU9250和1.44寸TFT的开发,可能考虑将这两部分放到esp8266中
' T. i' w: Q+ h0 v3 X) i  z    另外,从网上随便找了个Qt的TCP源码,等小车功能完善之后再详细做下上位机,目前只是能控制下小车运动以及采集一下反馈的信息。
# f; q' c2 g4 P' ^+ @  d
$ y! ^2 D; N# g# z: Q. s* i2 |    由于小车并没有参与什么活动,所以算是给自己开了个坑随缘开发,而且毕业生各种事情,因此进度比较缓慢。
8 y; Y: N, a, K7 ]) F: i4 w) X2 f
3 引脚连接
% Y: V; U* \( E! W5 I+ Z    由于外设大部分采用标准设备,只有测速模块以及蜂鸣器电路是自己根据原理图焊接的,因此没有画原理图,直接放张连接图以及CubeMx的引脚配置信息。
) d- r  Q3 |/ B) d
IO配置.png
& x  D$ {( K) n. w- y1 y6 G
批注 2019-12-10 141753.png

$ b, [" c" E5 o6 p7 b- {; m. R
/ z5 I6 B4 v# c4 项目效果
7 m! {7 _7 @3 ]6 {
TIM截图20191210140143.jpg
+ h6 `: G* s/ f% C
IMG_20191210_135754.jpg

4 M+ f0 c* s- G& E
IMG_20191210_140009.jpg
' y3 X/ g$ c3 V& k9 _
& C  Z. z% `5 K. M; @. s
5 小车源码
; r) L8 W+ Q; m2 }4 F7 c    由于还在开发阶段,工程文件暂时不分享了。如果有感兴趣的欢迎大家支持我,若支持的人较多我会考虑将源码上传至GitHub。
, u- f5 `0 o0 U5 `) A6 B' E- d    在开发过程中在开发APDS-9930时发现资料较少,于是移植了arduino的源码。arduino是C++编程,因此我把C++相关的特性都改成C的版本。
: M/ F6 X7 O, t( v* i* S7 r$ z! NAPDS-9930 arduino的库源码可参考以下链接:- _( K9 ^, ?  u$ E" y
http://github.com/Depau/APDS9930
' Q0 Z, v) [" o* o$ Q0 [! F    移植采用了正点原子的软件IIC,移植后的APDS9930源码见附件。需要注意与自己的IIC要匹配。(附件不包括原子的IIC文件)6 n$ W) a8 ]# V" g1 `& }7 t- s; O
APDS9930_C.rar (5.77 KB, 下载次数: 1)
3 收藏 评论2 发布时间:2019-12-10 13:12

举报

2个回答
lujunzhou 回答时间:2019-12-10 20:14:34
强烈支持带佬
郝戈戈 回答时间:2019-12-16 16:50:22
图文并茂,内容有料的分享。支持一个:- n: G) A0 r( D" F) H
支持别人的截图2.png + d% ~( t3 H! O; p
2 z+ b9 ^/ p' `
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=622654&page=1#pid24744148 T9 W; p7 c' t+ p+ y

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版