Drone autonome que vous avez déjà dans votre poche ! (3 / 6 étapes)

Étape 3: Logiciel - analyse

Dans cette étape, nous voulons analyser si nous sommes capables de :
1) lire le bâton position du récepteur
3) servo de contrôle
2) commande ESC

Pour cela proposer nous allons utiliser la configuration de test mentionnée à la page 2. Les composants sont :
1) IOIO android avec écran de la page 2.
2) récepteur connecté à broches numériques 3-7
3) ESC relié à la broche 10 bornes
4) servo connecté à la broche 11 terminal
Mon ESC comprend BEC, cela signifie que vous pouvez fournir IOIO Conseil formulaire lié ESC. Dans ce cas, lumper noir sur notre bouclier sera placé sur le côté gauche, broche de VIN à bord IOIO sera connecté aux bornes de servo (ESC fournira Conseil IOIO).

Pour le développement de logiciel, vous devrez installer l’environnement de développement Android standard et comprennent des bibliothèques de IOIO à votre projet. Vous pouvez trouver le tutoriel ici : https://www.sparkfun.com/tutorials/280 et doc umentation pour projet Android IOIO ici : https://github.com/ytai/ioio/wiki

Notre application de test ai gui simple, nous aurons besoin :
2 slider x servo contrôle et ESC (contrôle broches PWM 10, 11)
5 x montrant les valeurs étiquette du récepteur (largeur d’impulsion de roseaux sur les broches 3-7)

IOIO Android offre entrée d’impulsion. Ce type d’entrée vous permet de lire la largeur d’impulsion entrante, donc son idéal pour la lecture des impulsions récepteur de forme. IOIO ont 6 disponible ones (3 simple précision, 3 double précision) vous ne pouvez pas utiliser seul 6 ou 6 double précision, vous devez diviser. Nous utiliserons PWM pour conduire ces et Servos. Vous pouvez trouver des fonctions pour chaque individu pin ici https://github.com/ytai/ioio/wiki/Getting-To-Know-The-Board

Cette application de test ont relais simple code :

SerializableAttribute public class MainActivity extends IOIOActivity {}
privé TextView ch1, ch2, ch3, ch4 ch5 ;
privé SeekBar seekBar1, seekBar2 ;
private int seekBar1_val, seekBar2_val ;

protected void onCreate(Bundle savedInstanceState) {}
super.onCreate(savedInstanceState) ;
setContentView(R.layout.activity_main) ;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) ;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) ;

CH1=(TextView)findViewById(R.ID.ch1_text) ;
CH2=(TextView)findViewById(R.ID.ch2_text) ;
CH3=(TextView)findViewById(R.ID.ch3_text) ;
CH4=(TextView)findViewById(R.ID.ch4_text) ;
CH5=(TextView)findViewById(R.ID.ch5_text) ;

seekBar1 = findViewById(R.id.seekBar1) (SeekBar) ;
seekBar2 = findViewById(R.id.seekBar2) (SeekBar) ;

seekBar1_val = 1000 ;
seekBar2_val = 1500 ;

seekBar1.setMax(1000) ;
seekBar2.setMax(1000) ;

seekBar2.setProgress(500) ;

seekBar1.setOnSeekBarChangeListener (new OnSeekBarChangeListener() {}

{} public void onStopTrackingTouch (SeekBar seekBar)
}

{} public void onStartTrackingTouch (SeekBar seekBar)
}

{} public onProgressChanged Sub (SeekBar seekBar, progrès int, boolean fromUser)
seekBar1_val = progression + 1000 ;
}
});

seekBar2.setOnSeekBarChangeListener (new OnSeekBarChangeListener() {}

{} public void onStopTrackingTouch (SeekBar seekBar)
}

{} public void onStartTrackingTouch (SeekBar seekBar)
}

{} public onProgressChanged Sub (SeekBar seekBar, progrès int, boolean fromUser)
seekBar2_val = progression + 1000 ;
}
});
}

{} public boolean onCreateOptionsMenu (menu Menu)
Gonfler le menu ; Cela ajoute des éléments à la barre d’action si elle est présente.
getMenuInflater () .inflate (menu, R.menu.main) ;
retourne la valeur true ;
}

classe du boucleur étend BaseIOIOLooper {}
Private PulseInput pulse_ch1 ;
Private PulseInput pulse_ch2 ;
Private PulseInput pulse_ch3 ;
Private PulseInput pulse_ch4 ;
Private PulseInput pulse_ch5 ;

privé PwmOutput M1 ;
privé PwmOutput Servo ;

public Float ch1_val ;
public Float ch2_val ;
public Float ch3_val ;
public Float ch4_val ;
public Float ch5_val ;

Private DigitalOutput led_ ;

protected void setup() lève {ConnectionLostException}
pulse_ch1 = ioio_.openPulseInput (3, PulseMode.POSITIVE) ;
pulse_ch2 = ioio_.openPulseInput (4, PulseMode.POSITIVE) ;
pulse_ch3 = ioio_.openPulseInput (5, PulseMode.POSITIVE) ;
pulse_ch4 = ioio_.openPulseInput (new DigitalInput.Spec(6),
PulseInput.ClockRate.RATE_250KHz,
PulseInput.PulseMode.POSITIVE,
faux) ;
pulse_ch5 = ioio_.openPulseInput (new DigitalInput.Spec(7),
PulseInput.ClockRate.RATE_250KHz,
PulseInput.PulseMode.POSITIVE,
faux) ;

M1 = ioio_.openPwmOutput (10, 50) ;
Servo = ioio_.openPwmOutput (11, 50) ;


led_ = ioio_.openDigitalOutput (0, true) ;
}

public void loop() lève {ConnectionLostException}
led_.Write(false) ;
try {}
ch1_val = pulse_ch1.getDuration() * 1000 ;
ch2_val = pulse_ch2.getDuration() * 1000 ;
ch3_val = pulse_ch3.getDuration() * 1000 ;
ch4_val = pulse_ch4.getDuration() * 1000 ;
ch5_val = pulse_ch5.getDuration() * 1000 ;

M1.setPulseWidth(seekBar1_val) ;
Servo.setPulseWidth(seekBar2_val) ;

Thread.Sleep(100) ;
} catch (InterruptedException e) {}
}
runOnUiThread (new Runnable() {}

public void run() {}
CH1.SetText (String.format ("%.2f", ch1_val)) ;
CH2.SetText (String.format ("%.2f", ch2_val)) ;
CH3.SetText (String.format ("%.2f", ch3_val)) ;
CH4.SetText (String.format ("%.2f", ch4_val)) ;
CH5.SetText (String.format ("%.2f", ch5_val)) ;
}
});
}
}

protected IOIOLooper createIOIOLooper() {}
retour de nouveau Looper() ;
}

}

Notre analyse s’est bien passé, que nous pouvons :
1) lire le bâton position de récepteur via les entrées numériques
3) servo de contrôle
2) commande ESC

Test vidéo :

Articles Liés

Torréfaction de café avec des trucs que vous avez déjà

Torréfaction de café avec des trucs que vous avez déjà

Dans un premier temps, après lecture sur différentes méthodes, de torréfaction du café j'ai décidé sur le populaire Popcornmaker Whirly-Pop pour mon four de grillage. Mais en raison des températures élevées de ce processus, la fenêtre en plastique de
Portraits LEGO Mosaïque verticale - tout ce que vous avez besoin de savoir !

Portraits LEGO Mosaïque verticale - tout ce que vous avez besoin de savoir !

Ce qui rend une image mosaïque de pièces LEGO n'est pas nouveau--en fait, beaucoup de célèbres maîtres constructeurs LEGO ont fait toutes sortes d'images de la mosaïque, les deux plat/horizontal aussi bien que verticalement. Mosaïque horizontale--ou
Distributrice de Minecraft (que vous avez à payer pour obtenir des trucs)

Distributrice de Minecraft (que vous avez à payer pour obtenir des trucs)

J'ai voulu faire un distributeur automatique que vous avez eu à payer pour obtenir ce que vous voulez. Alors avec l'aide de mon frère, j'ai fait cela. Appuyez sur le bouton que rien ne se passe. Mais si vous vous mettez paiement et appuyer sur le bou
Faire un condensateur avec des trucs que vous avez déjà (comment ça marche + calculs)

Faire un condensateur avec des trucs que vous avez déjà (comment ça marche + calculs)

condensateurs sont en électronique tout autour de nous. En conséquence, il est important de comprendre comment ils fonctionnent, surtout les plus simples : le condensateur à plaques parallèles. Dans ce Instructable, je serai vous montrant comment fai
Faire vos propres bobines pour broderie ou crochet fil avec seulement ce que vous avez autour de la maison

Faire vos propres bobines pour broderie ou crochet fil avec seulement ce que vous avez autour de la maison

j'ai broder et crochet beaucoup. Construire et vendre des kippot (couvre-chefs juives) et des ceintures et des décorations murales... et j'ai donc 1 million de différentes couleurs de fil autour. Mais ils s'emmêlent si j'essaie de couper un morceau d
Tout ce que vous avez toujours voulu savoir sur carton

Tout ce que vous avez toujours voulu savoir sur carton

Tous les jours tous les jours a été invité par Autodesk à prendre part à l'édition de ce Festival de prototypage rue marché 2015 de SF, un événement de 3 jours visant à imaginer l'avenir de... bien de Market Street.En savoir plus sur le projet ici.Le
Faire des timbres avec condescendance ! (Avec des trucs que vous avez déjà)

Faire des timbres avec condescendance ! (Avec des trucs que vous avez déjà)

Timbres sont une addition merveilleuse au milieu de travail. Cependant, avez-vous jamais souhaité que vous pourriez envoyer un message plus créatif que ce vieux message « Approuvé » ? Un timbre avec condescendance devrait mettre votre collègue de tra
Tableau blanc de poche et garnir avec des trucs que vous avez déjà (pas cher et facile!)

Tableau blanc de poche et garnir avec des trucs que vous avez déjà (pas cher et facile!)

Il s'agit d'un autre SYAH (Stuff vous avez déjà) instructable. dans ce document, je vais montrer ma conception d'un tableau blanc rapide et facile que vous pouvez faire avec des trucs vous déjà avez, et il vient même avec une couverture qui agit comm
Stocker des infos sur un stylo avec des trucs que vous avez déjà : rapide et facile

Stocker des infos sur un stylo avec des trucs que vous avez déjà : rapide et facile

mise à jour : J'ai fait une meilleure version de ceci à l'aide d'un crayon. Vous pouvez le vérifier ici.Il faut parfois que peu d'informations que vous avez juste besoin d'obtenir de véritable rapide, sans avoir à parcourir les pages de documents ou
Projets de 30 secondes pour améliorer votre chambre avec des trucs que vous avez déjà

Projets de 30 secondes pour améliorer votre chambre avec des trucs que vous avez déjà

tout le monde veut leur rendre la vie meilleure et plus facile, non ? Ce Instructable a pour but de le faire avec ces projets minis rapide et facile que vous pouvez faire avec des trucs que vous avez déjà à la maison, comme faire un cintre poubelle,
Les circuits sont amusant projet (la chose que vous avez obtenu à l’Arsenal projet Trick or Treat)

Les circuits sont amusant projet (la chose que vous avez obtenu à l’Arsenal projet Trick or Treat)

Ce projet est destiné à illustrer les bases de la création d'un circuit électrique.Matériaux :Star ou feuille2 morceaux de ruban de cuivre1 LEDpile 1 boutonCiseauxAvant de commencer, regardez la LED et remarquez qu'il y a une jambe courte et une long
Mon parti-In-A-Box. Un véritable bricolage de choses que vous avez.

Mon parti-In-A-Box. Un véritable bricolage de choses que vous avez.

Ce instructablesis dédié à tous les amateurs de bricolage comme une source d'inspiration, donc vous pourriez prendre des idées et faire des trucs que vous avez dans votre maison.Avant de vous montrer que le projet permettez-moi de vous présenter mon
Comment prendre des photos grand Angle à l’aide des équipements simples, que vous avez déjà !

Comment prendre des photos grand Angle à l’aide des équipements simples, que vous avez déjà !

Photos grand angle ou plans généraux peuvent rendre vos vidéos plus unique et amusant à regarder. Et prendre des photos grand angle est plus facile que vous pensez avec ce truc simple ! Nous pouvons facilement obtenir un bon résultat à l'aide de l'éq
BRICOLAGE à lèvres - avec des matériaux que vous avez déjà !

BRICOLAGE à lèvres - avec des matériaux que vous avez déjà !

Ce rouge à lèvres est très facile à faire et ne nécessite que 3 ingrédients !Il est super pigmenté et a l'apparence du vrai rouge à lèvres. Je suis venu avec cette recette moi-même parce que je n'avais pas certaines matières (huile de jojoba, huile d