TXT moi (3 / 3 étapes)

Étape 3: L’Arduino code

/ * TEXTE MOI

Cette esquisse, pour le bouclier de l’Arduino GSM, attend un message SMS et l’affiche à travers le port série et sur la machine ME texte de Kim.

Un code de Javier Zorzano / TD http://arduino.cc/en/Tutorial/GSMExamplesReceiveSMS * /

/******************************************************************************************

* T H E C I R C U I T

*

* Une alimentation externe est obligatoire, sinon le bouclier GSM ne fonctionne pas

* Le bouclier GSM est embroché dans un Arduino Uno

* Il y a deux servos tous deux connectés au GND et + 5V * la ligne de commande rotative servo va à la broche 5

* La ligne de commande de servo vertical va à la broche 10

* Le voyant ready va à la broche 11 via une résistance de 200 ohms

*******************************************************************************************/

#include / / inclure la bibliothèque GSM

#include / / inclure la bibliothèque de servo

#define PINNUMBER « XXXX » / / broches pour la carte SIM GSM

#define rotaryPin 5 / / connecter la broche 5 sur le servo rotatif

#define verticalPin 10 / / relier la broche 10 à l’asservissement vertical

#define readyLed 11 / / Connect broche 11 à LED qui indique que l’unité GSM est connecté

GSM gsmAccess ; Initialiser les instances de la bibliothèque

GSM_SMS sms ; char senderNumber [20] ; Tableau pour stocker le numéro extraites d’un SMS

Servo rotaryServo ; Créer objet servo commande rotative servo

Servo verticalServo ; Créer objet servo servo verticale de contrôle

la rotation d’int [] = {161, 154, 148, 142, 136, 130, 124, 118, 112, 105, 99, 92, 85, 78, 72, 66, 60, 54, 48, 42, 36, 30, 24, 19, 12, 7} ;

int numberOfLetters = 26 ;

int currentServoPosition ;

int newServoPosition ;

int = jusqu'à 170 ; Décrivez les deux extrêmes du servo vertical

int Bas = 117 ;

int inactivityTimer = 0 ;

/**************************************************************************************

* Mettre en place

**************************************************************************************/

void setup()

{

Serial.Begin (9600) ; Initialiser une communication série à 9600 rotatif

Servo.Attach (rotaryPin) ; Fixer le servo rotatif vertical

Servo.Attach (verticalPin) ; Fixer le servo de doigt booléenne

notConnected = true ; État de la connexion GSM

parkArm() ; Déplacer vers un espace sécurisé si pas là déjà

prompt() ;

parkArm() ; Déplacer vers un espace sécurisé

tandis que (notConnected) / / attendre jusqu'à obtention d’une connexion GSM

{

digitalWrite (readyLed, basse) ; Éteindre le voyant ready

Si (gsmAccess.begin (PINNUMBER) == GSM_READY) notConnected = false ;

d’autre

{

Serial.println ("non connecté") ;

retarder (1000) ;

}

}

Serial.println ("GSM initialisée") ; Message de bâtiment de confiance

Serial.println ("Waiting for messages") ;

digitalWrite (readyLed, HIGH) ; // Turn the ready LED on} /**************************************************************************************

* Boucle principale

**************************************************************************************/

void loop()

{

char c ;

S’il n’y a aucun SMS disponibles à intervalles réguliers, faire un spectacle

inactivityTimer = inactivityTimer ++ ; Avancez une boucle for each

Si (inactivityTimer > 300) / / environ 1 seconde par boucle

{

inactivityTimer = 0 ; Réinitialiser le tomer

prompt() ; Attirer l’attention sur vous-même

}

Rythme cardiaque sur LED pour montrer cette boucle toujours en boucle

digitalWrite (readyLed, basse) ; Éteindre le voyant ready

Delay(100) ; Fois que le voyant est éteint

digitalWrite (readyLed, HIGH) ; Allumer le voyant ready

S’il existe un SMS

Si (sms.available())

{

inactivityTimer = 0 ; Si le message puis réinitialisez minuteur d’inactivité

Serial.println ("Message reçu de:") ;

Lire les octets du message et les imprimer

while(c=SMS.Read())

{

raiseLetterArm (c) ; « Imprimer » aux armes de perspex

}

SMS.Flush() ; Supprimer le message de la mémoire du modem

} delay(1000) ;

}

/**************************************************************************************

* Inciter quelqu'un à proximité

**************************************************************************************/

Sub prompt()

{

raiseLetterArm (84) ; « Print » texte ME aux armes de perspex

raiseLetterArm (69) ;

raiseLetterArm (88) ;

raiseLetterArm (84) ;

raiseLetterArm (77) ;

raiseLetterArm (69) ;

}

/**************************************************************************************

* Mettre le bras hors de danger

**************************************************************************************/

Sub parkArm()

{

rotaryServo.attach (rotaryPin) ; Fixer le servo rotatif

newServoPosition = 180 ; Parc où le bras ne peut faire aucun mal lorsque allumée/éteinte

currentServoPosition = 9 ; Assurez-vous qu’il est clair qu’un déménagement est nécessaire

rotateServo() ; Déplacer le servo rotatif

Delay(2000) ; Attendez que le servo pour y arriver

rotaryServo.detach () ; Taire des choses

}

/**************************************************************************************

* Relevez le levier de la lettre indiqué

**************************************************************************************/

void raiseLetterArm (int charEntered)

{

rotaryServo.attach (rotaryPin) ; Fixer le servo sur la broche

« A » a 65 ans « a » est de 97 « Z » est 90

Si ((charEntered < 65) || ((charEntered > 91) & & (charEntered < 97)) || (charEntered > 123))

{

Alors n’est pas A à Z donc ne rien faire - attendre un peu

}

d’autre

{

Transformer les minuscules en majuscules

Si (charEntered > 96)

{

charEntered = charEntered - 32 ;

}

Si ((charEntered > 64) & &(charEntered < 91))

{

newServoPosition = rotation [charEntered - 65] ; Vers qui se tourner le bras la valeur

rotateServo() ;

}

Montrer ce qui a été envoyé :

Serial.Print ("vous m’avez envoyé: \'") ;

Serial.Write(charEntered) ;

Serial.Print ("\" valeur ASCII: ") ;

Serial.println(charEntered) ;

pressDown () ;

}

rotaryServo.detach () ; Arrêter les mouvements aléatoires}

/*********************************************************************************

* Poussez le doigt vers le bas – Assurez vous que c’est vers le haut avant de revenir

!*********************************************************************************/

Sub pressDown()

{

verticalServo.attach (verticalPin) ; Fixer le servo de doigt

Delay(500) ;

pour (int i = 0; i < haut-bas; i ++)

{

verticalServo.write (up-i) ; Doigt vers le bas d’un degré à la fois

Delay(10) ;

}

Delay(2000) ;

pour (int i = 0; i < haut-bas; i ++)

{

verticalServo.write (bas + i) ; Doigt jusqu'à un degré à la fois

Delay(10) ;

}

Delay(500) ;

verticalServo.detach () ; Arrêter les mouvements aléatoires}

/*********************************************************************************

* Déplacer le bras - de s’assurer que le doigt soit vers le haut avant d’utiliser TI *** /

Sub rotateServo()

{

différence d’int ;

int noOfSlowSteps = 5 ; Non de degrés pour se déplacer lentement était 5

int waitForServo = 20 ; Ne réduisez pas trop ou il manque des étapes

verticalServo.attach (verticalPin) ; Fixer le servo de doigt

verticalServo.write (vers le haut) ; Assurez-vous qu’il est de la route

verticalServo.detach () ; Se détacher

différence = newServoPosition - currentServoPosition ;

Si (différence > noOfSlowSteps)

{

rotaryServo.write (newServoPosition - noOfSlowSteps) ; Se déplacer rapidement

currentServoPosition = newServoPosition - noOfSlowSteps ; Noter la position nouvelle}

Si (différence < -1 * noOfSlowSteps)

{

rotaryServo.write (newServoPosition + noOfSlowSteps) ; Se déplacer rapidement

currentServoPosition = newServoPosition + noOfSlowSteps ; Noter la position nouvelle

}

différence = newServoPosition - currentServoPosition ; Recalculer la différence si (différence > 0)

Ensuite augmenter lentement la position actuelle jusqu'à ce que la différence est 0

{

pour (int i = 0; i < différence + 1; i ++)

{

rotaryServo.write (currentServoPosition + i) ;

retard (waitForServo) ;

}

}

else / / puis lentement diminuer la position actuelle jusqu'à ce que la différence est 0

{

pour (int i = 0; i < (-1 * différence) + 1; i ++)

{

rotaryServo.write (currentServoPosition - i) ;

retard (waitForServo) ;

}

}

currentServoPosition = newServoPosition ; N’oubliez pas lorsque le bras est}

/**********************************************************************************

* Test essuie-glace (commentée)

**********************************************************************************/

/ * pour (lettre = 0; lettre < numberOfLetters ; lettre ++)

{

newServoPosition = rotation [lettre] ; Vers qui se tourner le bras la valeur

rotateServo() ;

Serial.Print ("rotation [lettre]") ;

Serial.println (rotation [lettre]) ;

}

Delay(5000) ;

pour (lettre = numberOfLetters ; lettre + 1 > 0; lettre--)

{

newServoPosition = rotation [lettre] ; Vers qui se tourner le bras la valeur

rotateServo() ;

Serial.Print ("rotation [lettre]") ;

Serial.println (rotation [lettre]) ;

}

Delay(5000) ; */

/**********************************************************************************

/ * Pour calibrer le servo rotatif (commenté) - besoin de mettre potpin

**********************************************************************************/

/*

Val = analogRead(potpin) ; lit la valeur du potentiomètre (valeur comprise entre 0 et 1023)

Val = carte (val, 0, 1023, 0, 179) ; redimensionnez-la pour l’utiliser avec le servo (valeur comprise entre 0 et 180)

rotaryServo.write(val) ; définit la position du servo selon la valeur à l’échelle

Delay(15) ; attend que le servo pour y arriver

afficher la valeur que vous lisez :

Serial.println(Val) ; */

Articles Liés

Dessins et modèles, trucs et autres choses

Dessins et modèles, trucs et autres choses

Im déplacement vers un nouveau appartement (01.02.14) nous avons juste acheté moi et ma copine (Louise). Donc je voulais aimer faire une collection avec toutes les conneries un peu frais, nous pourrions construire là. comme toujours, je tombe sur tou
10 étapes pour votre propre logo dans Inkscape (gratuit) et à l’aide de marché créatif pour les nuls comme moi

10 étapes pour votre propre logo dans Inkscape (gratuit) et à l’aide de marché créatif pour les nuls comme moi

SalutDésolé pour le titre intégral. J'ai aussi quelques confessions. Tout d'abord, mes compétences en dessin et conception ne sont pas même équivalents d'un peintre de doigt. Deuxièmement, je ne fais pas d'argent, donc je dois toujours faire des chos
Comment pour entrer dans Forbes enseigner moi vite concours

Comment pour entrer dans Forbes enseigner moi vite concours

ce qui est la chose la plus cool et plus intéressante vous pouvez expliquer dans une vidéo de 30 secondes ou moins ? Nous voulons savoir--et de découvrir Instructables s'associe avec Forbes pour la enseigner moi vite concours!Pour entrer vous devez s
Animaux domestiques mois ' 08 : Conseils pour garder les fourmis de nourriture de votre chien !

Animaux domestiques mois ' 08 : Conseils pour garder les fourmis de nourriture de votre chien !

Si vous gardez votre chien à l'extérieur (parce que vos parents sont mort mis sur jamais vous permettant de mettre à l'intérieur du tout) et vous avez été confrontés au problème de la fourmi-manger-mon-chien-nourriture, alors voici quelques suggestio
Chien tenant une rose... Montrez-moi comment

Chien tenant une rose... Montrez-moi comment

J'aime Rotties et pensé qu'une image d'un de mon secours Rottweilers (Rocky) tenant qu'une rose serait parfaite. C'est comment les Rocheuses et moi-même avons fait l'image.Étape 1: Photographier le chien.Le butÀ saisir avec précision la façon dont vi
Comment Enter Pets mois

Comment Enter Pets mois

mars est le mois des animaux domestiques à Instructables !Gardez-vous des animaux comme animaux de compagnie ? Alors vous avez un projet de compagnie, habileté ou astuce à partager.Nos animaux ont besoin de nourriture, une maison et beaucoup d'amour.
Fofoque-moi : Vox Populi--un système motorisé l’opinion publique

Fofoque-moi : Vox Populi--un système motorisé l’opinion publique

D'après certains travaux antérieurs, que nous avons fait avec mégaphones dans les espaces publics, moi et mon associé, Radamés Ajna, avons été invités à participer à une exposition intitulée la Multitude, organisée par Lucas Bambozzi et Andrea Caruso
Demandez-moi un ingénieur méprisable sbires Style marionnettes

Demandez-moi un ingénieur méprisable sbires Style marionnettes

Vous voulez plus d'ingénieurs Powerpuff ? Que diriez-vous de demander une marionnettes ingénieur Despicable Me sbires ?Un webshow préférée est Ask de Adafruit ingénieur hébergé par Limor "Ladyada" Fried et Phil Torrone. Et travailler dans les co
Ours avec moi

Ours avec moi

cette instructable apprend à fabriquer nos ours avec moi système, un prototype qui permet à deux utilisateurs de façon tangible, envoyer et recevoir des calins (ainsi que la motion) dans presque réel.L'ours sera en mesure d'envoyer des tweets quand é
Farscape Moya Starship Crochet Pattern

Farscape Moya Starship Crochet Pattern

vous pouvez crocheter une version soft-sculpture du vaisseau spatial/Léviathan Moya de la série de science-fiction, « Farscape ». Moya est un vaisseau organique, comme Star Trek Enterprise, croisé avec une créature de la mer. Je vous offre mon patron
Mois des repas - préparation pour un bébé (ou n’importe quel moment, vous aurez envie de manger, mais ne veulent pas cuisiner...)

Mois des repas - préparation pour un bébé (ou n’importe quel moment, vous aurez envie de manger, mais ne veulent pas cuisiner...)

Avec un bébé sur la façon dont j'ai été bas nos congélateurs avec un assortiment de maison cuit, des repas sains. D'après ce que j'entends, j'ai probablement n'aurez beaucoup plus de temps dans mes jours pour réfléchir à ce qu'il faut faire pour le d
Système de Drone personnel (moi et mon Predator)

Système de Drone personnel (moi et mon Predator)

Construire votre propre système de Drone personnel. Sinon sais comme, « Moi et mon prédateur ».Je suis un artiste en résidence à il s'agit de mon premier projet fini créé au cours de ma résidence. J'ai créé un drone totalement autonome, analogique qu
C’est moi

C’est moi

ce que tu l'as fait ?J'ai fait un panier fait de ficelle de chanvre, ruban, fil, fil et une aiguille. Les créations en papier mâché étaient fabriquées à partir de peintures, colle, ruban adhésif et papier de nouvelles. En classe nous étudiaient ancie
Humain Robot motorisé du mois d’août

Humain Robot motorisé du mois d’août

J'ai jouer avec différents matériel éducatif concret pour gagner sa vie. (Visitez www.weirdrichard.com). Mes enfants sont gâtés avec accès à toutes sortes de jouets !J'ai dit à mon fils (5 ans) sur le concours de Sculpture cinétique Instuctables/Auto