mirror of
https://github.com/geekammo/MicroView-Arduino-Library.git
synced 2026-02-25 14:01:22 +01:00
added Rotating Cube example by Jim Lindblom
This commit is contained in:
37
12x24Font.h
Normal file
37
12x24Font.h
Normal file
@@ -0,0 +1,37 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// File generated by LCD Assistant
|
||||
// http://en.radzio.dxp.pl/bitmap_converter/
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#ifndef FONT12X24_H
|
||||
#define FONT12X24_H
|
||||
#include <avr/pgmspace.h>
|
||||
static const unsigned char font12x24 [] PROGMEM = {
|
||||
// first row defines - FONTWIDTH, FONTHEIGHT, ASCII START CHAR, TOTAL CHARACTERS, FONT MAP WIDTH HIGH, FONT MAP WIDTH LOW (2,56 meaning 256)
|
||||
12,24,48,10,1,20,
|
||||
0x1F, 0x1F, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x1F, 0x1F, 0xFF, 0xFF, 0x9F, 0x9F, 0x9F, 0x9F,
|
||||
0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x9F, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0x1F, 0x1F, 0xFF, 0xFF, 0x9F, 0x9F, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x1F, 0x1F, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0xE7, 0xE7,
|
||||
0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xFF, 0xFF, 0x7F, 0x7F, 0x9F, 0x9F, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0x87, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x07, 0x07, 0xFF, 0xFF,
|
||||
0x1F, 0x1F, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x1F, 0x1F, 0xFF, 0xFF, 0x1F, 0x1F, 0xE7, 0xE7,
|
||||
0xE7, 0xE7, 0xE7, 0xE7, 0x1F, 0x1F, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0x7F, 0x9F, 0x9F, 0xE7, 0xE7, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xE7, 0xE7, 0xE7, 0xE7, 0x18, 0x18, 0xFF, 0xFF, 0x1F, 0x1F, 0x61, 0x61, 0x7E, 0x7E, 0x00, 0x00,
|
||||
0x7F, 0x7F, 0xFF, 0xFF, 0xE0, 0xE0, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x1F, 0x1F, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x1F, 0x1F, 0xE1, 0xE1, 0xFE, 0xFE, 0xFF, 0xFF, 0x18, 0x18, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0x18, 0x18, 0xFF, 0xFF, 0xF8, 0xF8, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x00, 0x00, 0xFF, 0xFF,
|
||||
0xF8, 0xF8, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xF8, 0xF8, 0xFF, 0xFF, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0xE0, 0xE0, 0xE7, 0xE7, 0xE7, 0xE7, 0xFF, 0xFF, 0xE1, 0xE1, 0xE6, 0xE6, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0xE7, 0xE7, 0xFF, 0xFF, 0xF9, 0xF9, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xF8, 0xF8, 0xFF, 0xFF,
|
||||
0xFE, 0xFE, 0xFE, 0xFE, 0xE6, 0xE6, 0xE0, 0xE0, 0xE6, 0xE6, 0xFF, 0xFF, 0xF9, 0xF9, 0xE7, 0xE7,
|
||||
0xE7, 0xE7, 0xE7, 0xE7, 0xF8, 0xF8, 0xFF, 0xFF, 0xF8, 0xF8, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xE1, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF8, 0xF8, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xE7,
|
||||
0xE7, 0xE7, 0xF9, 0xF9, 0xFE, 0xFE, 0xFF, 0xFF,
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -77,26 +77,38 @@ static uint8_t screenmemory [] = {
|
||||
// D7 D7.............D7 ----
|
||||
|
||||
//SparkFun Electronics LOGO
|
||||
|
||||
// ROW0, BYTE0 to BYTE63
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x0F, 0x07, 0x07, 0x06, 0x06, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
// ROW1, BYTE64 to BYTE127
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x07, 0x0F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xFC, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xE0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
// ROW2, BYTE128 to BYTE191
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
|
||||
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xFD, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
// ROW3, BYTE192 to BYTE255
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x07, 0x01,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
// ROW4, BYTE256 to BYTE319
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x1F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
// ROW5, BYTE320 to BYTE383
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||
0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
@@ -16,7 +16,7 @@ Arduino library for MicroView.
|
||||
2. cd libraries
|
||||
3. mkdir MicroView
|
||||
4. cd MicroView
|
||||
5. git clone git@github.com:geekammo/microview.git .
|
||||
5. git clone https://github.com/geekammo/MicroView-Arduino-Library.git .
|
||||
6. Start Arduino IDE.
|
||||
7. MicroView example is located at, File--->Example--->MicroView--->MicroViewDemo
|
||||
|
||||
@@ -91,6 +91,11 @@ void loop() {
|
||||
</code></pre>
|
||||
|
||||
## History
|
||||
**v1.12b: 11th June 2014 by JP Liew**
|
||||
* added comments for SparkFun Logo
|
||||
* added Rotating Cube example by Jim Lindblom @ SparkFun Electronics
|
||||
* changed git clone instruction to use https
|
||||
|
||||
**v1.11b: 9th June 2014 by JP Liew**
|
||||
* added simple tutorials for production sketch
|
||||
* modified OLED RESET pin to 7
|
||||
|
||||
88
examples/MicroViewCube/MicroViewCube.ino
Normal file
88
examples/MicroViewCube/MicroViewCube.ino
Normal file
@@ -0,0 +1,88 @@
|
||||
/******************************************************************************
|
||||
MicroViewCube.ino
|
||||
Rotating a 3-D Cube on the MicroView Display
|
||||
Jim Lindblom @ SparkFun Electronics
|
||||
Original Creation Date: June 9, 2014
|
||||
|
||||
This sketch uses the MicroView library to draw a 3-D projected
|
||||
cube, and rotate it along all three axes.
|
||||
|
||||
Development environment specifics:
|
||||
IDE: Arduino 1.0.5
|
||||
Hardware Platform: MicroView
|
||||
|
||||
This code is beerware; if you see me (or any other SparkFun employee) at the
|
||||
local, and you've found our code helpful, please buy us a round!
|
||||
|
||||
Distributed as-is; no warranty is given.
|
||||
******************************************************************************/
|
||||
#include <MicroView.h>
|
||||
|
||||
#define SHAPE_SIZE 600
|
||||
#define ROTATION_SPEED 0 // ms delay between cube draws
|
||||
|
||||
int SCREEN_WIDTH = uView.getLCDWidth();
|
||||
int SCREEN_HEIGHT = uView.getLCDHeight();
|
||||
|
||||
float d = 3;
|
||||
float px[] = { -d, d, d, -d, -d, d, d, -d };
|
||||
float py[] = { -d, -d, d, d, -d, -d, d, d };
|
||||
float pz[] = { -d, -d, -d, -d, d, d, d, d };
|
||||
|
||||
float p2x[] = {0,0,0,0,0,0,0,0};
|
||||
float p2y[] = {0,0,0,0,0,0,0,0};
|
||||
|
||||
float r[] = {0,0,0};
|
||||
|
||||
void setup()
|
||||
{
|
||||
uView.begin();
|
||||
uView.clear(ALL);
|
||||
uView.display();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
drawCube();
|
||||
delay(ROTATION_SPEED);
|
||||
}
|
||||
|
||||
void drawCube()
|
||||
{
|
||||
r[0]=r[0]+PI/180.0; // Add a degree
|
||||
r[1]=r[1]+PI/180.0; // Add a degree
|
||||
r[2]=r[2]+PI/180.0; // Add a degree
|
||||
if (r[0] >= 360.0*PI/180.0) r[0] = 0;
|
||||
if (r[1] >= 360.0*PI/180.0) r[1] = 0;
|
||||
if (r[2] >= 360.0*PI/180.0) r[2] = 0;
|
||||
|
||||
for (int i=0;i<8;i++)
|
||||
{
|
||||
float px2 = px[i];
|
||||
float py2 = cos(r[0])*py[i] - sin(r[0])*pz[i];
|
||||
float pz2 = sin(r[0])*py[i] + cos(r[0])*pz[i];
|
||||
|
||||
float px3 = cos(r[1])*px2 + sin(r[1])*pz2;
|
||||
float py3 = py2;
|
||||
float pz3 = -sin(r[1])*px2 + cos(r[1])*pz2;
|
||||
|
||||
float ax = cos(r[2])*px3 - sin(r[2])*py3;
|
||||
float ay = sin(r[2])*px3 + cos(r[2])*py3;
|
||||
float az = pz3-150;
|
||||
|
||||
p2x[i] = SCREEN_WIDTH/2+ax*SHAPE_SIZE/az;
|
||||
p2y[i] = SCREEN_HEIGHT/2+ay*SHAPE_SIZE/az;
|
||||
}
|
||||
|
||||
uView.clear(PAGE);
|
||||
for (int i=0;i<3;i++)
|
||||
{
|
||||
uView.line(p2x[i],p2y[i],p2x[i+1],p2y[i+1]);
|
||||
uView.line(p2x[i+4],p2y[i+4],p2x[i+5],p2y[i+5]);
|
||||
uView.line(p2x[i],p2y[i],p2x[i+4],p2y[i+4]);
|
||||
}
|
||||
uView.line(p2x[3],p2y[3],p2x[0],p2y[0]);
|
||||
uView.line(p2x[7],p2y[7],p2x[4],p2y[4]);
|
||||
uView.line(p2x[3],p2y[3],p2x[7],p2y[7]);
|
||||
uView.display();
|
||||
}
|
||||
Reference in New Issue
Block a user