Je veux faire briller l'éclairage LED de l'ErgoDox EZ, mais dites-moi ce qu'est la LED en premier lieu

Salopes (sauter)

Mon attente personnelle était de pouvoir changer la couleur de la LED à trois points avant en modifiant les paramètres. Mais apparemment, c'est différent.

Je pensais que ce serait clair si je lisais le langage C, mais j'utilise le langage C pour mon travail depuis plus de 10 ans, mais j'ai abandonné parce que je n'avais pas la capacité de lire le langage C. Il n'y a rien de stupide à expérimenter. Vous pouvez voir à quel point les connaissances sont importantes. Quelles ont été les 10 dernières années ... Aucun génie n'appréciera d'acquérir de l'expérience. Cependant, Bonkura privilégie inévitablement l'expérience à l'étude.

pour cette raison···.

Il y a une prémisse que je n'avais pas l'intention de le faire briller lorsque j'ai acheté le clavier ... Cependant, j'ai commandé celui avec éclairage LED car il ne serait pas possible d'acheter le même clavier en plus si j'en achetais un. (Où avez-vous parlé de la LED avant)

Compte Twitter officiel d'ErgoDoxEZ: @ErgoDoxEZ

Ci-dessous, le sujet principal ...

  1. [Changer le voyant avant](#Changer le voyant avant)
  2. [Changer la LED à l'arrière](#Change LED à l'arrière)

Ci-dessous, encore les préliminaires ...

Comment activer l'éclairage LED dans l'interface graphique

L'éclairage de la LED est un loisir personnel

Pour la satisfaction de soi, personne d'autre n'est impliqué et n'intervient pas. Par conséquent, le fonctionnement de l'interface graphique ne peut faire que certaines choses, et certaines choses ne peuvent même pas être effectuées dans une certaine mesure. J'en suis venu à cette conclusion.

Par conséquent, comment changer l'éclairage LED peut ne pas être publié (je ne sais tout simplement pas). Mais malheureusement, je suis fou et je ne peux pas le changer sans dire à quelqu'un comment le faire. «Dis-moi Kure Kure»

Changement de LED à l'avant

Enfin, insérez-le dans le sujet principal. La LED [Rouge Vert Bleu] s'allume. 強い光.jpg

Tout d'abord, je veux supprimer la lumière forte.

Comment changer la luminosité de la LED d'ErgoDox EZ

La méthode introduite ici consiste simplement à modifier l'intensité lumineuse. Cloner le répertoire Git \ github_repository20180604 \ qmk_firmware \ keyboards \ ergodox_ez ergodox_ez.c

Il existe une fonction nommée "ergodox_blink_all_leds". Il y a un appel de fonction appelé "ergodox_led_all_set" qui contrôle l'intensité lumineuse des trois LED avant, et la valeur LED_BRIGHTNESS_DEFAULT y est passée comme argument. Cela indique qu'il s'allume avec une lumière forte (elle peut ne pas être forte car il s'agit d'une intensité standard). Par conséquent, si vous le réécrivez comme LED_BRIGHTNESS_LO en tant que lumière faible, la lumière peut être supprimée. Pour une lumière forte, spécifiez LED_BRIGHTNESS_HI.

LEDの強い光.jpg

弱い光.jpg

Comparaison de force

Le dessus est une lumière forte et le fond est faible, mais il est peu probable qu'il soit comparable car il n'y a pas de technologie de prise de vue.

強弱.jpg

La fonction suivante est utilisée pour déterminer l'intensité de la lumière.

ergodox_ez.h


inline void ergodox_right_led_1_set(uint8_t n)    { OCR1A = n; }
inline void ergodox_right_led_2_set(uint8_t n)    { OCR1B = n; }
inline void ergodox_right_led_3_set(uint8_t n)    { OCR1C = n; }
inline void ergodox_right_led_set(uint8_t led, uint8_t n)  {
    (led == 1) ? (OCR1A = n) :
    (led == 2) ? (OCR1B = n) :
                 (OCR1C = n);
}

inline void ergodox_led_all_set(uint8_t n)
{
    ergodox_right_led_1_set(n);
    ergodox_right_led_2_set(n);
    ergodox_right_led_3_set(n);
}

Jusqu'à présent, j'utilisais ʻergodox_led_all_set, mais si vous voulez le faire briller individuellement, vous pouvez utiliser ʻergodox_right_led_ [1-3] _set. Ainsi, l'image ci-dessous est le résultat du réglage de LED1 (rouge) sur 1 et du passage de 0 aux LED2 et 3.

最弱.jpg

Le vert (LED2) et le bleu (LED3) sont passés à zéro, j'ai donc pensé qu'ils étaient éteints, mais ils brillent. C'est étrange. Quelqu'un peut-il me dire pourquoi il brille? (Puisqu'il n'y a pas de technologie de prise de vue, il semble briller fortement, mais c'est assez faible)

Comme la force est difficile à comprendre, je l'ai modifiée comme suit. (La valeur écrite dans le commentaire "← this." Est l'image ci-dessous)

ergodox_ez.c


void ergodox_blink_all_leds(void)
{
    ergodox_led_all_off();
//    ergodox_led_all_set(LED_BRIGHTNESS_DEFAULT);	//Original 20180828
//	ergodox_led_all_set(LED_BRIGHTNESS_LO);		//Supprimer la lumière.
	ergodox_right_led_1_set(1);	//Rouge ← ceci.
	ergodox_right_led_2_set(0);	//Vert ← ceci.
	ergodox_right_led_3_set(LED_BRIGHTNESS_HI);	//Bleu ← ce.
    ergodox_right_led_1_on();
    _delay_ms(50);
    ergodox_right_led_2_on();
    _delay_ms(50);
    ergodox_right_led_3_on();
    _delay_ms(50);
#ifdef LEFT_LEDS
・
・
・
}

青光.jpg

Puisque le rouge est défini sur 1, il est compréhensible qu'il brille faiblement. Pourquoi le voyant est-il allumé lorsque le vert est défini sur 0? Dans les deux cas, la couleur bleue est trop forte et elle est difficile à voir. Puisque le bleu est maximisé, pouvez-vous voir que la lumière est réfléchie même sur les touches?

Mise en lumière en premier lieu

Pour faire briller la LED avant, j'ai découvert ci-dessus qu'elle était allumée à cause de ʻergodox_right_led_1_on`. Quand j'ai vérifié le contenu, j'ai trouvé qu'il était contrôlé par les deux lignes suivantes (je viens de faire une pause par moi-même, et c'est en fait une ligne).

ergodox_ez.h


inline void ergodox_right_led_1_on(void)
{
		//rouge
	DDRB |=  (1<<5);
	PORTB |=  (1<<5);
}

inline void ergodox_right_led_2_on(void)    { DDRB |=  (1<<6); PORTB |=  (1<<6); }	//vert
inline void ergodox_right_led_3_on(void)    { DDRB |=  (1<<7); PORTB |=  (1<<7); }	//Bleu

Vous pouvez voir que nous essayons de contrôler les bits en décalant le nombre 1 vers la gauche (1 << 5) de cinq. Le point est, 0x20 (0b00100000), non?

Question d'ici

En parlant de ma petite amie, Right Hand, qui a un plat d'accompagnement AV, vous pourriez imaginer AVR d'un micro-ordinateur, mais certaines personnes peuvent ne pas le comprendre. Je suis l'un d'eux. Il semble y avoir un micro-ordinateur appelé PIC, mais est-il normal de penser que l'ErgoDox EZ utilise un micro-ordinateur AVR? J'ai mis 0b00000001 sans le savoir, mais ça ne brille pas du tout.

ergodox_ez.h


inline void ergodox_right_led_1_on(void)
{
		//rouge
	DDRB |=  (0b00000001);
	PORTB |=  (0b00000001);
}

Le fait est qu'il n'y a que trois LED, alors est-il correct de les utiliser dans l'ordre à partir du bit le plus à gauche? Les 5 bits les plus à droite sont-ils gratuits? Dans cette partie, je pensais que c'était une combinaison qui pouvait changer les couleurs comme le jaune et le violet, mais ne pouvez-vous pas faire une chose aussi avancée? La couleur est-elle fixe?

L'effort suivant est-il inutile?

keymap.c


// Runs whenever there is a layer state change.
uint32_t layer_state_set_user(uint32_t state) {
・
・
・

  uint8_t layer = biton32(state);
  switch (layer) {
      case 0:
・
・
・

      case 1:
//        ergodox_right_led_1_on();
		DDRB |=  (1<<5);
		PORTB |=  (1<<5);
//		DDRB |=  (0b00100000);rouge
//		PORTB |=  (0b00100000);rouge
//		DDRB |=  (0b01000000);vert
//		PORTB |=  (0b01000000);vert
//		DDRB |=  (0b10000000);Bleu
//		PORTB |=  (0b10000000);Bleu

//		DDRB |=  (0b00110000);rouge
//		PORTB |=  (0b00110000);rouge
//		DDRB |=  (0b01010000);Erreur de compilation
//		PORTB |=  (0b01010000);Erreur de compilation
//		DDRB |=  (0b10010000);Bleu
//		PORTB |=  (0b10010000);Bleu
//		DDRB |=  (0b10100000);rouge et bleu
//		PORTB |=  (0b10100000);rouge et bleu
//		DDRB |=  (0b11000000);Vert bleu
//		PORTB |=  (0b11000000);Vert bleu
//		DDRB |=  (0b01100000);Rouge, Vert
//		PORTB |=  (0b01100000);Rouge, Vert
//		DDRB |=  (0b11100000);Rouge vert bleu
//		PORTB |=  (0b11100000);Rouge vert bleu

//		DDRB |=  (0b00000001);La LED au premier plan n'est pas affichée.
//		PORTB |=  (0b00000001);La LED au premier plan n'est pas affichée.
//		DDRB |=  (0b00000010);La LED au premier plan n'est pas affichée.
//		PORTB |=  (0b00000010);La LED au premier plan n'est pas affichée.
//		DDRB |=  (0b00000100);La LED au premier plan n'est pas affichée.
//		PORTB |=  (0b00000100);La LED au premier plan n'est pas affichée.
//		DDRB |=  (0b00001000);La LED au premier plan n'est pas affichée.
//		PORTB |=  (0b00001000);La LED au premier plan n'est pas affichée.

・
・
・

#ifdef RGBLIGHT_ENABLE
・
・
・

Registre de port et [IO Port C Language Macro, etc.](http: // startelc. J'ai vérifié les fonctions de DDRB et PORTB dans com / AVR / Avr_100macroMemo.html" Démarrage du circuit électronique "), mais je ne pouvais pas le comprendre. Selon le type de LED, elle peut être monochromatique ou multicolore. Je me demande si cela ne fonctionne que si la même valeur est définie pour ces deux types de fonctions d'émission lumineuse. Je ne comprends toujours pas la partie qui est en erreur ...

Je veux juste utiliser un clavier, mais je ne comprends pas pourquoi cela prend tant de temps et d'efforts. Vous pouvez voir à quel point les produits commerciaux sont bons.

3 types de LED avant fixes

Si la couleur ne peut pas être modifiée et qu'elle est fixe, il n'y a pas 6 affichages différents. En supposant que la couche 0 n'émet pas de lumière, y aura-t-il 7 types d'émission de lumière de la couche 1 à la couche 7? J'avais l'intention d'apprendre des combinaisons et des séquences au collège, mais je ne peux pas utiliser ce que j'ai appris à l'école ... Il est difficile de réaliser à quel point les êtres humains ont été abandonnés et ont vécu sans étudier. ErgoDoxEZ a une fonction pour vous faire prendre conscience de la douceur de vivre ... Malheureusement, tant que le code source existant a 7 types, suivons-le. Après la couche 8, il n'y a pas de lumière. C'est dommage, mais si vous voulez qu'il émette de la lumière, vous devez l'ajouter vous-même. Après le cas 7:, ce devrait être default:. Pendant ce temps, vous pouvez attribuer autant de nombres que vous le souhaitez, tels que 8 et 9, et laisser les trois types de LED émettre de la lumière à votre guise. Cela semble déroutant car l'émission de lumière chevauche d'autres couches, mais pour le moment, je pense que l'on peut juger que la couche n'est pas 0.

Changement de LED à l'arrière

Je passe beaucoup de temps et d'efforts sur l'éclairage LED, en achetant des claviers coûteux sans aucun revenu pour la recherche d'emploi. J'étais en difficulté parce que le pionnier ne l'a pas fait briller, mais je suis reconnaissant qu'il n'y ait qu'un seul bénévole qui ait révélé comment le faire briller.

Introduction à ErgoDox Changer la couleur de la LED arrière lorsque le calque est commuté Sur la base du code source, je veux aussi faire briller mon ErgoDox EZ. C'était.

En premier lieu, je voulais changer la couleur de la LED avant car il était désagréable que la couche 1 brille en rouge, donc je voulais la changer en bleu, jaune et rouge comme un feu de signalisation. Je ne voulais pas utiliser le rouge comme premier car je pense que c'est un signal de danger. Et je voulais que la LED arrière émette de la lumière en fonction de la couleur de la LED avant. Il n'y a pas de problème de répulsion (?), Mais j'aimerais l'adapter si possible. au fait, Face arrière? retour? Est ce juste?

Emission simple (émission simultanée de la même couleur)

Supposons que vous compreniez que vous souhaitiez intégrer un programme émettant de la lumière LED de couche 1 dans le ["cas 1:"] ci-dessus (# question à partir d'ici) dans [keymap.c].

keymap.c


      case 0:
・
・
・
#ifdef RGBLIGHT_ENABLE
		rgblight_disable();
#endif
        break;
      case 1:
・
・
・
#ifdef RGBLIGHT_ENABLE
		rgblight_enable();	//Efficacité
		rgblight_setrgb(0xff,0x00,0x00);	//← Ce.
#endif
        break;

Si vous donnez un réglage de couleur à l'argument de la fonction rgblight_setrgb, la LED arrière changera certainement. Cependant, il y a deux problèmes.

  1. La couleur remplit les 30 LED.
  2. Un coussin de lumière supplémentaire est ajouté à la lumière émise par la couche 0.

Ces deux types sont différents, je vais donc essayer de résoudre le second en premier.

Couche 0: pas de lumière

En revenant de la couche émettrice x à la couche 0, je voulais désactiver 0. Je ne pense pas qu'il soit possible de supprimer l'émission de lumière incolore (pas blanche) (car je pense qu'elle est sous tension). Par conséquent, je l'ai désactivé (disable), mais quand il était activé (ʻenable`), il y avait une émission de lumière au moment du changement, et toutes les couleurs (couleur par défaut?) S'allumaient pendant un moment. Je n'avais pas d'autre choix que de le garder activé (ou de faire un compromis immédiatement).

keymap.c


// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
		rgblight_enable();	//Valide ← ce.
#ifdef RGBLIGHT_COLOR_LAYER_0
#endif
};

Ajout du processus d'activation à la fonction existante. Supprimez le traitement qui a déjà été ajouté.

keymap.c


uint32_t layer_state_set_user(uint32_t state) {
・
・
・
//			rgblight_disable();
・
・
・
//        ergodox_right_led_1_on();← Émission de lumière LED à l'avant
・
・
・
//			rgblight_enable();
・
・
・

Je ne sais pas si c'est la voie à suivre, alors faites-le moi savoir. Le but n'est pas de se mettre sous tension lorsqu'il n'émet pas de lumière. Pour le moment, j'ai supprimé l'émission de lumière supplémentaire de l'unique coussin.

Émission lumineuse simultanée

Lorsque vous utilisez la fonction rgblight_setrgb, toutes les LED changent de couleur et émettent de la lumière sans aucune question. Encore une fois, il y a de nouveaux problèmes, mais je m'en fiche (éblouissant). Si vous souhaitez émettre de la lumière individuellement, vous pouvez le résoudre en spécifiant un par un, cela ne nécessite donc pas beaucoup d'effort.

Utilisez simplement la fonction rgblight_setrgb_at et spécifiez la spécification de couleur ci-dessus ainsi que l'endroit où vous voulez émettre de la lumière. Il est à noter que la séquence commence à partir du 0 car c'est un langage C. Si vous avez un tableau appelé tmp [5], spécifiez tmp [0] pour définir la valeur au début. Le 5e maximum est «tmp [4]».

Puisqu'il y a 15 LED d'un côté cette fois, s'il y a une disposition de «LED [15]», l'extrémité sera «LED [0]» et l'extrémité opposée sera «LED [14]».

Pour le moment, il a été évité que les 30 LED soient remplies avec un type de couleur spécifiée.

Émission de couleur unique (émission individuelle LED)

Bref, je voulais faire ça pour le moment. Tout d'abord, du résultat ...

個別LED20180831.jpg

La face avant de la photo est la partie gauche et la face arrière est la partie droite. Sur le côté gauche, l'extrémité droite à l'état inversé est «LED [0]». Sur le côté droit, l'extrémité gauche à l'état inversé est «LED [0]». Le fait est que les deux côtés deviennent «LED [0]» lorsqu'ils sont placés, et la valeur augmente à mesure qu'elle entre à l'intérieur.

Main gauche (LED [0] [1] [2] ~ [12] [13] [14]) Main droite (LED [14] [13] [12] ~ [2] [1] [0])

Dans ce qui précède, je dis «pour le moment» parce que d'autres problèmes n'ont pas été résolus.

  1. Je ne peux pas réduire la quantité de lumière ⇒ [Résolu en utilisant HSV au lieu de RVB](https://qiita.com/chesscommands/items/5cbd92e61b96ffaa0991#%E5%85%89%E9%87%8F%E8%AA% BF% E6% 95% B4 "Comment régler la luminosité de l'éclairage LED de l'ErgoDox EZ") Quant à la LED avant, l'intensité lumineuse était affaiblie comme au début, mais je ne sais pas comment le faire à l'arrière.

  2. La gauche et la droite ne peuvent pas être séparées. Même s'il s'agit d'un type séparé gauche et droit, il ne peut pas être éclairé uniquement sur le côté droit ou uniquement sur le côté gauche.

Je suis sûr qu'il existe un moyen de le faire, mais à moins d'avoir beaucoup de connaissances en programmation et de suivre les programmes existants, vous ne pourrez pas le résoudre. Il n'y a eu aucun commentaire sur Internet. Est-ce naturel de pouvoir le faire?

Le programme dans l'image ci-dessus est placé ci-dessous (espérons-le utile).

keymap.c


	case 1:
・
・
・
#ifdef RGBLIGHT_ENABLE
			rgblight_setrgb_red_at(0);
			rgblight_setrgb_at( 255, 0, 255,1);
			rgblight_sethsv_turquoise_at( 2 );
			rgblight_setrgb_at( 255, 255, 0, 3);
			rgblight_setrgb_at( 255, 0, 255, 4);
			rgblight_setrgb_at( 0, 255, 255,5);
			rgblight_setrgb_at( 255, 255, 255,6);
			rgblight_setrgb_at(0x00,0x00,0xff,7);
			rgblight_setrgb_at(0x00,0x00,0x00,8);
			rgblight_setrgb_at(0x00,0x0f,0x00,9);
			rgblight_setrgb_at(0x00,0x00,0x00,10);
			rgblight_setrgb_at(0x00,0x00,0x00,11);
			rgblight_setrgb_at(0x00,0x00,0x00,12);
			rgblight_setrgb_at(0x00,0x00,0x00,13);
			rgblight_setrgb_yellow_at(14);
#endif
・
・
・

Spécification de couleur

Les tracas de la spécification des couleurs auxquels tout le monde pensera. "0x00, 0x00, 0x00" Donc, il est plus facile de se tromper que de changer la couleur une par une. Par conséquent, il semble pratique d'utiliser les couleurs préparées. (Même si vous spécifiez une couleur délicate, vous ne pourrez pas l'identifier à l'œil nu ...) Répertoire de clonage \ github_repository20180604 \ qmk_firmware \ quantum

rgblight_list.h



/*                            SET RGB List                            */
#define rgblight_setrgb_white()       rgblight_setrgb (0xFF, 0xFF, 0xFF)
#define rgblight_setrgb_red()         rgblight_setrgb (0xFF, 0x00, 0x00)
#define rgblight_setrgb_coral()       rgblight_setrgb (0xFF, 0x7C, 0x4D)
#define rgblight_setrgb_orange()      rgblight_setrgb (0xFF, 0x80, 0x00)
#define rgblight_setrgb_goldenrod()   rgblight_setrgb (0xD9, 0xA5, 0x21)
#define rgblight_setrgb_gold()        rgblight_setrgb (0xFF, 0xD9, 0x00)
#define rgblight_setrgb_yellow()      rgblight_setrgb (0xFF, 0xFF, 0x00)
#define rgblight_setrgb_chartreuse()  rgblight_setrgb (0x80, 0xFF, 0x00)
#define rgblight_setrgb_green()       rgblight_setrgb (0x00, 0xFF, 0x00)
#define rgblight_setrgb_springgreen() rgblight_setrgb (0x00, 0xFF, 0x80)
#define rgblight_setrgb_turquoise()   rgblight_setrgb (0x47, 0x6E, 0x6A)
#define rgblight_setrgb_teal()        rgblight_setrgb (0x00, 0x80, 0x80)
#define rgblight_setrgb_cyan()        rgblight_setrgb (0x00, 0xFF, 0xFF)
#define rgblight_setrgb_azure()       rgblight_setrgb (0x99, 0xf5, 0xFF)
#define rgblight_setrgb_blue()        rgblight_setrgb (0x00, 0x00, 0xFF)
#define rgblight_setrgb_purple()      rgblight_setrgb (0x7A, 0x00, 0xFF)
#define rgblight_setrgb_magenta()     rgblight_setrgb (0xFF, 0x00, 0xFF)
#define rgblight_setrgb_pink()        rgblight_setrgb (0xFF, 0x80, 0xBF)

/*                            SET RGB List                            */
#define rgblight_setrgb_white_at(at)       rgblight_setrgb_at (0xFF, 0xFF, 0xFF, at)
#define rgblight_setrgb_red_at(at)         rgblight_setrgb_at (0xFF, 0x00, 0x00, at)
#define rgblight_setrgb_coral_at(at)       rgblight_setrgb_at (0xFF, 0x7C, 0x4D, at)
#define rgblight_setrgb_orange_at(at)      rgblight_setrgb_at (0xFF, 0x80, 0x00, at)
#define rgblight_setrgb_goldenrod_at(at)   rgblight_setrgb_at (0xD9, 0xA5, 0x21, at)
#define rgblight_setrgb_gold_at(at)        rgblight_setrgb_at (0xFF, 0xD9, 0x00, at)
#define rgblight_setrgb_yellow_at(at)      rgblight_setrgb_at (0xFF, 0xFF, 0x00, at)
#define rgblight_setrgb_chartreuse_at(at)  rgblight_setrgb_at (0x80, 0xFF, 0x00, at)
#define rgblight_setrgb_green_at(at)       rgblight_setrgb_at (0x00, 0xFF, 0x00, at)
#define rgblight_setrgb_springgreen_at(at) rgblight_setrgb_at (0x00, 0xFF, 0x80, at)
#define rgblight_setrgb_turquoise_at(at)   rgblight_setrgb_at (0x47, 0x6E, 0x6A, at)
#define rgblight_setrgb_teal_at(at)        rgblight_setrgb_at (0x00, 0x80, 0x80, at)
#define rgblight_setrgb_cyan_at(at)        rgblight_setrgb_at (0x00, 0xFF, 0xFF, at)
#define rgblight_setrgb_azure_at(at)       rgblight_setrgb_at (0x99, 0xf5, 0xFF, at)
#define rgblight_setrgb_blue_at(at)        rgblight_setrgb_at (0x00, 0x00, 0xFF, at)
#define rgblight_setrgb_purple_at(at)      rgblight_setrgb_at (0x7A, 0x00, 0xFF, at)
#define rgblight_setrgb_magenta_at(at)     rgblight_setrgb_at (0xFF, 0x00, 0xFF, at)
#define rgblight_setrgb_pink_at(at)        rgblight_setrgb_at (0xFF, 0x80, 0xBF, at)

Dans le cas de rgblight_setrgb_ ~ ~ ~, c'est la même chose que comment utiliser [Utilisez la fonction "rgblight_setrgb" ci-dessus](#Emission de lumière simple, émission de lumière simultanée de la même couleur). Remplacez rgblight_setrgb (0xff, 0x00, 0x00); par rgblight_setrgb_red ();.

Dans le cas de rgblight_setrgb_ ~ ~ ~ _at, c'est la même chose que comment utiliser [Utilisez la fonction" rgblight_setrgb_at "ci-dessus](# émission monochromatique conduit émission individuelle). Remplacez rgblight_setrgb_at (255, 255, 0, 3); par rgblight_setrgb_yellow_at (3);.

(J'ai l'impression que les termes ne sont pas unifiés ...)

Bonus (modèle d'émission de lumière)

Il existe une fonction rgblight_mode, et il existe plusieurs modèles tels que l'émission de lumière uniquement pour l'éclairage et l'émission de lumière avec dynamique. Il semble qu'il existe jusqu'à 36 types, mais malheureusement ErgoDoxEZ n'a pu confirmer que 7 à 8 types. Je ne sais pas parce que je ne l'ai pas étudié en détail, mais après le 9, il semblait n'émettre que la lumière préparée.

Le modèle d'émission de lumière est dans le fichier suivant. Répertoire de clonage \ github_repository20180604 \ qmk_firmware \ quantum

rgblight.c


void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
・
・
・
  if (rgblight_config.mode == 1) {
    #ifdef RGBLIGHT_ANIMATIONS
      rgblight_timer_disable();
    #endif
  } else if ((rgblight_config.mode >= 2 && rgblight_config.mode <= 24) ||
	     rgblight_config.mode == 35 || rgblight_config.mode == 36) {
    // MODE 2-5, breathing
    // MODE 6-8, rainbow mood
    // MODE 9-14, rainbow swirl
    // MODE 15-20, snake
    // MODE 21-23, knight
    // MODE 24, xmas
    // MODE 35  RGB test
    // MODE 36, alterating
・
・
・
}

En regardant cela, il semble qu'il y ait «respiration» et «humeur arc-en-ciel». Il semble y avoir un programme préparé pour ErgoDoxEZ, mais je n'ai pas pu le retrouver.

L'utilisation est la même, mais ...

keymap.c


	case 1:
・
・
・
#ifdef RGBLIGHT_ENABLE
			rgblight_setrgb_red_at(0);
			rgblight_mode(2);	//← Ce.
#endif
・
・
・
	case 2:
・
・
・
#ifdef RGBLIGHT_ENABLE
			rgblight_setrgb_yellow_at(0);
			rgblight_mode(5);	//← Ce.
#endif
・
・
・
	case 3:

Création d'animation personnelle

Questions about RGB Matrix and creating my own animations. Il semble que vous deviez mettre rgb_matrix_user.inc dans le répertoire courant et inclure le fichier d'en-tête. Je ne sais pas de quoi vous parlez, mais ce sont probablement des informations utiles pour ceux qui sont particuliers à ce sujet.

Objectif lointain

La quantité de lumière sur la LED avant peut être ajustée. Par conséquent, à l'avenir, j'aimerais découvrir le mécanisme qui change la quantité de lumière de la LED à l'arrière. Vous pouvez changer la couleur, mais vous ne pouvez pas changer l'intensité de la lumière.

Et je veux déplacer la couleur au serpent ou à Noël tout en changeant progressivement l'intensité lumineuse de LED [0] à LED [14] d'une seule main. Bien que la priorité soit faible.

Objectifs plus éloignés

Cette fois, il n'émettait de la lumière que lors du changement de couche. Je veux le faire briller lorsque la touche CapsLock est enfoncée.

Chasser le code source existant

Quels sont les trois types suivants!?

Qu'est-ce que "EEPROM"?

Résumé

J'ai essayé d'allumer la LED en tâtonnant sans le savoir bien. Je ne comprends pas le principe de briller, mais on peut considérer que le but a été atteint parce qu'il a brillé. Par conséquent, j'ai gagné cette fois ぉ ぉ ぉ ぉ ぉ ぉ. Je continuerai de donner la priorité à l'expérience plutôt qu'aux études. Tant que je suis un être humain, il est impossible d'acquérir de l'expérience, mais je déteste étudier, alors je deviens une brute de chien et j'essaye de faire de mon mieux comme un chien ou une vache.

MechanicalKeyboards J'ai acheté ErgoDox EZ comme connexion jusqu'à ce que HHKB publie le type séparé gauche et droit, mais j'ai commencé à penser que je pourrais commencer à créer le mien ... The ‘Not So MiniDox’ Handwire : MechanicalKeyboards Défi pour créer un clavier self-made open source "Iris" Enregistrement d'un clavier auto-fabriqué inexpérimenté assemblant le type séparé gauche et droit "Orthodox" Store Keebio Clavier domestique? Kit clavier Helix

Vous le vendez partout. ErgoDox EZ | Clavier de conception Ergo de type Split "ErgoDox Easy"

c'est tout.

Recommended Posts

Je veux faire briller l'éclairage LED de l'ErgoDox EZ, mais dites-moi ce qu'est la LED en premier lieu
Je veux rendre le type de dictionnaire dans la liste unique
Notez ce que vous voulez faire à l'avenir avec Razpai
La ventilation est importante. Ce que j'ai fait pour garder une trace de la concentration de C02 dans la pièce
Je veux faire de la deuxième ligne le nom de la colonne dans pandas
Je veux connaître la population de chaque pays du monde.
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Je souhaite trier une liste dans l'ordre des autres listes
Je souhaite laisser une commande arbitraire dans l'historique des commandes de Shell
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
Je souhaite visualiser l'état des transferts de la J League 2020, que dois-je faire?
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
Je souhaite stocker les résultats de% time, %% time, etc. dans un objet (variable)
Je souhaite personnaliser l'apparence de zabbix
Je veux afficher la progression en Python!
La première étape pour ceux qui sont amateurs de statistiques mais qui souhaitent implémenter des modèles d'apprentissage automatique en Python
L'arrière-plan des caractères de l'image texte est surexposé pour faciliter la lecture.
Je veux commencer avec le noyau Linux, quelle est la structure de la tête de liste?
Que faire si la barre de progression n'est pas affichée dans tqdm de python
[First data science ⑥] J'ai essayé de visualiser le prix du marché des restaurants à Tokyo
Je veux grep le résultat de l'exécution de strace
Je veux faire défiler la table de décalage Django, mais ...
Linux est quelque chose comme ça en premier lieu
Je veux bien comprendre les bases de Bokeh
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Je souhaite augmenter la sécurité de la connexion SSH
[Pour les débutants] Je souhaite expliquer le nombre d’apprentissage d’une manière facile à comprendre.
Je veux voir le graphique en 3D! Je peux réaliser un tel rêve.
J'étais en charge de la maintenance du script Fabric, mais je ne sais pas.> <À ceux qui
[Python] Le statut de chaque préfecture du nouveau virus corona n'est publié qu'en PDF, mais j'ai essayé de le gratter sans le télécharger.
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
Je veux déterminer l'authenticité d'un élément du tableau numpy
Je veux connaître la nature de Python et pip
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je veux aligner les nombres valides dans le tableau Numpy
Je veux connaître la légende du monde des technologies informatiques
Je veux ajouter un joli complément à input () en python
Je ne voulais pas écrire la clé AWS dans le programme
[Twitter] Je veux faire des tweets téléchargés (de mon compte) dans un beau CSV
Rapport du site. Ce que je pense est nécessaire pour utiliser l'IA / IoT dans l'industrie manufacturière
Un commentaire que j'ai vu sur Google+ était: "Y a-t-il un moyen simple de savoir quel élément numérique d'une liste est maximum / minimum en Python?" La première ligne que j'ai trouvée était le code de la première ligne, mais la deuxième ligne est-elle meilleure?