Copain de ski : Le manteau qui vous apprend à skier. (4 / 6 étapes)

Étape 4: Le Code

Vous êtes soit deux types de personnes :

1. les programmeurs qui veulent réellement comprendre le code.

2. les gens qui ne connaissent pas un coup de langue de codage et juste voulez que le fichier source brute.

Bonnes nouvelles pour vous, cette page couvre les deux !

Veuillez noter que ce code est sous licence GPL v3.

Pour ceux d'entre vous qui veulent juste le fichier source brute, il est donc sur Github :

** Mais avant de cliquer sur ce lien, s’il vous plaît faites défiler et lire le code settings.* *

Intégralité du fichier

Pour ceux d'entre vous qui veulent comprendre le code, Merci pour l’appréciation du temps que j’ai passé l’écrire ! Nous allons passer directement au :

Tout d’abord, nous avons besoin d’inclure ces trois bibliothèques. Confus de ce que sont les deux derniers ? C’est bien. Ils sont apparus dans le précédent tutoriel de couture que j’ai lié. Si vous savez déjà comment ajouter Arduino bibliothèques à l’IDE, cependant, voici le lien direct vers les référentiels Github :

Bibliothèque de Adafruit capteur

Adafruit LSM303 bibliothèque

Ensuite, je vais aller sur les fonctions que j’utilise dans le code :

Flash clignote ensemble les deux LED.

autre fait alterner les deux LED.

cligner des yeux clignote deux LED une fois que.

toDegrees convertit une paire de x et y de lectures magnétiques dans un cap en degrés.

pour cent prend deux nombres et crée un pour cent avec le premier 100 % et la seconde comme la fraction.


LES PARAMÈTRES DE CODE ***

turnTime est le laps de temps qui vous permettent d’estimer qu’il faudrait à l’utilisateur de tourner en millisecondes. Par exemple, vous pourriez diminuer le turnTime pour faciliter l’apprentissage des tours liés vs allonger le temps de tourner pour laisser la place pour des explications sur la forme de ski entre les tours.

ralentissement est essentiellement combien vous voulez que l’utilisateur de ralentir à la fin de chaque tour. Par exemple, définir la valeur sur 2 suppose que l’utilisateur va réduire de moitié leur vitesse avant de tourner. Si vous enseignez l’utilisateur d’entrer dans une pizza progressive, vous pouvez diminuer la valeur de nous allons dire 1.3 afin que l’utilisateur ait à réduire leur vitesse de 1/4 avant de tourner.

maxLearnCount est un nombre de tours que le périphérique utilise pour apprendre le cours avant de commencer à dire à l’utilisateur où faire du ski avec les LED. Ceci est utile si une colline a bords avec des longueurs différentes et vous souhaitez obtenir le temps moyen que nécessaire pour traverser ces différentes longueurs.

skiPercent est le pourcentage de fois que vous voulez le dispositif d’attendre avant de dire à l’utilisateur de ralentir. Par exemple, baisser le pourcentage permet des virages plus progressive, alors que le contraire généralement plus brutal se transforme.

readyTime est la quantité générale de temps vous pensez qu’il faut pour monter et descendre l’ascenseur en millisecondes.

Maintenant nous allons initialiser l’accéléromètre :

Ensuite, nous passerons par le code d’installation. Il y a deux parties.

1. initialiser la LED sur la veste.

2. charger l’accéléromètre. Si elle échoue, juste alterner les LED pour montrer l’échec.

Maintenant pour les différentes variables.

learnCount est utilisée pour garder une trace de combien tourne l’appareil a passé d’apprentissage, s’arrêtant une fois atteint le montant maximal de l’apprentissage des tours énoncées ci-haut.

lastTurn est utilisé pour rappeler la dernière fois un virage s’est produit, permettant de mesurer le temps d’un tour.

lastDir est utilisé pour garder la direction générale et globale de l’utilisateur.

lastAcc est utilisé pour maintenir l’accélération générale globale de l’utilisateur.

dir est un tableau qui contient les deux sens suggérés de chaque tour.

dirTime est le temps moyen nécessaire pour l’utilisateur de la Croix le sentier.

repCourant est utilisée pour garder trace de la direction dans laquelle l’utilisateur doit aller dans.

liftMode est utilisé pour économiser la batterie lorsque vous montez un ascenseur ou un "tapis volant".

Enfin, le code de loop() . Il y a plusieurs parties :

1. lecture/moyenne des données de l’accéléromètre.

Le code prend cinq lectures et leur moyenne pour une meilleure précision.

Il y a 3 variables importantes ici :

magAvg est la direction que l’utilisateur connaît en degrés. Ceci est utilisé pour guider l’utilisateur.

accAvg est l’accélération globale de x et y de l’utilisateur. Cela sert à détecter le moment où l’utilisateur se ralentit.

liftAvg est l’accélération de z globale de l’utilisateur. Cela sert à détecter « lift » mouvement (vers le haut)

2. vérifier si l’utilisateur est le ski vers le bas de la montagne, a dépassé le montant d’apprentissage maximal de tours (maxLearnCount) définie ci-dessus et est le ski alpin.

3. savoir ce que nous savons ci-dessus, vérifiez d’abord si l’utilisateur a terminé un tour basé sur combien de temps il leur a fallu traverser la montagne dans le processus d’apprentissage, donc la variable dirTime . Transférer vers l’autre tour et retard basé sur combien de temps nous pensons que le temps entre les tours est, par conséquent, la variable turnTime .

4. si nous n’avons pas atteint la phase de tournage encore, vérifiez si nous devrions dire à l’utilisateur de ralentir après qu’un certain temps après lorsque l’utilisateur devrait commencer à s’arrêter, d'où la variable skiPercent la valeur ci-dessus. Si pas, alors nous avons besoin guider l’utilisateur dans quelle direction ils devraient aller. Puisque personne n’est parfait, nous leur donnerons 10 degrés de mou de chaque côté.

5. la seule option à gauche quant à ce qui se passe est que nous avons atteint le temps d’indiquer à l’utilisateur de ralentir. Nous ferons cela en alternant les lumières en arrière jusqu'à ce que l’utilisateur a atteint la phase de tournage.

6. la présente instruction else est quant à que si l’utilisateur va descente, signifie que l’utilisateur doit être ascensions à ce stade, donc nous allons mettre l’utilisateur en mode ascenseur afin que nous pouvons économiser de la batterie et puis retarder afin que l’utilisateur a le temps d’arriver sur la moquette de l’ascenseur/magic.

7. la présente instruction else est, quant à, si l’utilisateur est passé de mode, d’apprentissage, ce qui signifie que l’utilisateur doit être en mode d’apprentissage à ce stade. Ceci est important parce que si l’utilisateur prend leur premier apprentissage tourne, nous ne voulons pas gâcher la variable dirTime , parce qu’évidemment leur premier périple à travers le sentier prendra plus de temps car ils ont à gagner de la vitesse. Avec cela, nous allons vérifier d’abord pour s’assurer qu’il s’agit n’est pas le 1er enregistrement de données, car cela signifierait que nous n’aurions données précédentes pour construire. Ensuite nous moyenne sur la direction de l’utilisateur avec leur direction depuis donc nous pouvons obtenir une lecture exacte quant à où nous voulons que l’utilisateur d’aller après le mode d’apprentissage pour cette tournure particulière.

8. afin de détecter les virages, nous attendons jusqu'à ce que l’utilisateur commence à effusion off vitesse jusqu'à ce que nous voulons, c’est pourquoi la ralentissement variable définie ci-dessus. Puis nous allons assigner la direction de l’utilisateur qui s’est passé 1 des 2 directions suggérées nous voulons que l’utilisateur d’aller po (nous avons une direction suggérée pour aller à gauche à travers la montagne et l’autre pour aller à droite à travers). Il faut aussi noter la quantité de temps qu’il a fallu traverser la montagne et qu’écrire dans la variable dirTime .

9. la présente instruction else est quant à si c’est le premier enregistrement de données, ce qui signifie qu’il est, donc nous attribue seulement les données actuelles à leurs variables respectives ainsi que sur l’arceau suivant, nous pouvons commencer en moyenne les données.

10. la présente instruction else est quant à si l’utilisateur est en mode de levée, ce qui signifie qu’ils sont. Pour économiser la batterie, nous avons juste contrôler mouvement vers le bas seulement une fois par seconde et la LED s pour indiquer à l’utilisateur de flash, nous sommes toujours en mode ascenseur.

11. en retardant 50 millisecondes, nous ne pas surcharger le code et économiser la batterie, parce que même en vérifiant lectures toutes les 50 millisecondes, cela équivaut à la lecture de données 20 fois par seconde.

			
          

Articles Liés

Nagelier : le lustre qui vous permet d’obtenir sur le divan nags

Nagelier : le lustre qui vous permet d’obtenir sur le divan nags

ce projet est notre première incursion dans le domaine du mobilier inspiration--des objets ménagers intelligents qui sais pas pour vous et vous encourage à atteindre vos objectifs et être votre meilleur auto. Les capteurs portables comme le Fitbit so
Hacks de sécurité qui vous permet de rester hors de danger

Hacks de sécurité qui vous permet de rester hors de danger

Si vous voyagez à l'étranger seul ou se promènent à travers le terrain de stationnement au travail, vous devriez être prêts pour le pire. Malheureusement, pas tous les gens dans ce monde sont douces, donc on ne sait jamais quand un inconnu sortira de
Je sais ce qui vous fait peur !

Je sais ce qui vous fait peur !

Voici comment faire un masque génial. Le masque est fait entièrement de cruches de lait recyclés. Mon père m'a aidé avec l'idée parce que nous avions levé les masques japonais avant. Alors j'ai décidé de faire un masque de plastique. Puisqu'il s'agit
5 applications d’argent qui vous rémunère pour regarder leurs annonces

5 applications d’argent qui vous rémunère pour regarder leurs annonces

Il semble qu'il y a une application mobile pour presque tout là-bas ces jours-ci. Toutefois, si vous êtes comme la plupart des gens vous pensez que des applications mobiles comme des outils qui vous aideront à faire quelque chose comme recherche orie
Kaddyshack vous apprend : Comment Shuffle (danse)

Kaddyshack vous apprend : Comment Shuffle (danse)

Objectif d'apprentissage (pour les concours de l'enseignement)Cette vidéo est destinée à apprendre aux téléspectateurs à faire un mouvement de danse de base à l'aide d'exercices accessibles et des instructions étape par étape. Les concepts dans cette
Le Guide essentiel pour choisir la lentille qui vous convient

Le Guide essentiel pour choisir la lentille qui vous convient

la difficulté à choisir quel type de lentille à acheter pour ce nouveau reflex ?Confondu par les nombres et les focales ?Eh bien pas plus ! Vous êtes venu au bon endroit.Cette instructable est nécessaire surtout pour les débutants, mais aussi il a co
Un stand d’iphone qui vous fera sourire

Un stand d’iphone qui vous fera sourire

Voici un stand iphone simple et rapide qui a obtenu d'être celui plus cool j'ai vu jusqu'à présent et vous aidera à garder le sourire sur votre visage.
Un fichier batch qui vous donne des informations d’un ami

Un fichier batch qui vous donne des informations d’un ami

tout d'abord, vous avez besoin d'une victime. Demandez-vous si ils aimerez vous voler leurs informations. Ensuite, ouvrez le bloc-notes et préparez-vous à copier et coller.Étape 1: Faire le dossier de lot Copier ce code et collez-le sur une page vide
Des blagues et des farces qui vous rouler sur le sol

Des blagues et des farces qui vous rouler sur le sol

(note de côté je ne suis pas responsable si quelque chose est prise offencive dans une forme de quelconque manière, vous êtes blessés hospitalisés ou lésés , c'est pour la démonstration des fins ipmrotnate. Et je vous remercie pour la lecture)aussi,
Qui vous appelle sur votre téléphone

Qui vous appelle sur votre téléphone

Reverse Phone LookupRechercher nous de Reverse Phone Lookup service téléphonique vous permet de rechercher un numéro de téléphone et vous donne immédiatement le résultat sur le propriétaire de ce numéro de téléphone. Peut-être vous manqué un appel té
Cinq signes qui vous alerter sur un moteur défectueux

Cinq signes qui vous alerter sur un moteur défectueux

Pour un propriétaire de voiture, rien n'est plus affreux que d'avoir un moteur défectueux, et le problème peut s'aggraver si vous ignorez les signes qui donne à votre voiture avant de ventiler. Pas tous les problèmes liés au moteur vous coûtera très
10 choses Fitness vous apprend sur la vie

10 choses Fitness vous apprend sur la vie

afin de profiter de la vie, nous devons profiter du processus de celui-ci et pas tellement sur la destination focus... car une fois que nous arrivons à notre destination, il y a toujours quelque part plus loin, nous voulons atteindre... cette volonté
Laser qui vous aide à lire

Laser qui vous aide à lire

Il s'agit d'une invention, que je suis venu avec pour vous aider à lire parce que je perdais toujours ma place lors de la lecture et il m'a vraiment ennuyeux.Étape 1: première étape : le laser vous aurez besoin d'obtenir le bon type de laser car d'au
Kaddyshack vous apprend : Comment moonwalk

Kaddyshack vous apprend : Comment moonwalk

Objectif d'apprentissage (pour les concours de l'enseignement)Cette vidéo est destinée à apprendre aux téléspectateurs à faire un mouvement de danse de base à l'aide d'exercices accessibles et des instructions étape par étape. Les concepts dans cette