yilonglucky

个性签名:尽吾志也而不能至者,可以无悔矣。——王安石

  • 2024-12-04
  • 回复了主题帖: 【Follow me第二季第4期】任务2:PDM麦克风的学习

    请教下最后一个波形图是怎么打印的?  

  • 发表了日志: 【Follow me第二季第4期】Arduino Nano RP2040 Connect之UART总线

  • 发表了主题帖: 【Follow me第二季第4期】Arduino Nano RP2040 Connect之UART总线

    本期活动发放的开发板是Arduino Nano RP2040 Connect,这块主板上的主芯片是树莓派的RP2040。 RP2040是支持两路UART的。 Arduino Nano RP2040 Connect主板的pinout图中有标注一路TX、RX:   另外参考RP2040 GPIO功能图:   可知这一路硬件连线实际使用的是RP2040的UART0,但是在Arduino IDE中如果想使用这一路硬件的话,需要使用对应的代码对象Serial1。 Arduino Nano RP2040 Connect的USB是支持CDC类型,可以直接使用Arduino IDE的Serial来控制。 所以我猜测了两种UART的实现接口,不知道Arduino在封装时实际是哪一种: 硬件 Arduino IDE初始化代码 RP2040 UART控制器     JP3.1 Serial1.begin(115200); UART0 TX GPIO0 JP3.2 RX GPIO1 USB CDC Serial.begin(115200); UART1 TX endpoint RX endpoint 或者 硬件 Arduino IDE初始化代码 RP2040 UART控制器     JP3.1 Serial1.begin(115200); UART0 TX GPIO0 JP3.2 RX GPIO1 USB CDC Serial.begin(115200); ? TX endpoint RX endpoint ? ? UART1 TX ? ? RX ? 我在任务一种同时使用了USB和杜邦线连接的UART,实际demo可参考【Follow me第二季第4期】任务一 Blink三色LED / 串口打印 - DigiKey得捷技术专区 - 电子工程世界-论坛   疑问:实际还可以从硬件引脚引出UART1吗?  

  • 发表了主题帖: 【Follow me第二季第4期】Arduino RP2040之i2c总线附i2c_scanner

    本帖最后由 yilonglucky 于 2024-12-4 15:43 编辑 本期活动发放的开发板是Arduino Nano RP2040 Connect,这块主板上的主芯片是树莓派的RP2040。 RP2040是有两个独立的i2c控制器的。 而Arduino Nano是将i2c0复用到GPIO16和GPIO17使用的。 RP2040 GPIO功能图:   在Arduino IDE中可以直接使用Wire库来使用这个i2c控制器。 根据Arduino Nano原理图知其已经连接了两个i2c slave,一个是加速度陀螺仪,一个是认证芯片,我另外连接了两个i2c slave。 前两者硬件原理图:   在实际使用时,可以通过i2c_scanner来遍历i2c总线上的所有slave是否在位,并且将所有设备清单列出来。 代码如下: // -------------------------------------- // i2c_scanner // // Version 1 // This program (or code that looks like it) // can be found in many places. // For example on the Arduino.cc forum. // The original author is not known. // Version 2, Juni 2012, Using Arduino 1.0.1 // Adapted to be as simple as possible by Arduino.cc user Krodal // Version 3, Feb 26 2013 // V3 by louarnold // Version 4, March 3, 2013, Using Arduino 1.0.3 // by Arduino.cc user Krodal. // Changes by louarnold removed. // Scanning addresses changed from 0...127 to 1...119, // according to the i2c scanner by Nick Gammon // https://www.gammon.com.au/forum/?id=10896 // Version 5, March 28, 2013 // As version 4, but address scans now to 127. // A sensor seems to use address 120. // Version 6, November 27, 2015. // Added waiting for the Leonardo serial communication. // // // This sketch tests the standard 7-bit addresses // Devices with higher bit address might not be seen properly. // #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for Serial Monitor Serial.println("\nI2C Scanner"); } void loop() { int nDevices = 0; Serial.println("Scanning..."); for (byte address = 1; address < 127; ++address) { // The i2c_scanner uses the return value of // the Wire.endTransmission to see if // a device did acknowledge to the address. Wire.beginTransmission(address); byte error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) { Serial.print("0"); } Serial.print(address, HEX); Serial.println(" !"); ++nDevices; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) { Serial.print("0"); } Serial.println(address, HEX); } } if (nDevices == 0) { Serial.println("No I2C devices found\n"); } else { Serial.println("done\n"); } delay(5000); // Wait 5 seconds for next scan } 这里注意,有一句: while (!Serial); // Leonardo: wait for Serial Monitor 默认Serial对应的是2040开发板的USB接口对应的UART,这一句是指程序开始运行后等待用户打开该串口(可以使用IDE自带的串口监视器,我理解应该是内部有在检测UART电平是否被对面控制器拉高)。 实际运行效果如下:   上图中 0x18是我外接的MCP9808温度检测 0x3C是我外接的SSD1306 0x60应该是主板自带MICROCHIP加密芯片ATECC608A,我没有找到这个地址的来源。实际应用应该是Arduino官网用来认证、下载、引导使用。 0x6A是主板自带ST加速度陀螺仪芯片LSM6DSOXTR,从硬件原理图中也能看到SA0接地,datasheet提示对应地址1101010b。不过IMU的代码把这里封装了,用户直接使用即可都不用关心实际地址是什么。   疑问:默认使用i2c 0,怎么使用i2c 1呢?    

  • 2024-12-03
  • 回复了主题帖: 【Follow me第二季第4期】在Arduino下使用SD卡录制声音

    有更新了吗?换成14k就好了?  

  • 2024-12-02
  • 加入了学习《FollowMe 第二季:3 - EK_RA6M5 开发板入门》,观看 EK-RA6M5 开发板入门

  • 2024-11-29
  • 回复了主题帖: 【Follow me第二季第4期】任务2: IMU传感器

    IMU.readTemperatureFloat(temperature); 温度可以用float试试  

  • 2024-11-28
  • 加入了学习《直播回放: DigiKey FollowMe 第二季 第4期 Arduino Nano RP2040 Connect 任务讲解》,观看 Arduino Nano RP2040 Connect 任务讲解

  • 2024-11-27
  • 回复了主题帖: 【Follow me第二季第4期】任务二 通过串口打印六轴原始数据

    感觉这个功能很适合做无人机啊,加速度用来检测前倾后仰,左侧倾斜右侧倾斜,陀螺仪可以检测水平方向原地顺时针旋转和逆时针旋转  

  • 发表了主题帖: 【Follow me第二季第4期】任务二 通过串口打印六轴原始数据

    先看最终串口监视器和绘图仪的显示效果:   注意加速度和陀螺仪的量程数量级相差很大,两组数据在绘图仪中可以分别显示。 代码参考: #include <Arduino_LSM6DSOX.h> void setup() { // put your setup code here, to run once: Serial.begin(9600); if (!IMU.begin()) { Serial.println("Failed to initialize IMU!"); while (1) ; } } void loop() { // put your main code here, to run repeatedly: float accx, accy, accz; float gyrx, gyry, gyrz; if (IMU.accelerationAvailable()) { IMU.readAcceleration(accx, accy, accz); Serial.print(accx); Serial.print('\t'); Serial.print(accy); Serial.print('\t'); Serial.print(accz); } if (IMU.gyroscopeAvailable()) { IMU.readGyroscope(gyrx, gyry, gyrz); Serial.print('\t'); Serial.print(gyrx); Serial.print('\t'); Serial.print(gyry); Serial.print('\t'); Serial.println(gyrz); } delay(500); }    

  • 发表了日志: 【Follow me第二季第4期】任务二 通过串口打印六轴原始数据

  • 发表了主题帖: 【Follow me第二季第4期】任务一 Blink三色LED / 串口打印

    本帖最后由 yilonglucky 于 2024-11-27 18:14 编辑 需求分析: 三色LED是连接到NINA芯片上的,Arduino有现成的NINA库可以使用,将LED对应的三个GPIO扩展为了25,26,27,相当于GPIO扩展芯片。 串口打印可以使用默认的通道,即USB CDC,但是在系统启动、初始化期间IDE自带的“串口监视器”是无法使用的,因此计划使用nano的Tx和Rx脚进行硬线连接,但是注意,这组串口实际对应代码中的Serial1。   所需物料: nano主板和另外一块串口小板,三根杜邦线。   设计思路: 系统代码运行后打印必要的信息后,开启一个线程自动翻转RP4010直连的BUILDIN LED用来提示nano代码已经开始运行。 另外一个线程监控Seria1发来的数据,并指定对应的亮灯动作。   因此将三个亮灯信息编码进一个byte中: Index R G B 0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 这样在串口输入0~7即可控制三色灯的所有组合情况。 实际运行效果:   源代码: // Include Scheduler since we want to manage multiple tasks. #include <Scheduler.h> #include "WiFiNINA.h" #define led1 LEDR #define led2 LEDG #define led3 LEDB void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial1.begin(9600); pinMode(LED_BUILTIN, OUTPUT); // Setup the 3 pins as OUTPUT pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); Serial1.println("\n~~~~~~~~~~ RGB Blink Demo on Arduino Nano RP2040 ~~~~~~~~~~"); Serial.println("Hello DigiKey & EEWorld!"); Serial1.println("Hello DigiKey & EEWorld!"); Serial1.println("Please input the index number to blink the RGB LED:"); Serial1.println("Index R G B"); Serial1.println("0: 0 0 0"); Serial1.println("1: 0 0 1"); Serial1.println("2: 0 1 0"); Serial1.println("3: 0 1 1"); Serial1.println("4: 1 0 0"); Serial1.println("5: 1 0 1"); Serial1.println("6: 1 1 0"); Serial1.println("7: 1 1 1"); Scheduler.startLoop(loop1); Scheduler.startLoop(loop2); } /* * Name: set_rgb * Para: rgb index * bit2: red led * bit1: green led * bit0: blue led */ void set_rgb(char c) { int r, g, b; r = (c >> 2) % 2; g = (c >> 1) % 2; b = (c % 2); digitalWrite(led1, (PinStatus)r); digitalWrite(led2, (PinStatus)g); digitalWrite(led3, (PinStatus)b); } void loop() { if (Serial1.available()) { char c = Serial1.read(); set_rgb(c); } // IMPORTANT: // We must call 'yield' at a regular basis to pass // control to other tasks. yield(); } void loop1() { set_rgb(4); delay(1000); set_rgb(2); delay(1000); set_rgb(1); delay(1000); } void loop2() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }  

  • 2024-11-26
  • 回复了主题帖: 【Follow me第二季第4期】任务一 闪灯 + 打印Hello EEworld

    我也觉得,编译速度太慢了  

  • 2024-11-21
  • 回复了主题帖: 【Follow me第二季第4期】1.Nano RP2040 Connect 硬件分析

    所以三色灯由wifi芯片控制,那怎么通知wifi芯片?i2c还是spi,还是uart?怎么感觉都有呢?  

  • 发表了主题帖: 【Follow me第二季第4期】nano开箱

    早上刚收到,来个开箱贴。 清关后应该是国内二次包装的,包装没有问题     来个全家福:   除了nano以外,另外购置了双向排针,将来可以插到nano扩展板上。 原计划买个气压sensor的结果买成温度了     IDE已经部署好,可以读到nano的序列号了。   上电后已经有原始demo了,LED可以闪灯。      

  • 发表了日志: 【Follow me第二季第4期】nano开箱

  • 回复了主题帖: 【Follow me第二季第3期】哪位真的按照视频指南完成了E2 STUDIO环境搭建?

    这种问题一般和环境配置有关系,IDE还是不够完美,很多需要手动后期配置的地方。我的解决方法是:卸载,重装,默认路径不要修改  

  • 2024-10-17
  • 加入了学习《深入理解无刷直流电机(BLDC)原理以及控制》,观看 BLDC电机驱动的启动

  • 加入了学习《深入理解无刷直流电机(BLDC)原理以及控制》,观看 BLDC电机驱动的基本需求

  • 加入了学习《深入理解无刷直流电机(BLDC)原理以及控制》,观看 BLDC电机结构和优势

最近访客

< 1/4 >

统计信息

已有90人来访过

  • 芯积分:424
  • 好友:4
  • 主题:23
  • 回复:84

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言