Buggy en fauteuil roulant Robot (9 / 10 étapes)

Étape 9: cerveau

J’ai collé une copie de mon programme.  Oui, j’ai utilisé les commandes Goto... Oui, je sais que beaucoup d'entre vous haïssent. Ils ont travaillé pour ce que j’avais besoin. Toutefois, je suis ouvert à toute contribution constructive sur ce projet.

Je n’ai pas écrit un programme depuis GWbasic. Old school, que je sais. Je me rends compte que ce programme ressemble beaucoup à un flashback de base. Toutefois, il fonctionne juste comme je le voulais.

/*
ROBOT VOITURE
Stephen J. Gardiner, CPS

Création 2012
Stephen J. Gardiner, CPS

*/
inclure le code de bibliothèque :
#include < LiquidCrystal.h >

initialiser la bibliothèque de LCD
Innovente lcd (12, 11, 5, 4, 3, 2) ;

const int ledPin = 16 ;      la broche DRIVE SYSTEM POWER
const int lCdPin = 13 ;      lCdPin
const int redPin = 8 ;       OVER-RIDE ENGAGÉ
const int FASTPin = 14 ;     Speed-Up
const int SLOWPin = 15 ;     Vitesse-vers le bas
const int pwm1Pin = 9 ;      Broche 1 de PWM
const int pwm2Pin = 10 ;     Broche 2 PWM
int incomingByte ;           une variable de lire des données série entrantes dans
int OVERRIDEOFF ;

void setup() {}

Serial.Begin(9600) ;         initialiser la communication série :
initialiser les tiges de contrôle comme une sorties :
pinMode (ledPin, sortie) ;
pinMode (lCdPin, sortie) ;
pinMode (redPin, sortie) ;
pinMode (FASTPin, sortie) ;
pinMode (SLOWPin, sortie) ;
pinMode (pwm1Pin, sortie) ;
pinMode (pwm2Pin, sortie) ;


LCD.Begin(16,4) ;            mis en place nombre de l’écran LCD de colonnes et de lignes :

lcd.setCursor (0, 0) ;        Imprimer un message à l’écran LCD.
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("en ligne") ;
Serial.Print ("Robot Control v6.1 ») ;
Serial.Print("\r") ;
Serial.Print("on-line") ;
Serial.Print("\r") ;
Delay(1000) ;
digitalWrite (lCdPin, basse) ;
}

void loop() {}
régler le curseur sur la colonne 0, ligne 1
(Remarque : la ligne 1 est la seconde ligne, puisque le décompte commence par 0) :
lcd.setCursor(0,0) ;
lcd.setCursor(0,3) ;
int val1 = 100 ;             variable pour stocker le DUTY CYCLE F + B
int val2 = 100 ;             variable pour stocker le DUTY CYCLE L + R
analogWrite(pwm1Pin,val1) ;  TENSION RÉGLÉE À 2.5 (+/-)
analogWrite(pwm2Pin,val2) ;  TENSION RÉGLÉE À 2.5 (+/-)

voir s’il y a les données en série :
Si (Serial.available() > 0) {}

lire l’octet le plus ancien dans le tampon de la série :
Oui je sais les commandes Goto, Ya'll hatem "je travaille pour moi
incomingByte = Serial.read() ;
Si (incomingByte == ' o ') {goto DRIVEPOWER;}
Si (incomingByte == ' t ') {goto OVERRIDEON;}
Si (incomingByte == « C ») {goto OVERRIDEOFF;}
Si (incomingByte == « I ») {goto FASTER;}
Si (incomingByte == a ') {goto SLOWER;}
Si (incomingByte == « F ») {goto avec impatience;}
Si (incomingByte == « B ») {goto BACKWARD;}
Si (incomingByte == « L ») {goto LEFT;}
Si (incomingByte == « R ») {goto droite;}
Serial.Print ("Robot Control v6.1 ») ;
LCD.Print ("READY") ;
Serial.Print("\r") ;
retour ;

Si c’est une capitale O allumez le lecteur :
{DRIVEPOWER :
digitalWrite (ledPin, HIGH) ;
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("DRIVE SYSTEM POWER") ;
Serial.Print ("DRIVE SYSTEM POWER") ;
Delay(500) ;
lcd.setCursor(0,0) ;
digitalWrite (ledPin, basse) ;
Delay(500) ;
digitalWrite (lCdPin, basse) ;
int val = 169 ;
LCD.Clear() ;
Serial.Print("\r") ;
Serial.Flush() ;
retour ;

}

{OVERRIDEON :
Si c’est un T substituer sur :
digitalWrite (redPin, HIGH) ;
digitalWrite (lCdPin, HIGH) ;
LCD.Print (« over-RIDE ENGAGED ») ;
Serial.Print (« over-RIDE engagé") ;
Delay(500) ;
lcd.setCursor(0,0) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
Si c’est un C substituer au large :
{OVERRIDEOFF :
digitalWrite (redPin, basse) ;
digitalWrite (lCdPin, HIGH) ;
LCD.Print (« over-RIDE dés-"engagé) ;
Serial.Print (« over-RIDE dés-"engagé) ;
Delay(1000) ;
lcd.setCursor(0,0) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Print("\r") ;
Serial.Flush() ;
retour ;
}
Si c’est un F pour augmenter Vitesse
{PLUS VITE :
digitalWrite (FASTPin, élevé) ;
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("FASTER") ;
Serial.Print ("plus rapide") ;
Delay(500) ;
lcd.setCursor(0,0) ;
digitalWrite (FASTPin, faible) ;
Delay(500) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
Si c’est un capital à basse vitesse S
{PLUS LENT :
digitalWrite (SLOWPin, élevé) ;
digitalWrite (lCdPin, HIGH) ;
LCD.Print (« lent ») ;
Serial.Print (« lent ») ;
Delay(500) ;
lcd.setCursor(0,0) ;
digitalWrite (SLOWPin, basse) ;
Delay(500) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
{AVEC IMPATIENCE :
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("avant") ;
Serial.Print ("avant") ;

int val2 = 200 ;                variable @ 200 DUTY CYCLE = FORWARD
analogWrite(pwm2Pin,val2) ;     LA VALEUR TENSION VERS L’AVANT
Delay(1000) ;
lcd.setCursor(0,0) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
{EN ARRIÈRE :
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("arrière") ;
Serial.Print ("descendante") ;
int val2 = 50 ;                 variable @ 75 DUTY CYCLE = BACKWARD
analogWrite(pwm2Pin,val2) ;     EN VOITURE-TENSION À L’ARRIÈRE
Delay(1000) ;
lcd.setCursor(0,0) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
{LEFT :
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("LEFT") ;
Serial.Print ("gauche") ;
int val1 = 50 ;                  variable @ 100 DUTY CYCLE = gauche
analogWrite(pwm1Pin,val1) ;      EN VOITURE-TENSION À GAUCHE
Delay(1000) ;
lcd.setCursor(0,0) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
{DROIT :
digitalWrite (lCdPin, HIGH) ;
LCD.Print ("droite") ;
Serial.Print ("droite") ;
int val1 = 220 ;                  variable @ 200 DUTY CYCLE = droite
analogWrite(pwm1Pin,val1) ;       EN VOITURE-TENSION À DROITE
Delay(1000) ;
lcd.setCursor(0,0) ;
digitalWrite (lCdPin, basse) ;
LCD.Clear() ;
Serial.Flush() ;
Serial.Print("\r") ;
retour ;
}
}
}

Articles Liés

Manette de jeu de geste, voix, basé en fauteuil roulant pour personnes handicapées !

Manette de jeu de geste, voix, basé en fauteuil roulant pour personnes handicapées !

Fauteuils roulants électroniques sont des appareils de locomotion important pour les personnes handicapées et supérieurs, et ils deviennent encore plus importantes dans notre société de vieillissement. Donc plus sécuritaires et plus confortables « in
Comment fabriquer, configurer et installer une caméra de système de sauvegarde sur un fauteuil roulant

Comment fabriquer, configurer et installer une caméra de système de sauvegarde sur un fauteuil roulant

systèmes de caméra de vue arrière utilisés dans les automobiles peuvent être fabriqués, configurés et installés sur un fauteuil roulant afin que les utilisateurs peuvent accroître leur champ de vision. Notre objectif est de concevoir un guide étape p
Cerveau-contrôlé en fauteuil roulant

Cerveau-contrôlé en fauteuil roulant

Bonjour !  Beaucoup de gens ont écrit nous disant qu'ils construisent une Brain-Controlled en fauteuil roulant, et c'est très bien !  Nous sommes impatients d'aider que vous obtenez par le biais des parties dures, mais certains d'entre vous n'aurez p
Fauteuil roulant de plage

Fauteuil roulant de plage

Le père d'un enfant souffrant de paralysie cérébrale, je sais l'équipement est cher. Je suis prix un fauteuil roulant d'utiliser à la plage, et ils étaient plus de 1000 $. J'ai cherché des images sur le net et a décidé faire mon propre était possible
Œil contrôlée en fauteuil roulant !

Œil contrôlée en fauteuil roulant !

Ceux qui ont totalement perdu l'usage de leurs muscles ne peuvent pas exploiter leur propre fauteuil roulant.Le système de Eyedrivomatic tire parti des existant oculométrique de technologie pour permettre aux utilisateurs de conduire leurs chaises à
Petite patte avant chien fauteuil roulant

Petite patte avant chien fauteuil roulant

Le dimanche matin l'été dernier, je me suis réveillé à un grincement peu familier. Moitié éveillé, j'ai regarder par-dessus et remarqué un nouveau petit nouveau né le chiot sur la tête de ma femme. Nous saisir de minuscules bulles et sa mère puis pla
Fauteuil roulant chien

Fauteuil roulant chien

Bonjour aujourd'hui je vais vous montrer comment faire un fauteuil roulant de chien pour votre chien. J'ai eu cette idée en cherchant sur internet pour voir les moyens que les gens peuvent apprécier il plus vieux chiens plus. J'ai vraiment n'a pas un
Adaptable fauteuil roulant pour chiens handicapés

Adaptable fauteuil roulant pour chiens handicapés

Il y a quelques mois, nous avons découvert Luisa, un chiot handicapé qui est née sans pattes avant sur le site Web d'une organisation de protection des animaux (www.pro-tier.de) et a décidé de construire un fauteuil 3D-imprimés pour elle. En attendan
Comment faire un fauteuil roulant de chien

Comment faire un fauteuil roulant de chien

chien de mon papa a battu OS de sa jambe récemment, pour l'aider à rehabitate de l'opération, j'ai fait un fauteuil roulant pour lui.Voici le matériel que nécessaire pour préparer :1) dimension pour le chien2) tube d'AL selon la dimension. x 53) vélo
Fauteuil roulant + édenté = Costume épique !

Fauteuil roulant + édenté = Costume épique !

Ainsi, chaque année depuis notre plus vieux garçon, Keaton, a 3 ans, nous avons fait quelques costumes assez rad pour son fauteuil roulant. Cette année nous avons intensifié encore une fois, a lancé un kick, consultez-le ici - https://www.kickstarter
Rampes de fauteuil roulant portatifs

Rampes de fauteuil roulant portatifs

assez fréquemment, il est nécessaire de transporter une série de rampes portables pour permettre mon fauteuil roulant d'entrer dans les maisons et magasins.   Dans le passé, j'ai essayé d'utiliser magasin-acheté rampes fabriquées en aluminium.  Ces r
Station de travail avec fauteuil roulant

Station de travail avec fauteuil roulant

chaque année je vais sur le camp avec les enfants handicapés. Rester dans un grand terrain de camping avec pelouses, terrains de sport et de bois, aller sur les excursions d'une journée et faire de grands tours. Mais un camp avec les enfants en faute
Exercer la rampe de fauteuil roulant Boost

Exercer la rampe de fauteuil roulant Boost

en 2001 j'ai cassé mon dos dans un accident de moto à l'âge de 19, me laissant paralysé de la poitrine. Lorsqu'une personne devient paralysée, il est important de garder vos muscles dans vos bras bien tonifiés. Les roues de mon fauteuil roulant sont
Fixation d’appui-tête fauteuil roulant temporaire

Fixation d’appui-tête fauteuil roulant temporaire

chemin du retour quand j'étais à l'école primaire, mon premier fauteuil roulant n'a pas eu un appui-tête. Un appui-tête est important sur un fauteuil roulant pour personnes souffrant de certaines conditions dans lesquelles la personne doit reposer à