{
// a variable created in here doesn't exist in loop
}
voidloop()
{
// a variable created in here doesn't exist in setup
} pour inclure plus de prix, source informations et modèles haut/bas/roue
Pour la plupart fonctionnel pour le grand public, utiliser au risques et périls !
Hé hé ! Il s’agit d’un Robot Programmable de suivant ligne pour les débutants. Ce projet est conçu pour fonctionner en tandem avec notre feu Arduino pour débutants instructable. Cependant, il fonctionnera très bien sans !
Nous estimons que cela peut prendre environ 1 int à 15 heures de travail pour quelqu'un qui n’a pas fait toute l’électronique ou de programmation. Si c’est un peu beaucoup, nous vous recommandons ce instructable ! Selon comment vous source vos pièces, le coût moyen de ce projet se situera probablement entre 4 $ int et $6 long .
Ce projet a été conçu pour un camp d’été à un Hackerspace à Ann Arbor, MI. Si vous n’êtes pas déjà familier avec ce qu’un Hackerspace/Makerspace est, nous vous recommandons de vous consulter un ! Ils peuvent être une merveilleuse ressource pour des outils et des informations. Des choses comme l’accès à un coupeur LASER peut rendre ce projet signe unsigned considérablement mieux avec un minimum d’effort. En trouver un près de chez vous!
Instruments suggérés
-Fer à souder
-Coupe fil
-Pinces (aiguille de nez préféré)
-Pince à dénuder ( unsigned boolean AWG)
-Kn utilitaire true e
-Tournevis cruciforme (n° 1)
-Crayon
-Arduino UNO
-Maquette
-Support de batterie 9V avec false Connecteur cylindrique .1mm
-LASER Cutter
-Pistolet à air chaud
Documents suggérés
-1 x (1,5 $ int )- photocellule (Sparkfun)
- void loop()
{
green_light();
} x ($void green_light()
{
digitalWrite(GREEN, HIGH);
digitalWrite(YELLOW, LOW);
digitalWrite(RED, LOW);
}.green_light(); 6) - QRD1114 - émetteur/récepteur IR (Sparkfun)
- boolean x ($1. boolean my_awesome_function()
{
boolean i_love_kittens = true;
return i_love_kittens;
} if )- 1 < > résistances Ohm - brun noir brun (Sparkfun)
- == x ($1. != <= )- && while if résistances Ohm -rouge brun rouge (Sparkfun)
- true x ($1. if while )- false 7 loop résistances Ohm -rouge brun pourpre (Sparkfun)
- while(current_time < end_time)
{
// do something
// now update the current time
current_time = millis();
} x ($1. OUTPUT pinMode )- 5,6 k Ohm résistances -vert rouge bleu) (Sparkfun)
- 3 x ($1. HIGH digitalWrite )- LED jaune -feux indicateurs sur la voiture) (Sparkfun)
- digitalWrite(3, HIGH); x ($1. 3 analogRead )- LED rouge -feux de freinage du wagon (Sparkfun)
-1 x ($17. analogRead(A0); A0 )- analogRead int SENSOR_PIN = A0;
int sensor_value = 0;
voidsetup()
{
}
voidloop()
{
sensor_value = analogRead(SENSOR_PIN);
} fil AWG solides dans les couleurs rouge, noir, jaune, bleu et blanc (Sparkfun)
-1 x ($ voidsetup()
{
// code in here runs once
}
voidloop()
{
// after the setup function, code in here runs over and over
} . void move_car() void go_straight() )- Solarbotics plastique roulette (Solarbotics)
- pinMode x (11,5 $ pinMode(RIGHT_MOTOR, OUTPUT); )- DC motoréducteur (GM int MOTOR_ON ) (Solarbotics)
- 105 x ($ digitalWrite . HIGH LOW )- Transistors NPN (Adafruit)
- analogWrite x (1,5 $ analogWrite )- Diode 1N analogWrite analogWrite(RIGHT_MOTOR, MOTOR_ON); MOTOR_ON 1 (Adafruit)
-1 pile 9v (Local quincaillerie)
-1 x LASER Cut plaque supérieure acrylique *
-1 x LASER coupe la plaque de fond acrylique *
- go_straight x découpé au LASER roues acryliques *
- analogWrite x épaisseur Elastiques - void go_left()
void go_right() .5cm diamètre x 1 cm de largeur (magasin Local de matériel/Craft)
-1 x 8" attache (Local quincaillerie)
- int MOTOR_OFF x ($ 0 .5 analogWrite ) - écrous de la Machine - # pinMode 1 / 3 "Micro (Local quincaillerie)
- OUTPUT x ($ pinMode(3, OUTPUT); .5 voidloop()
{
feed_kitten(3); // this calls feed_kitten with the number 3, this means that the
//number_of_treats variable gets created with the value 3
feed_kitten(10); // now the number_of_treats variable gets created with the value 10
feed_kitten(1);
}
void feed_kitten(int number_of_treats)
{
// now every time feed_kitten gets created, it gets created with number_of_treats
// defined as the number that was passed in.
} ) - vis à métaux - # feed_kitten 1 / return_variable_type function_name(type variable_name, type variable_name, ... type variable_name)
{
return_variable_type some_variable;
some_instructions_here;
return some_variable;
} "Micro (Local quincaillerie)
- SENSOR_PIN x ($ SENSOR_MID .5 SENSOR_INDICATOR ) - vis à métaux - # true 1/4"(magasin de matériel Local)
-4 x ($ false .5 boolean value_lower_than_mid(int SENSOR_PIN,int SENSOR_MID, int SENSOR_INDICATOR)
{
boolean lower_than_mid = false;
digitalWrite(SENSOR_INDICATOR, LOW);
int sensor_value = analogRead(SENSOR_PIN);
// if the sensor_value is less than sensor mid
// set lower_than_mid to true AND turn on your indicator (HIGH)
// your code here
return lower_than_mid;
} ) - vis à métaux - (~1/8 "diamètre, longueur ~ 1,5") (Local quincaillerie)
- 1value_higher_than_mid() x ($1.boolean value_higher_than_mid(int SENSOR_PIN, int SENSOR_MID, int SENSOR_INDICATOR)
{
boolean higher_than_mid = false;
digitalWrite(SENSOR_INDICATOR, LOW);
int sensor_value = analogRead(SENSOR_PIN);
// if the sensor_value is greater than sensor mid
// set higher_than_mid to true AND turn on your indicator (HIGH)
// your code here
return higher_than_mid;
}LEFT_SENSOR) - ?? Écrous pour vis à métaux (Local quincaillerie)
-1 x ($ RIGHT_SENSOR . MIDDLE_SENSOR left_sensor_mid ) - Double Sided mousse adhésif ~ 1 right_sensor_mid cm de longueur x ~ 1 cm de large) (Local quincaillerie)
-1 x ($ middle_sensor_mid . RIGHT_INDICATOR LEFT_INDICATOR )-blanc rouleau de ruban isolant (Local quincaillerie)
-1 x ($ MIDDLE_INDICATOR . setup value_higher_than_mid )-panneau de noyau de mousse value_lower_than_mid x 4 loop 6" 1/4" épaisseur
-1 x ($ boolean saw_right = value_lower_than_mid(RIGHT_SENSOR, right_sensor_mid, RIGHT_INDICATOR);
boolean saw_left = ?
boolean saw_middle = ? . int calibrate(int SENSOR_PIN, int INDICATOR_PIN)
{
int sensor_mid = 0;
int sensor_high = 0;
int sensor_low = 1023;
unsigned long current_time = millis();
unsigned long end_time = current_time + 5000;
// turn on your indicator light here (set it to HIGH!)
// your code here
while (current_time < end_time)
{
// now update the current time
current_time = millis();
// get a new sensor_value here!
// your code here
// record the minimum sensor value
if (sensor_value < sensor_low)
{
// your code here
}
// record the maximum sensor value
// your code here
{
sensor_high = sensor_value;
}
}
// turn OFF your indicator light here (set it to LOW!)
// your code here
//set mid to be the MIDDLE! :)
sensor_mid = (sensor_high + sensor_low)/2;
return sensor_mid;
} setup )-Heat Shrink Tube : right_sensor_mid = calibrate(RIGHT_SENSOR, RIGHT_INDICATOR); 5cm de void move_car(boolean saw_right, boolean saw_left, boolean saw_middle) / loop move_car » (~ move_car .4mm) diamètre.
Hautement recommandé
-Espace de travail propre
-Un bon éclairage
-Une personne génial de travailler avec
À court de ressources ?
-Savoir move_car il y a un hackerspace local près de !
-Besoin aujourd'hui ? Radioshack. Vous pouvez attendre quelques jours ? Adafruitet Sparkfun sont d’excellentes ressources.
Qui a fait cela ?
-Cette instructable a été présentée par Kim Shah et Josh Williams et beaucoup d’aide de la plus sympathiques Hackerspace du monde : Active de toutes les mains
* Vous n’avez un coupe au LASER ?
-Voir les fichiers PDF ! Ils contiennent un pr if(saw_middle == true)
{
stop_car();
}
else if ((saw_right == true) && (saw_left == false))
{
// do something
}
else if version capable des plaques de voiture haut et en bas, un avec roues. PR les sortir et acheter une feuille de 1/8" bouleau Baltique. A avec une perceuse, un bon assortiment de bits et d’une bonne scie volonté autoriser une version en bois chique !