mgyml 发表于 2014-4-14 19:09

以efm32tg842为核心的微型四轴飞行器研发笔记(欢迎探讨)

看着论坛里做的人那么多,很早就开始心动了。筹备了3-4个月。终于准备开干。基本工作已经准备完成。
目标:
先做四轴。后面有时间再做无人飞机。
挑战一下难度。做一个可以自己悬浮的四轴。这个也算是无人飞机的第一步吧。
总体框架:
1、MCU
EFM32 TG842 手上正好有他家的CHIP。和STM32一样,不过比STM32更稳定。价格也差不多。我拿到手的是样片,而且手头也有一块开发板,方便。
PIN脚计划:
9轴传感器 I2C
无线模块:2个GPIO+SPI
超声波:GPIO*2 预留5套超声波
电机速度控制,GPIO*4
PIN预留:
GPS UART
GPRS UART
2、大部分传感器和控制模块全用X宝上的。以后有机会要做集成再说。谁家买的我就不说了。X宝上多的是。
9轴: ADXL345+HMC5883L+ L3G4200D
无线:nRF24L01 代替方案:蓝牙 ATK-HC05-V11 是用无线还是用蓝牙还没考虑好。
超声波模块: X宝上一堆。
其它的要用再加。 GPS和GPRS是将来用来做无人飞机考虑的。

mgyml 发表于 2014-4-14 19:25

先上传核心芯片的资料,供大家参考。

mgyml 发表于 2014-4-14 19:28

EFM32中文介绍版本

elec921 发表于 2014-4-14 19:43

Silicon labs 的吧?

这个芯片并不是很流行。性能可能还可以。

sjlou1126 发表于 2014-4-14 19:44

elec921 发表于 2014-4-14 19:43 static/image/common/back.gif
Silicon labs 的吧?

这个芯片并不是很流行。性能可能还可以。

确实不是很流行。不过重在稳定。

mgyml 发表于 2014-4-14 19:47

这次用EFM32作为核心芯片,主要也是想看看是不是用这款芯片,能让四轴飞行器的兴能更稳定。

mgyml 发表于 2014-4-14 19:47

EFM32系列的工业应用范围还是比较广的。

mgyml 发表于 2014-4-16 14:12

这两天比较忙,过两天把画的原理图进行共享。PCB板的布局,打算先做一块综合版,将各个模块的功能调通,再优化PCB板。

zjjdxy 发表于 2014-4-16 14:57








沧海一笑 发表于 2014-4-16 15:42

哎吆,9楼顶的腰挺直的哈,..看我顶起.

顶顶
顶顶顶
顶顶顶顶
顶顶顶顶顶
顶顶顶顶顶顶
顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶
靠墙角顶是比较稳定...

erchowyo 发表于 2014-4-16 16:35

支持原创

贾文和 发表于 2014-4-16 16:41

我是来顶贴的
顶一个
赞一个

sjlou1126 发表于 2014-4-16 19:15

什么也不说了.先上一个串口通讯代码
#include <stdint.h>
#include <stdbool.h>
#include "efm32.h"
#include "em_chip.h"
#include "em_cmu.h"
#include "em_gpio.h"
#include "em_usart.h"

//读取数据中断
void USART1_RX_IRQHandler(void)
{
    if(USART_Rx(USART1) == 0x5)
    {
      GPIO_PinOutToggle(gpioPortD, 7); //如果接收到数据,反置PD7 在开发板STK3300上为LCD
    }
}

void UART_Initial(void)
{
    //初始化时钟
    CMU_ClockEnable(cmuClock_HFPER, true);
    CMU_ClockEnable(cmuClock_GPIO, true);
    CMU_ClockEnable(cmuClock_USART1, true);
   
    // 初始化 通讯参数
    USART_InitAsync_TypeDef UART_init = USART_INITASYNC_DEFAULT;
    UART_init.baudrate = 9600;
   
    USART_InitAsync(USART1, &UART_init);
   
    // 初始化中断
    USART1->IFC = _USART_IFC_MASK;
    NVIC_ClearPendingIRQ(USART1_RX_IRQn);
    NVIC_EnableIRQ(USART1_RX_IRQn);
    USART1->IEN = USART_IEN_RXDATAV;
   
    //设置PD0 为RX PD1为TX
    GPIO_PinModeSet(gpioPortD,0,gpioModePushPull,1); //tx
    GPIO_PinModeSet(gpioPortD,1,gpioModeInput,1);    //rx
   
    USART1->ROUTE |=USART_ROUTE_TXPEN | USART_ROUTE_RXPEN | USART_ROUTE_LOCATION_LOC1;
}

/**************************************************************************//**
* @briefMain function
*****************************************************************************/
/**************************************************************************//**
* @briefMain function
*****************************************************************************/
int main(void)
{
/* Chip errata */
CHIP_Init();

//设置时钟
SystemCoreClockUpdate();

UART_Initial();

CMU_ClockEnable(cmuClock_GPIO, true);
// 允许PD7GPIO输出
GPIO_PinModeSet(gpioPortD, 7, gpioModePushPull,0);

unsigned char ucData = 0;
/* Infinite blink loop */
while(1)
{
      unsigned long ulDelay = 100000; // 延时100MS
      while(ulDelay--);
      if(ucData < 10)ucData++;
      else ucData = 0;
      USART_Tx(USART1,ucData); // 输出ucData
}
}

sjlou1126 发表于 2014-4-17 09:36

因为 @mgyml 的板子芯片没到.最近一直在用开发板做测试
再上一个I2C调试ADXL345的DEMO
和昨天的UART打了个包.

mgyml 发表于 2014-4-18 00:12

硬件相关的开发软件,目前主要用到的是Protel DXP 2004,这个软件的有点大,网站里不太好上传,贴个网址,感兴趣的可以自己下载:http://www.pc6.com/softview/SoftView_51071.html

sjlou1126 发表于 2014-4-18 10:55

@che180 还没有可以飞...

qwert1213131 发表于 2014-4-19 10:00

:victory::lol:victory::P

sjlou1126 发表于 2014-4-20 09:16

昨天晚上4点,调试完蓝牙..就一个问题折腾了我很久.
因为是用开发板.开发板上只提供了一个USART和一个LEUSART(低功耗串口).
LEUSART的最高波特率只能到9600.我设置成35400.结果一直通讯不成功.
最后还是把LEUSART做为和计算机通讯,把USART做为和蓝牙模块通讯.总算完成了.

附带HC05蓝牙笔记:
主机就是能够搜索别人并主动建立连接的一方,从机则不能主动建立连接,只能等别人连接自己,
KEY OFF 可以发送数据KEY ON 可以发送AT指令(这里也折腾了一翻,发傻了.)
AT+NAME=Bluetooth-Slave蓝牙名称为Bluetooth-Slave
AT+ROLE=0                蓝牙模式为从模式
AT+CMODE=0               蓝牙连接模式为任意地址连接模式
AT+PSWD=1234             蓝牙配对密码为1234
AT+UART=38400,0,0       蓝牙通信串口波特率为9600,停止位1位,无校验位
AT+RMAAD               清空配对列表

hmf0302 发表于 2014-4-21 00:30

学习了

sjlou1126 发表于 2014-4-22 08:16

GPS模块搞定了.和蓝牙的传输方式一样.而且我没有配置参数.
不过一直没收到星.等天晴了,到室外试试.
页: [1] 2
查看完整版本: 以efm32tg842为核心的微型四轴飞行器研发笔记(欢迎探讨)