Algorithme de détection de Pitch Arduino (à l’aide de AMDF) (2 / 8 étapes)

Étape 2: Restrictions de la plate-forme

L’Arduino Uno (ATMega328P ou non « P ») et sa Limitation inhérente

L’Arduino est amusants, mais ils sont en mode natif simples dans la mesure où la puissance de calcul. Votre ordinateur est probablement un ordinateur 64 bits, ce qui signifie que vous pouvez effectuer arithmétique sur des nombres binaires 64 bits de long. L’ONU a seulement 8 bits soit un huitième de la largeur de bande plus un écart de fréquence importante (~ 2Ghz à 16mhz) et sans oublier les cœurs et bla bla bla...

Ce qui signifie, qu’utilise un Uno est mathématiquement dans une situation désavantageuse. Manipulation simple port de led et petits moteurs sont assez bonnes pour cette fin, mais les algorithmes qui veulent croquer un tas de chiffres tout en maintenant le bon moment est assez difficile d’obtenir une vitesse et une précision suffisante.

Beaucoup de l’examen Voici les limites spécifiques à l’Arduino Uno et je suis leur analyse comme un exercice de principes d’ingénierie. En tant qu’ingénieur futur (je suis encore au Collège, yahoo), j’ai eu à analyser tous les aspects du problème. Dans mon cas, j’avais déjà compris que 8 bits n’est pas suffisant alors j’ai acheté un Arduino Due donc je peux rester dans la précision natif 32 bits d’un type de données entier (par la poste sur la route). À l’aide d’un outil mathématique tels que Matlab, j’ai été en mesure de trancher cette question avant j’ai même codé sur l’Arduino Uno. Vous pouvez voir des images des tests que j’ai fait sur quelques formes d’onde à l’étape suivante. Mais, j’ai continué sur l’approche de 8 bits pour *** et rire.

Limite de 8 bits

À partir de 0 à 255 sorte de suce. Surtout quand vous faites un opérateur mathématique qui doit rester dans cette limite. Si la précision de votre réelle pour ce genre d’opération tombe réellement de 8 bits à 7 bits afin d’ajouter et de rester dans cette fenêtre de nombres binaires.

Si il n’est pas évident pour vous, c’est trop plein. Dépassement de capacité se produit dans un appareil électronique lorsque vous essayez d’effectuer une opération mathématique qui sort des limites des limites. Ainsi, par exemple, soustrayant -128 128 vous donne (128 + 128) = 256. Boom... algorithme mathématique cassé.

Les types de données codées au-dessus de 8 Bits

Ajouter deux nombres de 8 bits prend un cycle d’instruction en mode natif, tout en ajoutant un entier de 16 bits aura pris pas moins de trois cycles d’enseignement. Cela peut ne pas sembler comme beaucoup comme un cycle est l’inverse de la fréquence de cristal (16Mhz ^ -1) qui représente environ 63ns. Ici se trouve le problème avec la multiplication des cycles d’instruction par 3 ; Au minimum, lorsque vous devez faire des 400 soustractions, 400 ajouts (dans un type de données plus grande jusqu'à 800 cycles de l’enseignement), puis une division (qui prend 200 + instruction cycles) qui est juste une itération d’environ 200 plusieurs itérations... votre vitesse d’horloge relativement lent devient très évident pour vous.

ADC 10 bits de précision

L’ADC sur un Uno a 10 bits de précision, mais compte tenu de la restriction précédente de 7 ou 8 bits, vous savez que vous ne pouvez pas utiliser tout cela ; Ce sera juste une perte de puissance de calcul à utiliser toute la largeur. En outre, à l’aide de analogRead() est juste une dépense inutile de temps. Regarder la manipulation directe de port !

Articles Liés

Commander une carte Arduino à l’aide d’une télécommande infrarouge

Commander une carte Arduino à l’aide d’une télécommande infrarouge

I-IntroductionBonjour à tous, mon nom est Noreddine Kessa, je suis un passionné de l'électronique.  Je me suis amusé ce week-end à jouer avec mon nouveau jouet, Kit Arduino ATmega328 bricolage que j'ai eu sur eBay, et je serais ravi de partager la jo
Application mobile pour surveiller et contrôle Arduino, à l’aide de kito.io plate-forme IOT

Application mobile pour surveiller et contrôle Arduino, à l’aide de kito.io plate-forme IOT

Surveillez et contrôlez votre Arduino depuis votre Mobile App de kito.J'ai développé une plate-forme d'Ito pour aider DIY Makers qui ne vient que pas besoin de connaître de Xcode, Android, JavaScript autrement que savent écrire des Sketches de l'Ardu
Comment lire une carte arduino à l’aide de LabVIEW

Comment lire une carte arduino à l’aide de LabVIEW

Cette vidéo montre comment lire une carte Arduino à l'aide de LabVIEW. LabVIEW possède une excellente interface qui le rend facile à enregistrer des données provenant d'une carte Arduino. Un des défis plus importants lorsque vous utilisez une carte A
Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard

Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard

Remarque : Cette instructable est pour les vieux ENC26J60 Ethershield et ethercard. Si vous avez le WIZ5100 moderne basé Ethernetshield ou un ESP8266 aller visiter mes autres instructable que je mentionne ci-dessousEnviron un an et demi que j'ai publ
DIY aveugles Smart collent Arduino à l’aide de

DIY aveugles Smart collent Arduino à l’aide de

Salut, amis.Comment vas-tu?J'espère que vous êtes bien !Aujourd'hui dans ce instructable nous allons faire un bâton d'aveugle intelligent pour les personnes ayant une déficience visuelle.Avez-vous remarqué les personnes aveugles ?Leur vie est pleine
Détection par capteur Arduino et des flammes de feu

Détection par capteur Arduino et des flammes de feu

Détecteur de flamme est interfacé à arduino pour détecter les flammes. Conduit et buzzer sont interfacées à arduino pour indiquer la flamme.Composants de matériel requis:-1) détecteur (sortie analogique)Arduino 2)Conseil de pain 3)4) LEDAvertisseur s
Tutoriel sur la façon de faire un système de détection de fumée à l’aide d’Intel Galileo Gen2.

Tutoriel sur la façon de faire un système de détection de fumée à l’aide d’Intel Galileo Gen2.

Dans ce projet, nous irons sur comment construire un détecteur de fuméecircuit d'une carte Intel Galileo Gen2 parmi un peu plus d'appareils.Nous allons utiliser le détecteur de fumée MQ2 en l'espèce parce qu'il est judicieux de gaz de fumée et inflam
Horloge binaire Arduino à l’aide de la matrice de LED

Horloge binaire Arduino à l’aide de la matrice de LED

Ce site dispose de nombreux postes fines décrivant la construction d'horloges binaires. Je suis terriblement fragile, cependant et ont du mal avec toute soudure. Je voulais donc faire mine d'une matrice de LED contrôlé MAX7219 8 x 8.Étape 1: Lecture
Traçage des données en temps réel de Arduino à l’aide de Python (matplotlib)

Traçage des données en temps réel de Arduino à l’aide de Python (matplotlib)

Arduino est fantastique comme un intermédiaire entre votre ordinateur et d'un circuit électronique brut. À l'aide de l'interface série, vous pouvez récupérer des informations provenant de capteurs attachés à votre Arduino. (Vous pouvez également envo
Traçage et graphiques des données actives de Arduino à l’aide de la puissance de Python

Traçage et graphiques des données actives de Arduino à l’aide de la puissance de Python

Je vais vous montrer comment prendre vos projets Arduino au niveau suivant en ayant l'Arduino à interagir avec le langage de programmation Python. Python est un logiciel gratuit, que vous pouvez télécharger. Puisque vous avez déjà appris les rudiment
Comment contrôler la carte arduino à l’aide d’un téléphone android et un module bluetooth

Comment contrôler la carte arduino à l’aide d’un téléphone android et un module bluetooth

dans ce tutoriel, vous apprendrez comment utiliser un module bluetooth et inventeur app du MIT pour créer une liaison série sans fil entre un téléphone android et une carte arduino.Voici une courte vidéo montrant un exemple d'application que j'ai cré
Météo boîte ARDUINO à l’aide de ~ le plus facile

Météo boîte ARDUINO à l’aide de ~ le plus facile

Comment ça marche ?Vérifier la température autour de vous avec ce dispositif intelligent !Pour visiter des projets de Intresting plus : www.miymakers.comFacebook : www.facebook.com/miymakersÉtape 1: Comment ça marche ?Comment ça marche ?Le DHT11 est
Affichage de mesure de température sur 16 x 2 LCD avec réglage de la température supérieure et limite inférieure pour Arduino à l’aide de mise en garde

Affichage de mesure de température sur 16 x 2 LCD avec réglage de la température supérieure et limite inférieure pour Arduino à l’aide de mise en garde

Bonjour à tous, voici mon premier projet avec Arduino. Dans ce projet, je vais vous montrer comment faire pour mesurer la température et l'afficher sur un écran LCD 16 x 2 en utilisant Arduino et nous pouvons utiliser le bouton 2 pour choisir ce que
Arduino à l’aide du Module Rf NRF24L01

Arduino à l’aide du Module Rf NRF24L01

Je vais discuter de l'utilisation du module émetteur-récepteur NRF24L01 des modèles couramment utilisés dans les communications sans fil.Vous pouvez l'utiliser facilement à votre utilisation de ce module est très simple et très bonne gamme de projets