Cet article s'adresse à ceux qui souhaitent travailler avec ev3 en Java. Cette fois, je souhaite effectuer diverses opérations à l'aide du bouton de blocage intelligent.
◯ ev3 (réservoir) ◯ PC (code VS) ◯ bluetooth ◯ microSD ◯ Documentation API (Il est recommandé de continuer en regardant ceci.)
◯ C'est un programme qui émet un son lorsque vous appuyez sur le bouton supérieur et met fin à la boucle lorsque vous appuyez sur le bouton droit.
button00.java
import lejos.hardware.Button;
import lejos.hardware.Sound;
public class Button00
{
public static void main(String[] args)
{
while(true) {
//Si le bouton droit est enfoncé
if(Button.getButtons() == 8) {
//Traitement de la boucle de fin
break;
//Si le bouton supérieur est enfoncé
}else if(Button.getButtons() == 1) {
//Faire un son
Sound.beep();
}
}
}
}
** Point **: Classe Button
** Point **: type de bouton Les boutons sont associés à des nombres.
・ Bouton supérieur ID_UP: 1 ・ Bouton inférieur ID_DOWN: 4 ・ Bouton droit ID_RIGHT: 8 ・ Bouton gauche ID_LEFT: 16 ・ Bouton central ID_ENTER: 2 ・ Bouton d'échappement ID_ESCAPE: 32
Détails: valeurs-constantes
◯ Le moteur tournera lorsque n'importe quel bouton est enfoncé. Cependant, si le bouton enfoncé est un bouton d'échappement, le programme se terminera.
button01.java
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
import lejos.hardware.Button;
public class Button01
{
public static final RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
public static void main(String[] args)
{
while(true) {
//Si un bouton est enfoncé
Button.waitForAnyPress();
l_a.forward();
//Si le bouton est enfoncé et qu'il s'agit d'un bouton d'échappement
if (Button.waitForAnyPress() == Button.ID_ESCAPE) {
//Quitter le programme
System.exit(0);
}
}
}
}
◯ C'est un programme qui émet un son lorsque vous appuyez et relâchez le bouton.
button02.java
import lejos.hardware.Button;
import lejos.hardware.Sound;
public class Button02
{
public static void main(String[] args)
{
//Si un bouton est enfoncé
Button.waitForAnyPress();
//Si quelque chose arrive
Button.waitForAnyEvent();
Sound.beep();
}
}
◯ Ce programme met fin au programme si vous maintenez le bouton droit enfoncé pendant 3 secondes ou plus, et émet un son si vous relâchez le bouton droit dans les 3 secondes.
button03.java
import lejos.hardware.Button;
import lejos.hardware.Sound;
public class Button03
{
public static void main(String[] args)
{
while(true) {
//Si vous appuyez sur le bouton droit
if(Button.waitForAnyPress() == Button.ID_RIGHT) {
//Si vous relâchez le bouton dans les 3 secondes
if(Button.waitForAnyEvent(3000) != 0) {
Sound.buzz();
//Si vous maintenez le bouton enfoncé pendant plus de 3 secondes
}else {
System.exit(0);
}
}
}
}
}
◯ C'est un programme qui effectue différentes opérations lorsque chaque touche est enfoncée.
import lejos.hardware.Button;
import lejos.hardware.Sound;
public class Key00
{
public static void main(String[] args)
{
while(true) {
//Si vous appuyez sur le bouton ci-dessus
if(Button.UP.isDown()) {
Sound.beep();
//Si vous appuyez sur le bouton à droite
}else if(Button.RIGHT.isDown()) {
Sound.buzz();
//Si vous appuyez sur le bouton d'échappement
}else if(Button.ESCAPE.isDown()) {
System.exit(0);
}
}
}
}
◯ Point: ** Interface clé **
◯ Créez une classe pour implémenter la méthode dans l'interface KeyListener afin qu'elle puisse être appelée lors d'un événement.
Plus précisément, il ne doit tourner vers l'avant que lorsque le bouton supérieur est enfoncé et ne doit tourner négativement que lorsque le bouton inférieur est enfoncé. Appuyez ensuite sur la touche d'échappement pour quitter le programme.
import lejos.hardware.Button;
import lejos.hardware.Key;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
import lejos.hardware.KeyListener;
public class Key01 {
private static RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
private static RegulatedMotor l_b = new EV3LargeRegulatedMotor(MotorPort.B);
public static void main(String[] args) {
//Permet aux méthodes d'être appelées lorsqu'un événement se produit
Button.UP.addKeyListener(new ButtonEvent(l_a,l_b));
Button.DOWN.addKeyListener(new ButtonEvent(l_a,l_b));
Button.ESCAPE.addKeyListener(new ButtonEvent(l_a,l_b));
while (true) {}
}
}
class ButtonEvent implements KeyListener{ //Créer une classe pour implémenter la gestion des événements
//Déclarer une variable
private RegulatedMotor lmotor_a;
private RegulatedMotor lmotor_b;
//Définir le constructeur
public ButtonEvent(RegulatedMotor Motor_A,RegulatedMotor Motor_B) {
lmotor_a = Motor_A;
lmotor_b = Motor_B;
}
//Personnalisez la méthode
@Override
public void keyPressed(Key k) { //Méthode appelée lorsque le bouton est enfoncé
switch (k.getId()){
case Button.ID_UP:
lmotor_a.forward();
lmotor_b.forward();
break;
case Button.ID_DOWN:
lmotor_a.backward();
lmotor_b.backward();
break;
case Button.ID_ESCAPE:
lmotor_a.stop(true);
lmotor_b.stop();
System.exit(0);
}
}
//Personnalisez la méthode
@Override
public void keyReleased(Key k) { //Méthode appelée lorsque le bouton est relâché
switch (k.getId()){
case Button.ID_UP:
lmotor_a.stop(true);
lmotor_b.stop();
break;
case Button.ID_DOWN:
lmotor_a.stop(true);
lmotor_b.stop();
break;
}
}
}
◯ Point: instruction switch-case Référence: Résumé de l'utilisation de l'instruction switch-case
Merci pour la lecture! !! La prochaine fois, j'aimerais écrire sur les capteurs tactiles!
Je veux faire un meilleur article ◯ C'est plus facile à comprendre ◯ C'est difficile à comprendre ◯ C'est faux ◯ Je veux que vous expliquiez plus ici Nous apprécions vos opinions et suggestions.