{
// a variable created in here doesn't exist in loop
}
voidloop()
{
// a variable created in here doesn't exist in setup
} para incluir más precios, fuente de información y superior/inferior/rueda
Sobre todo funcional para el público en general, usar bajo su propio riesgo!
Hey hey! Se trata de un Robot de siguiente línea programable para principiantes. Este proyecto está diseñado para funcionar en tándem con nuestro semáforo de Arduino para principiantes instructable. Sin embargo funcionará bien sin!
Estimamos que esto puede tomar aproximadamente 1 int 15 horas de trabajo para alguien que no ha hecho ninguna electrónica o programación. Si es un poco mucho, recomendamos comprobar hacia fuera este instructable. Dependiendo de cómo usted fuente de sus piezas, el costo promedio para este proyecto será probablemente entre 4 $ int y $6 long .
Este proyecto fue diseñado para un campamento de verano en un Hackerspace en Ann Arbor, MI. Si ya no estás familiarizados con lo que un Hackerspace/Makerspace es, recomendamos altamente que uno echa un vistazo! Pueden ser un recurso maravilloso para las herramientas y la información. Cosas como el acceso a un cortador láser puede hacer que este proyecto busca señal unsigned icantly mejor con el mínimo esfuerzo. Encontrar uno cerca de ti!
Herramientas sugeridas
-Soldador
-Tijeras hilo
-Alicates (nariz de aguja preferido)
-Pelacables ( unsigned boolean AWG)
-Kn utilidad true e
-Destornillador Phillips (Nº 1)
-Lápiz
-Arduino UNO
-Protoboard
-Soporte de la batería de 9V con false conector de barril .1mm
-LÁSER de corte
-Pistola
Materiales sugeridos
-1 x ($1,5 int )- fotocélula (Sparkfun)
- void loop()
{
green_light();
} x ($void green_light()
{
digitalWrite(GREEN, HIGH);
digitalWrite(YELLOW, LOW);
digitalWrite(RED, LOW);
}.green_light(); 6) - QRD1114 - Sensor/Emisor infrarrojos (Sparkfun)
- boolean x ($1. boolean my_awesome_function()
{
boolean i_love_kittens = true;
return i_love_kittens;
} if )- 1 < > Ohm resistencias - marrón negro marrón (Sparkfun)
- == x ($1. != <= )- && while if Ohm resistencias -rojo rojo marrón (Sparkfun)
- true x ($1. if while )- false 7 loop Ohm resistencias -rojo púrpura marrón (Sparkfun)
- while(current_time < end_time)
{
// do something
// now update the current time
current_time = millis();
} x ($1. OUTPUT pinMode )- 5,6 k Ohm resistencias -verde, azul, rojo) (Sparkfun)
- 3 x ($1. HIGH digitalWrite )- LED amarillo -indicadores de luces en el coche) (Sparkfun)
- digitalWrite(3, HIGH); x ($1. 3 analogRead )- LED rojo -luces de freno en el coche (Sparkfun)
-1 x ($17. analogRead(A0); A0 )- analogRead int SENSOR_PIN = A0;
int sensor_value = 0;
voidsetup()
{
}
voidloop()
{
sensor_value = analogRead(SENSOR_PIN);
} cable de núcleo sólido AWG en colores rojo, negro, amarillo, azul y blanco (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() )- rueda Solarbotics plástico (Solarbotics)
- pinMode x ($11,5 pinMode(RIGHT_MOTOR, OUTPUT); )- DC motorreductor (GM int MOTOR_ON ) (Solarbotics)
- 105 x ($ digitalWrite . HIGH LOW )- transistores NPN (Adafruit)
- analogWrite x ($1,5 analogWrite )- diodo 1N analogWrite analogWrite(RIGHT_MOTOR, MOTOR_ON); MOTOR_ON 1 (Adafruit)
-1 x pila de 9v (almacén de Hardware Local)
-Placa superior de acrílico del corte del LASER de x 1 *
-Placa inferior de acrílico del corte del LASER de x 1 *
- go_straight x ruedas de acrílico cortado LASER *
- analogWrite x espesor bandas de goma - void go_left()
void go_right() .5cm Diámetro x 1 cm de ancho (tienda Local del arte de Hardware)
-1 x 8" amarra (almacén de Hardware Local)
- int MOTOR_OFF x ($ 0 .5 analogWrite ) - máquina de frutos secos - # pinMode 1 / 3 "Micro (Local Hardware Store)
- 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.
} ) - tornillos - # 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 Hardware Store)
- SENSOR_PIN x ($ SENSOR_MID .5 SENSOR_INDICATOR ) - tornillos - # true 1/4"(almacén de Hardware 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;
} ) - tornillos para metales - (~1/8 "de diámetro, longitud de ~ 1,5") (almacén de Hardware Local)
- 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) - ?? Tuercas para tornillos de máquina (almacén de Hardware Local)
-1 x ($ RIGHT_SENSOR . MIDDLE_SENSOR left_sensor_mid ) - doble cara cinta adhesiva de espuma ~ 1 right_sensor_mid cm de longitud x ~ 1 cm de ancho) (almacén de Hardware Local)
-1 x ($ middle_sensor_mid . RIGHT_INDICATOR LEFT_INDICATOR )-blanco rollo de cinta aislante (almacén de Hardware Local)
-1 x ($ MIDDLE_INDICATOR . setup value_higher_than_mid )-tablero de núcleo de espuma de value_lower_than_mid 4 x loop 6" 1/4" espesor
-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 )-tubo del encogimiento del calor: 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) diámetro.
Muy recomendable
-Limpiar área de trabajo
-Buena iluminación
-Alguien impresionante trabajar con
¿Corto en recursos?
-Saber move_car hay un hackerspace local cerca de!
¿-Necesita hoy? Radioshack. ¿Puede esperar unos días? Adafruity Sparkfun son excelentes recursos.
¿Quién hizo esto?
-Este instructable fue traído a usted por Khevna Shah y Josh Williams y mucha ayuda de la Hackerspace más amigable del mundo: todas las manos activa
¿* No tienes un cortador láser?
-Ver los archivos PDF! Contienen un pr if(saw_middle == true)
{
stop_car();
}
else if ((saw_right == true) && (saw_left == false))
{
// do something
}
else if versión capaz de las placas de coche superior e inferior, una con ruedas. PR hacia fuera y comprar una lámina de 1/8" abedul Báltico. A con un taladro, un buen surtido de brocas y un apropiado vio voluntad hacen para una versión de madera con clase!