ESP8266 开发环境搭建(二)NONOS

安信可 SDK 一体化开发环境(IDE1.5)+ESP8266 NONOS SDK V3.0

按官方指导文章搭建 https://blog.csdn.net/Boantong_/article/details/106229281

IDE

安信可 SDK 一体化开发环境(IDE1.5) 下载地址:https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B72

SDK

无操作系统开发(简称 NONOS SDK) https://gitee.com/xuhongv/ESP8266_NONOS_SDK

git clone https://gitee.com/xuhongv/ESP8266_NONOS_SDK

配置环境

手动删除SDK根目录下的driver_lib和 third_party这2个文件夹

import –>C/C++ ,选择 Existing Code as MakeFile Project 工程;
选择SDK文件夹路径;去掉对应的 C++ 勾勾;选择Cross Gcc分支;

编译的工程放在SDK路径下;在 Properties –> C/C++ Build –> Build directory 选择该工程;

编译

Properties –> C/C++ Build –> Build commandmake添加编译规则,例如:

COMPILE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=DIO SPI_SIZE_MAP=6

clean Project

Build Project

烧录

使用官方烧录工具,安信可出的 nodemcu 模块

ESP8266 开发环境搭建(一)RTOS

安信可 SDK 一体化开发环境(IDE1.5)+安信可 ESP8266 RTOS 3.0

按官方指导文章搭建 https://blog.csdn.net/Boantong_/article/details/106229281

IDE

安信可 SDK 一体化开发环境(IDE1.5) 下载地址:https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B72

SDK

AiThinkerProjectForESP ESP8266 RTOS 3.0 基于官方的RTOS master分支上有所修改,并增加了开发模板 https://gitee.com/xuhongv/AiThinkerProjectForESP

git clone --recursive https://gitee.com/xuhongv/AiThinkerProjectForESP.git

配置环境

import –>C/C++ ,选择 Existing Code as MakeFile Project 工程;
选择SDK文件夹路径;去掉对应的 C++ 勾勾;选择Cross Gcc分支;

在 Properties –> C/C++ Build –> Build directory 选择编译的工程路径,比如 examples\get-started\project_template 工程。

添加IDF环境变量:在 Properties –> C/C++ Build –> Environment 点击Add ,变量名字为 IDF_PATH ;路径为ESP8266_RTOS_SDK的目录。

编译

构建menuconfig菜单,选中项目名称,在右键菜单中选择 Make Targets –> Create;或者快捷键 Alt + F9 ;
在弹出的对话框中取消勾选Same as the target name 与 User builder settings 这2个选项,并且
在Build command 中输入:

mintty.exe -e make menuconfig

Make Targets –> Build 选择编译

Build Project

下载

Make Targets –> Create

命令是 make flash ,如果指定端口进行烧录下载固件比如 com12 的话,可以这样写:

make flash ESPPORT=COM12

Make Targets –> Build 选择下载

《智能硬件项目教程——基于ESP32》学习

全国青少年机器人技术等级考试五、六级指定教材

第1章 初识ESP32 11.09完成

第2章 数码管计时器 11.15完成

第3章 点阵动画 11.23完成

第4章 串行通信——UART 11.25完成

第5章 串行通信——I²C和SPI 11.26完成

第6章 WiFi联网和Web服务器 11.27完成

第7章 步进电机

第8章 蓝牙迷宫智能小车

器件实验:舵机

Arduino例程,环境: Arduino学习平台搭建配置方式(一)

Micro Servo 9g舵机 SG90

#include <Servo.h>
int potPin = A0;
int motorPin = 12;
int val;
Servo myServo;

void setup() {
  // put your setup code here, to run once:

  myServo.attach(motorPin);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  val = analogRead(potPin);
  val = map(val, 0, 1023, 180, 0);
  myServo.write(val);
  Serial.println(val);
  delay(20);
}

Grove 接口

pin1pin2pin3pin4
线色黄色白色红色黑色
Grove Digital 数字接口functionD0D1VCCGND
第一个数字输入第二个数字输入供电引脚 5V/3.3V
Grove Analog 模拟接口functionA0A1VCCGND
第一个模拟输入第二个模拟输入供电引脚 5V/3.3V
Grove UARTfunctionRXTXVCCGND
接收发送供电引脚 5V/3.3V
Grove I2CfunctionSCLSDAVCCGND
I2C时钟I2C数据供电引脚 5V/3.3V

Arduino实践:呼吸灯

Arduino例程,环境: Arduino学习平台搭建配置方式(一)

const int potPin = A0;
const int LEDpin = 10;
int potValue = 0;
int brightness = 0;
int fadeAmount = 5;
void setup() {
  // put your setup code here, to run once:
  pinMode(potPin, INPUT);
  pinMode(LEDpin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  potValue = analogRead(potPin);
  Serial.println(potValue);
  potValue = potValue / 10;
  //第一种呼吸灯
  //  for (int i = 0; i <= 200; i += fadeAmount) {
  //    analogWrite(LEDpin, i);
  //    delay(potValue);
  //  }
  //  for (int i = 200; i >= 0; i -= fadeAmount) {
  //    analogWrite(LEDpin, i);
  //    delay(potValue);
  //  }
  //第二种呼吸灯
  analogWrite(LEDpin, brightness);
  delay(potValue);
  brightness += fadeAmount;
  if (brightness >= 200 || brightness <= 0) {
    fadeAmount = -fadeAmount;
  }
}

Arduino实践:人行横道按键控制红绿灯

Arduino例程,环境: Arduino学习平台搭建配置方式(一)

//模拟路口按键控制人行横道红绿灯
int redLEDPin = 6;
int greenLEDPin = 9;
int redLED2Pin = 10;
int greenLED2Pin = 13;
int buzzerPin = 15;//外接无源蜂鸣器
int switchPin = 2;
int switchValue = 1;

void setup() {
  // put your setup code here, to run once:
  pinMode(redLEDPin, OUTPUT);
  pinMode(greenLEDPin, OUTPUT);
  pinMode(redLED2Pin, OUTPUT);
  pinMode(greenLED2Pin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(switchPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  switchValue = digitalRead(switchPin);
  //Serial.print("switchValue=");
  //Serial.println(switchValue);
  if (switchValue == LOW) {
    digitalWrite(greenLEDPin, HIGH);
    digitalWrite(redLEDPin, LOW);
    digitalWrite(redLED2Pin, HIGH);
    digitalWrite(greenLED2Pin, LOW);
  }
  else {
    //按下按键,主道红绿灯变黄变红,人行横道红绿灯变绿
    digitalWrite(greenLEDPin, HIGH);
    digitalWrite(redLEDPin, HIGH);
    delay(1000);
    digitalWrite(greenLEDPin, LOW);
    digitalWrite(redLED2Pin, LOW);
    digitalWrite(greenLED2Pin, HIGH);
    delay(5000);
    //人行横道红绿灯提示尽快通过
    for (int i = 0; i < 10; i++) {
      digitalWrite(greenLED2Pin, HIGH);
      alarm();
      digitalWrite(greenLED2Pin, LOW);
      alarm();
    }
  }
}
//蜂鸣器
void alarm() {
  for (int i = 0; i < 50; i++) {
    digitalWrite(buzzerPin, HIGH);
    delay(1);
    digitalWrite(buzzerPin, LOW);
    delay(1);
  }
}