Buenas
Después de 2 días en Paris donde pude escribir poco y aprender mucho; hoy vamos con un ejemplo de código puro y duro
Cómo pintar pixel a pixel un chart en un display con .Net Gadgeteer.
En este ejemplo utilizaremos los siguientes elementos
- Fez Spider Mainboard
http://savecomm.net/p/53/fez-spider-starter-kit - USB Client DP
http://www.netmf.com/showcase.aspx?ShowcaseID=1&id=110 - Display_T35
http://www.ghielectronics.com/catalog/product/276 - Button Module
http://www.ghielectronics.com/catalog/product/274
Organizados con el siguiente esquema:
Del código de la aplicación debo resaltar
- linea 19, en el press del Button además de detener e iniciar el timer, enciendo y apago el LED del boton
- línea 32, la rutina que dibuja el chart es de lo más simple, incrementa un contador entre 20 40 y luego lo decrementa. También hay un segundo flag para controlar el avance vertical
1: using GT = Gadgeteer;
2:
3: namespace GadgeteerApp6
4: {
5: public partial class Program
6: {
7: private uint _axisX = 20;
8: private uint _axisY = 20;
9: private GT.Timer _timer;
10: private bool _modeUp = true;
11:
12: void ProgramStarted()
13: {
14: button.ButtonPressed += ButtonButtonPressed;
15: _timer = new GT.Timer(200);
16: _timer.Tick += TimerTick;
17: }
18:
19: void ButtonButtonPressed(GT.Modules.GHIElectronics.Button sender, GT.Modules.GHIElectronics.Button.ButtonState state)
20: {
21: button.ToggleLED();
22: if (_timer.IsRunning)
23: {
24: _timer.Stop();
25: }
26: else
27: {
28: _timer.Start();
29: }
30: }
31:
32: void TimerTick(GT.Timer timer)
33: {
34: _axisY++;
35: if (_axisY + 10 > display_T35.SimpleGraphics.Height)
36: {
37: display_T35.SimpleGraphics.Clear();
38: _axisY = 20;
39: }
40: if (_modeUp && _axisX > 40)
41: {
42: _modeUp = false;
43: }
44: if (!_modeUp && _axisX < 20)
45: {
46: _modeUp = true;
47: }
48: if (_modeUp)
49: {
50: _axisX++;
51: }
52: else
53: {
54: _axisX--;
55: }
56: display_T35.SimpleGraphics.SetPixel(GT.Color.Green, _axisX, _axisY);
57: for (uint i = 1; i < 15; i++)
58: {
59: display_T35.SimpleGraphics.SetPixel(GT.Color.Red, _axisX + i, _axisY);
60: }
61: }
62: }
63: }
Para muestra nada mejor que un video
Y ya mañana para Santa Pola a mostrar estas cositas en vivo con los amigos de GuseNet.
Saludos @ Home
El Bruno
Leave a comment