用户工具

站点工具


ocrobot:alpha:8f328d-rf:main

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
ocrobot:alpha:8f328d-rf:main [2017/10/03 07:46] 弘毅ocrobot:alpha:8f328d-rf:main [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== ALPHA 8F328D-RF ======
 +ALPHA 8F328D-RF是一款低成本的无线物连控制器。
 +
 +===== 参数 =====
 +^  MCU  |  LGT8F328D  |
 +^  FLASH  |  32Kbytes  |
 +^  SRAM  |  2Kbytes  |
 +^  E2PROM  |  可配置为 0K/1K/2K/4K/8K(与FLASH共享)  |
 +^  PWM  |  6路  |
 +^  主频  |  16MHz  |
 +^  ADC  |  6通道12位  |
 +^  DAC  |  1通道8位  |
 +^  SPI  |  有  |
 +^  TWI(I2C)  |  有  |
 +^  GUID(全局设备号)  |  有  |
 +^  内部基准  |  1.25V/2.56V ±1%  |
 +<WRAP center round important 60%>
 +板卡版本需要选择0.0.12版本
 +</WRAP>
 +
 +=====参考图片=====
 +{{:ocrobot:alpha:8f328d-rf:rf侧面435.png?nolink|}}
 +{{:ocrobot:alpha:8f328d-rf:rf正面435.png?nolink|}}
 +
 +=====环境初始化=====
 +前往http://www.ocrobot.com/doku.php?id=zh:downloads 下载最新的测试版IDE
 +
 +打开IDE界面
 +
 +{{:ocrobot:alpha:8f328d-rf:ide01.png?nolink|}}
 +
 +选择板卡管理器
 +
 +{{:ocrobot:alpha:8f328d-rf:ide02.png?nolink|}}
 +
 +在管理器中选择 LGT的支持环境,点击安装
 +
 +{{:ocrobot:alpha:8f328d-rf:ide03.png?nolink|}}
 +
 +等待安装完成,进度条消失即可
 +
 +{{:ocrobot:alpha:8f328d-rf:ide04.png?nolink|}}
 +
 +选择 LGT8F328D 板卡即可
 +
 +{{:ocrobot:alpha:8f328d-rf:ide05.png?nolink|}}
 +
 +=====支持库的安装与例程=====
 +
 +支持库下载:{{:ocrobot:alpha:8f328d-rf:lt8900.zip|}}
 +
 +将此压缩包解压缩到IDE根目录的libraries目录下
 +
 +
 +随后取出两块主板,分别作为发信机和接收机进行通讯测试(自行做好标记)
 +
 +发信机程序如下:
 +
 +<code cpp>
 +/*
 + * 发信机
 + * 迷你强
 + * chenglei1234@gmail.com
 +   Copyright (C) 2016 迷你强增补
 + Copyright (C) 2015 Rob van der Vee"));rob.c.veer@gmail.com>
 +
 + This program is free software; you can redistribute it and/or
 + modify it under the terms of the GNU General Public License
 + version 2 as published by the Free Software Foundation.
 + */
 +
 +/* Connections:
 +
 + OCROBOT -> LT8910
 +
 + GND        GND
 + 3v3        VCC
 + 23         PKT
 + 21         CS
 + 24         RST
 + 11         MOSI
 + 12         MISO
 + 13         SCK
 +
 +*/
 +#include <SPI.h>
 +#include "LT8900.h"
 +/*无线射频SPI管脚定义,请勿更改*/
 +const uint8_t PIN_NRF_RST = 24;
 +const uint8_t PIN_NRF_CS = 21;
 +const uint8_t PIN_NRF_PKT = 23;
 +
 +
 +bool writer;
 +
 +LT8900 lt(PIN_NRF_CS, PIN_NRF_PKT, PIN_NRF_RST);
 +
 +void setup()
 +{
 +  // put your setup code here, to run once:
 +  Serial.begin(9600);
 +  Serial.println(F("\n\nLT8900 module sample, v0.1.\n\n"));
 + /*SPI 初始化*/
 +  SPI.begin();
 +  SPI.setBitOrder(MSBFIRST);
 +  SPI.setDataMode(SPI_MODE1);
 +  SPI.setClockDivider(SPI_CLOCK_DIV4);
 +  delay(500);
 +/*2.4G 射频初始化*/
 +  lt.begin();  //收发机初始化
 +  lt.setCurrentControl(15,15);  //配置发射功率(0为最大功率输出)
 +  lt.setDataRate(LT8900::LT8910_62KBPS);  //配置速率(LT8910_62KBPS,LT8910_125KBPS,LT8910_250KBPS,LT8900_1MBPS),速率越高,通讯距离会越短
 +  lt.setChannel(0x06);     //配置信道(0.5Mhz为一个间隔从2402Mhz起)
 +}
 +
 +void loop()
 +{
 +    delay(2000);  //发送时间间隔2秒
 +    uint8_t data[] = { 'h','e','l','l','o' };  //创建数据包数组
 +    lt.sendPacket(data, 5);  //将数据封包 并发送
 +    lt.whatsUp(Serial);   //显示调试信息到指定接口(实际使用时请注释掉)
 + }
 +
 +</code>
 +
 +
 +接收机部分代码
 +<code cpp>
 +/*
 + * 收信机
 + * 迷你强
 + * chenglei1234@gmail.com
 +   Copyright (C) 2016 迷你强增补
 + Copyright (C) 2015 Rob van der Vee"));rob.c.veer@gmail.com>
 +
 + This program is free software; you can redistribute it and/or
 + modify it under the terms of the GNU General Public License
 + version 2 as published by the Free Software Foundation.
 + */
 +
 +/* Connections:
 +
 + OCROBOT -> LT8910
 +
 + GND        GND
 + 3v3        VCC
 + 23         PKT
 + 21         CS
 + 24         RST
 + 11         MOSI
 + 12         MISO
 + 13         SCK
 +
 +*/
 +
 +#include <SPI.h>
 +#include "LT8900.h"
 +
 +const uint8_t PIN_NRF_RST = 24;
 +const uint8_t PIN_NRF_CS = 21;
 +const uint8_t PIN_NRF_PKT = 23;
 +
 +
 +LT8900 lt(PIN_NRF_CS, PIN_NRF_PKT, PIN_NRF_RST);
 +
 +void setup()
 +{
 +  // put your setup code here, to run once:
 +  Serial.begin(9600);
 +  Serial.println(F("\n\nLT8900 module sample, v0.1.\n\n"));
 +  /*SPI 初始化*/
 +  SPI.begin();
 +  SPI.setBitOrder(MSBFIRST);
 +  SPI.setDataMode(SPI_MODE1);
 +  SPI.setClockDivider(SPI_CLOCK_DIV4);
 +  delay(500);
 +  /*2.4G 射频初始化*/
 +  lt.begin();  //收发机初始化
 +  lt.setCurrentControl(15,15);  //配置发射功率(0为最大功率输出)
 +  lt.setDataRate(LT8900::LT8910_62KBPS);  //配置速率(LT8910_62KBPS,LT8910_125KBPS,LT8910_250KBPS,LT8900_1MBPS),速率越高,通讯距离会越短
 +  lt.setChannel(0x06);  //配置信道(500khz为一个间隔从2402Mhz起)
 +}
 +
 +void loop()
 +{
 +    if (lt.available())  //判断缓冲区是否有数据
 +    {
 +      uint8_t buf[32];  //创建收信缓冲区(32字节)
 +      int packetSize = lt.read(buf, 32);   //获取取信息长度,并且将数据存入缓冲区
 +      if (packetSize > 0)   //判断数据包是否正常,如果-1则CRC校验出错建议抛弃数据包
 +      { 
 +        Serial.println(F("Packet read OK"));
 +
 +        for(int i = 0; i < packetSize; i++)   //循环输出数组数据
 +        {
 +          Serial.print((char)buf[i]);
 +        }
 +        Serial.println();
 +      }
 +      else
 +      {
 +        Serial.println(F("CRC is ERROR"));
 +      }
 +      lt.startListening();   //切换到接收模式
 +    }
 +  }
 +</code>
 +
 +
 +
 +如上,此时,接收机应该能够正常接受并显示发信机发送的字符串hello,如果数据包在传输过程中受损,自动CRC校验功能会发现并且提示CRC错误
 +
 +=====下载=====
 +**原理图:**
 +
 +{{:ocrobot:alpha:8f328d-rf:alpha_8f328d-rf_r1.pdf|ALPHA 8F328D-RF.pdf}}