newlandmark

【ART-Pi】 ART-PI expansion board Sense HAT

 
Overview

basic introduction

ART-PI Sense HAT (Hardware Attached on Top) is a sensor expansion board suitable for the ART-PI development board and can be used to develop product prototypes based on display arrays and sensors.

 

aim of design

The sensor configuration is compatible with  the Raspberry Pi Sense HAT . The project will try to completely transplant the Raspberry Pi official  Sense HAT driver library to provide users with the possibility to practice the Raspberry Pi official SenseHat experiment  and  Astro PI two space experiments  on ART-PI   .

 

Introduce the origin of Sense HAT

The Raspberry Pi Foundation created a sensor experiment expansion board specifically for British ESA astronaut Tim Peake's first mission to the International Space Station. The name of the board is: Sense HAT, and the experimental project is called: AstroPi.

 

Device composition of ART-PI Sense HAT
      • 8x8 RGB full color array (NeoMarix) display
      • Mini joystick (Joystick) direction control
      • Button touch control (the Raspberry Pi version does not have this component, but more interesting experiments can be designed by adding buttons)
      • Gyroscope tilt detection
      • Accelerometer (Accelerometer) motion speed detection
      • Magnetometer Compass
      • Temperature sensor (Temperature) Temperature detection
      • Humidity Sensor (Humidity) Humidity Detection
      • Barometric pressure sensor height detection

 

Engineering development

 

schedule

      • ✅ Schematic drawing
      • ✅ PCB drawing
      • ✅ PCB proofing
      • ✅ Component procurement
      • ✅Steel mesh modeling
      • ✅ LED arrangement frame modeling
      • ✅ PLA printed stencil model
      • ✅ PLA printed LED arrangement frame
      • ✅PCB soldering
      • ✅ Array test
      • ✅ Five-way button test
      • ✅ Sensor test
      • ✅ Provide experimental engineering framework

 

Programming reference

Components on the Sense HAT are connected to specific pins of the microcontroller and are programmed using the following pins: (Pin - Alias)

      • PG14-KEY_1
      • PG13-KEY_2
      • PH10-LED_DATA
      • PI1-GYR_ACC_MAG_SCLK
      • PI2 - GYR_ACC_MAG_MISO
      • PI3 - GYR_ACC_MAG_MOSI
      • PB0-MAGNETOMETER_CS
      • PB1-GYROSCOPE_CS
      • PB2-ACCELEROMETER_CS
      • PA6-GYROSCOPE_INT1
      • PA7-GYROSCOPE_INT2
      • PH2-ACCELEROMETER_INT1
      • PH3-ACCELEROMETER_INT2
      • PA2 - TEMPERATURE_HUMIDITY_SCL
      • PA3 - TEMPERATURE_HUMIDITY_SDA
      • PE4 - PRESSURE_TEMPERATURE_SCL
      • PE5 - PRESSURE_TEMPERATURE_SDA
      • PH11-JOYSTICK_UP
      • PH12 - JOYSTICK_DOWN
      • PH13 - JOYSTICK_LEFT
      • PH14 - JOYSTICK_RIGHT
      • PH15-JOYSTICK_CLICK

 

Attachment Engineering Framework Description

      • The attachment provides the engineering framework of STM32 CUBE IDE
      • It can be opened in CUBE IDE or CUBE MX.
      • All the devices on the expansion board have pins configured.
      • WS2812 uses PWM+DMA mode driver, TIM5 timer CH1 channel
      • 9-axis sensor uses hardware SPI
      • Temperature, humidity and barometer do not use soft I2C
      • For soft I2C communication, please refer to this article: https://my.oschina.net/u/4367893/blog/3839277

 

Project configuration

 

PCB iteration

      • V1.1 - Add slots around SHT30 to avoid PCB heat conduction affecting sensor temperature testing
      • V1.2 - Add pin function silk screen on the back of PCB to facilitate debugging and testing through DuPont wire
      • V1.3 - Added USB power supply interface, which can be used if the LED power supply is insufficient

 

 

 

New PCB tricks to try

 

introduce

 

Since the PCB has a large number of pads and numerous components that need to be arranged neatly, I tried using a 3D printer to print a steel plastic mesh and a frame for arranging LEDs as auxiliary tools. Attached are the model files and print files of these two tools.  

 

The stencil is to leave the solder pads on a piece of mesh to appear as "holes". The solder paste is scraped into the holes with a scraper, and then the stencil is taken away to leave the tin. If you use a copper needle to squeeze out tin by yourself, you can't squeeze out very small spots, and it's easy to squeeze out too much. Steel mesh doesn't have this problem. If the net is really made of metal, you can directly use a hot air gun to blow the tin into balls and leave them on the pad. This is called tin implantation.

 

The frame is somewhat similar to a steel mesh, with some LED-sized holes. Put the LEDs in the holes and they can be arranged neatly. Put the neatly arranged LEDs on the PCB at one time, use a desoldering station to melt the solder paste and reflow it.

 

The tool I use is Blender. After the model is exported to STL in Blender, the unit of 1mm (millimeter) or 1m (meter) will correspond to the 1mm of the 3D printer, and the Cura slicing software will automatically recognize it. For the convenience of editing, I am accustomed to using m as the unit in Blender (Blender displays the auxiliary grid in 0.1m units).

 

Export file preparation

 

In the PCB file of the project, there is a file of steel mesh and frame. This file is obtained from an ordinary printed PCB after removing unnecessary silk screens, wires, and frames.

 

Steel mesh and frame

Use the export tool in Lichuang EDA to export the top pad and silk screen layer as SVG files respectively. The actual size of the pad was measured in advance to be 63.5x38.5mm, and the SVG was imported into Blender to become the top-level steel mesh. In order to easily restore the true size, I added an outer frame to the exported SVG in Sketch and changed the size to 65mm x 40mm and 40mm x 40mm (Blender precision is set to 0.01, so the value is enlarged 100 times). I did additional processing for the silk screen. Close all the silk screen boxes into a square.

 

Here we only use the steel mesh as an example, and the framework is exactly the same as the steel mesh. Import the SVG file created in the previous step into Blender, and set the width and height to 65 x 40m (it will be 65mm x 40mm when printed).

Then expand the pad into an object, 5mm high, and expand the outer frame to 0.4mm high. Boolean operation, subtract the pad from the outer frame, and get a mesh with a thickness of 0.4mm.

Because the pads of the right sensor are too small, I decided to solder them separately, so I removed the three sensor parts on the right side of the actual printed stencil. The actual printed steel mesh and frame, in which I assembled the LEDs ready for welding:

 

After scraping the tin

 

Put the LEDs arranged in the frame on the PCB and solder them together. The capacitors and resistors on both sides under the frame have been placed and blocked. The sticky stuff on the board is solder paste.

 

After soldering, I washed the board and it was very clean with no excess tin.

 

 

Power on and test the components. The sensor has not been tested yet. The LED and button are both successful and there is no false soldering.

 

 

Functional device selection

 

8x8 RGB full color array

 

mini joystick

 

button

 

Gyroscope + acceleration + geomagnetic sensor

 

Temperature + Humidity Sensor

 

Air pressure + temperature sensor

 

*For all device data sheets, see the attachment at the bottom of the page.

 
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-20 04:17:56

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号