103|0

125

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【Follow me第二季第4期】- 任务准备:底板制作与开发环境搭建 [复制链接]

  本帖最后由 慕容雪花 于 2024-12-16 22:03 编辑

这次活动中,特意购买了一个屏幕扩展板用于显示一些传感器数据。 本文主要介绍底板扩展板的设计,以及Arduino开发环境搭建,最后展示成功驱动屏幕。

硬件:

主开发板:Nano RP2040 Connect  https://docs.arduino.cc/hardware/nano-rp2040-connect/#features

 

 

LCD扩展板:Pico LCD 1.14 https://www.waveshare.com/wiki/Pico-LCD-1.14  

 

 

下图展示的是微雪的屏幕扩展板与树莓派PICO的接口图。

 

 

 

 

接下来的第一步就是找到微雪开发板与树莓派PICO的引脚关系,然后再找到对应到Arduino Nano RP2040 Connect的引脚。

 

 

 

有一点需要注意,Arduino Nano RP2040 Connect开发板的VUSB引脚与JP2扩展接口实际上默认是未焊接状态。因此需要手工焊接上去。

 

 

设计原理图与PCB:

JLC标准版,设计简单的连接。

 

 

主控板是Arduino Nano的尺寸,DY方向间距:15.24mm,DX方向间距:2.54mm

 

 

 

扩展板是树莓派PICO的尺寸:

                                

   

 

 

 

两层如下:

 

 

3D展示:

 

 

 

打样回来的板子:

 

 

搭建开发环境与屏幕驱动:

接下来Arduino IDE 2以上版本,安装开发板驱动:

 

 

选择板卡:

 

 

使用的屏幕驱动是:

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h>

指定屏幕SPI相关引脚:

  #define TFT_CS    D10  // Chip select control pin
  #define TFT_RST   D4   // Reset pin (could connect to Arduino RESET pin)
  #define TFT_DC    D12   // Data Command control pin
  #define TFT_MOSI  D11
  #define TFT_SCLK  D13

  #define TFT_MISO  D15

核心代码:

void setup(void) {
  Serial.begin(9600);
  Serial.print(F("Hello! ST77xx TFT Test"));

  // OR use this initializer (uncomment) if using a 1.14" 240x135 TFT:
  tft.init(135, 240);           // Init ST7789 240x135
  
  // SPI speed defaults to SPI_DEFAULT_FREQ defined in the library, you can override it here
  // Note that speed allowable depends on chip and quality of wiring, if you go too fast, you
  // may end up with a black screen some times, or all the time.
  //tft.setSPISpeed(40000000);

  Serial.println(F("Initialized"));

  uint16_t time = millis();
  tft.fillScreen(ST77XX_BLACK);
  time = millis() - time;

  Serial.println(time, DEC);
  delay(500);

  // large block of text
  tft.fillScreen(ST77XX_BLACK);
  testdrawtext("HELLO THERE Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa, fringilla sed malesuada et, malesuada sit amet turpis. Sed porttitor neque ut ante pretium vitae malesuada nunc bibendum. Nullam aliquet ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus a tortor imperdiet posuere. ", ST77XX_WHITE);
  delay(1000);

  // tft print function!
  tftPrintTest();
  delay(4000);

  // a single pixel
  tft.drawPixel(tft.width()/2, tft.height()/2, ST77XX_GREEN);
  delay(500);

  // line draw test
  testlines(ST77XX_YELLOW);
  delay(500);

  // optimized lines
  testfastlines(ST77XX_RED, ST77XX_BLUE);
  delay(500);

  testdrawrects(ST77XX_GREEN);
  delay(500);

  testfillrects(ST77XX_YELLOW, ST77XX_MAGENTA);
  delay(500);

  tft.fillScreen(ST77XX_BLACK);
  testfillcircles(10, ST77XX_BLUE);
  testdrawcircles(10, ST77XX_WHITE);
  delay(500);

  testroundrects();
  delay(500);

  testtriangles();
  delay(500);

  mediabuttons();
  delay(500);

  Serial.println("done");
  delay(1000);
}

编译代码:

 

 

实物验证:

 

 

 

 

 

 

 

 

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表