Assignment: output devices

1. Output device -- WS2813 LED Matrix (5x5)
2. 328P Processor
3. Itegrating: 2813 LED Matrix, 328P Processor, FabISP

Home

First of all, thanks Jing Wang of our Makebator, he helps me a lot in PCB making and soldering.

Read the Datasheet of 328P

At first, I want to design the 328P processor myself, so I read the 328P datasheet, and download the Arduino mini schematic file from the arduino.org. At last I find the router is too difficult for me . So I use the satshakit version. You can visit it here. Thanks a lot.

The following is the pinout of 328P.

The following is the schematic of Arduino Mini with 328P processor.

The hole file of the satshakit is too bigger,so I change the hole size,the hole file is the following. You can download the file here.


Milling the 328P processor board

The milling router file is below.

When milling the 328P board, the support board of the milling machine is not fixed well, and it moved while milling, so the processor board is destoried. The picture is the following.

After refixed the board,it works well.


Soldering the 328P processor board

Soldering 328P chips require a lot of skill, and Jing Wang of our Makebator helps me a lot. I make three pieces, two pieces work, the first piece can not work because the pin Hole is to bigger and the copper wire is breaked.


Burning the Bootload and uploading Blink file

I burn the bootload with the FabISP, whick has made before.

I upload the program as the following. You can download the program here.

	#include <Adafruit_NeoPixel.h>

	#define Red Color(255,0,0)
	#define Green Color(0,255,0)
	#define Blue Color(0,0,255)
	#define White Color(10,10,10)


	#define PIN            5
	#define NUMPIXELS      25

	unsigned char Position[5][5] =
	{
	  0, 1, 2, 3, 4,
	  9, 8, 7, 6, 5,
	  10, 11, 12, 13, 14,
	  19, 18, 17, 16, 15,
	  20, 21, 22, 23, 24
	};
	unsigned char F[5][5] =
	{
	  1, 1, 1, 1, 1,
	  1, 0, 0, 0, 0,
	  1, 1, 1, 1, 0,
	  1, 0, 0, 0, 0,
	  1, 0, 0, 0, 0,
	};
	unsigned char A[5][5] =
	{
	  0, 0, 1, 0, 0,
	  0, 1, 0, 1, 0,
	  1, 0, 0, 0, 1,
	  1, 1, 1, 1, 1,
	  1, 0, 0, 0, 1,
	};
	unsigned char B[5][5] =
	{
	  1, 1, 1, 1, 0,
	  1, 0, 0, 0, 1,
	  1, 1, 1, 1, 0,
	  1, 0, 0, 0, 1,
	  1, 1, 1, 1, 0
	};
	unsigned char L[5][5] =
	{
	  1, 0, 0, 0, 0,
	  1, 0, 0, 0, 0,
	  1, 0, 0, 0, 0,
	  1, 0, 0, 0, 0,
	  1, 1, 1, 1, 1
	};

	unsigned char Heart1 [5][5] =
	{
	  0, 1, 0, 1, 0,
	  1, 1, 1, 1, 1,
	  1, 1, 1, 1, 1,
	  0, 1, 1, 1, 0,
	  0, 0, 1, 0, 0,
	};




	Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

	void setup() {
	  // put your setup code here, to run once:
	  pixels.begin(); // This initializes the NeoPixel library.
	  pixels.show();
	}

	void loop() {
	  // put your main code here, to run repeatedly:
	  int displayTime = 600;
	  lightLED(pixels.Red);          //Order lit the red light
	  delay(displayTime);
	  lightLED(pixels.Green);        //Order lit the green light
	  delay(displayTime);
	  lightLED(pixels.Blue);         //Order lit the blue light
	  delay(displayTime);
	  displayChar(F);
	  delay(displayTime);
	  displayChar(A);
	  delay(displayTime);
	  displayChar(B);
	  delay(displayTime);
	  displayChar(L);
	  delay(displayTime);
	  displayChar(A);
	  delay(displayTime);
	  displayChar(B);
	  delay(displayTime);
	  displayChar(Heart1);
	  delay(displayTime);
	  delay(displayTime);

	}

	void  displayChar(unsigned char Char[5][5]) {
	  for (int i = 0; i << 5; i++) {
		for (int j = 0; j << 5; j++) {
		  if (Char[i][j]) {  //如果值为1, 显示红
			pixels.setPixelColor(Position[i][j], pixels.Red);
			pixels.setBrightness(30);
		  }
		  else {
			pixels.setPixelColor(Position[i][j], pixels.White);
			pixels.setBrightness(5);
		  }
		}
	  }
	  pixels.show();
	}

	void lightLED(uint32_t c) {
	  for (int i = 0; i << NUMPIXELS; i++) {
		pixels.setPixelColor(i, c); // Moderately bright green color.
		pixels.setBrightness(30);
		pixels.show(); // This sends the updated pixel color to the hardware.
	  }
	}


Home

Display each char of "FABLAB" in squence.

The program i desiged is to disply each char of "FABLAB" is squence. You can download the program here.

In this project, I use FabISP burning the bootlaoder of 328P, and uploading the program with it.

The content of the following video is "FABLAB♥"


Home