Compañero de cama Robot cama (63 / 74 paso)

Paso 63: código

Muy bien - así - cuando se trabaja con código es ideal para usar algo como Github seguimiento de revisiones. No hacerlo. Así, accidentalmente escribí sobre la versión más actual de trabajo del código. Tengo la última versión guardada, pero no estoy seguro cómo es. Probablemente es un poco buggy.

Novertheless, ya que ninguno de ustedes es probable que construirá esta cosa cualquier que forma y la cama está en pedazos y no funciona, yo solo voy a publicar lo que tengo.

También estoy compartiendo código de prueba para el control manual de los motores. Si usted está buscando en este proyecto para interfaces de un Arduino a motores muy grandes a través de un regulador del motor de Alltrax, este código será más útil de todos modos.

Última versión guardada de código de prueba de la cama de Robot:

/ * Este ejemplo de código es de dominio público. * / //establish acelerador pernos int leftThrottle = 3; LED conectado al pin digital 9 int rightThrottle = 5; LED conectado al pin digital 9 //establish solenoide pernos int leftOn = 7; LED conectado al pin digital 9 int Apartamento = 8; LED conectado al pin digital 9 //establish contactor pernos int leftReverse = 9; int rightReverse = 10; La velocidad a la válvula reguladora int gospeed = 86; volátiles int foserious = 0; DELANTERA int FrontLeftSnd = 30; int FrontLeftRcv = 31; int FrontCenterSnd = 32; int FrontCenterRcv = 33; int FrontRightSnd = 34; int FrontRightRcv = 35; LADO derecho int Side1LeftSnd = 36; int Side1LeftRcv = 37; int Side1CenterSnd = 38; int Side1CenterRcv = 39; int Side1RightSnd = 40; int Side1RightRcv = 41; TRASERA int BackLeftSnd = 42; int BackLeftRcv = 43; int BackCenterSnd = 44; int BackCenterRcv = 45; int BackRightSnd = 46; int BackRightRcv = 47; LADO izquierdo int Side2LeftSnd = 49; int Side2LeftRcv = 48; int Side2CenterSnd = 51; int Side2CenterRcv = 50; int Side2RightSnd = 53; int Side2RightRcv = 52; matriz de todos los nombres de pines de entrada y salida. Utilizado más adelante para leer todos los sensores en un bucle for. int [] SensorOutputs = {FrontLeftSnd, FrontCenterSnd, FrontRightSnd, Side1LeftSnd, Side1CenterSnd, Side1RightSnd, BackLeftSnd, BackCenterSnd, BackRightSnd, Side2LeftSnd, Side2CenterSnd, Side2RightSnd}; int [] SensorInputs = {FrontLeftRcv, FrontCenterRcv, FrontRightRcv, Side1LeftRcv, Side1CenterRcv, Side1RightRcv, BackLeftRcv, BackCenterRcv, BackRightRcv, Side2LeftRcv, Side2CenterRcv, Side2RightRcv}; int dontgo = 0; número de sensores total int SensorCount = 12; int nothingHappening = 0; int realCloseLike = 0; int goingforward = 0; int goingbackward = 0; int goingright = 0; int goingleft = 0; int backhit = 0; int fronthit = 0; int righthit = 0; lefthit int = 0; int amountToMove = 1000; int seleccionado; void setup() {cli (); //stop interrupciones TCCR1A = 0; / / set completo registro TCCR1A 0 TCCR1B = 0; / / mismo para TCCR1B TCNT1 = 0; //initialize valor de contador a 0 / / sistema compara partido registro para incrementos de 1 hz OCR1A = 512; / = (16 * 10 ^ 6) / (1 * 1024) - 1 (debe ser < 65536) / / Activar modo CTC TCCR1B | = (1 << WGM12); / CS10 sistema y CS12 pedacitos para 1024 prescaler TCCR1B | = (1 << CS12) | (1 << CS10); habilitar interrupción de timer compara TIMSK1 | = (1 << OCIE1A); (SEI); interrupciones //allow Serial.begin(9600); pinMode (leftOn, salida); pinMode (apartamento, salida); pinMode (leftReverse, salida); pinMode (rightReverse, salida); Asegúrese de que la energía está apagada digitalWrite (leftOn, LOW); digitalWrite (apartamento, baja); digitalWrite (leftReverse, bajo); digitalWrite (rightReverse, bajo); sensor parachoques pines pinMode (18, entrada); pinMode (19, entrada); Salida del sensor de distancia fija pines pinMode (FrontLeftSnd, salida); Pin 30 pinMode (FrontCenterSnd, salida); pin 32 pinMode (FrontRightSnd, salida); pin 34 pinMode (Side1LeftSnd, salida); PIN 36 pinMode (Side1CenterSnd, salida); PIN 38 pinMode (Side1RightSnd, salida); PIN 40 pinMode (BackLeftSnd, salida); PIN 42 pinMode (BackCenterSnd, salida); PIN 44 pinMode (BackRightSnd, salida); PIN 46 pinMode (Side2LeftSnd, salida); perno 49 pinMode (Side2CenterSnd, salida); PIN 51 pinMode (Side2RightSnd, salida); sensor de distancia //Set PIN 53 entrada pines pinMode (FrontLeftRcv, entrada); PIN 31 pinMode (FrontCenterRcv, entrada); PIN 33 pinMode (FrontRightRcv, entrada); perno 35 pinMode (Side1LeftRcv, entrada); PIN 37 pinMode (Side1CenterRcv, entrada); PIN 39 pinMode (Side1RightRcv, entrada); PIN 41 pinMode (BackLeftRcv, entrada); PIN 43 pinMode (BackCenterRcv, entrada); PIN 45 pinMode (BackRightRcv, entrada); PIN 47 pinMode (Side2LeftRcv, entrada); PIN 48 pinMode (Side2CenterRcv, entrada); PIN 50 pinMode (Side2RightRcv, entrada); //And 52 PIN espere un momento delay(3000); } void loop() {lookAllAround(); moveRobot(); delay(amountToMove); slowstop(); delay(1500);} ISR(TIMER1_COMPA_vect) {//Interrupt en frecuencia de 1kHz para medir interruptor de láminas / / genera la onda de pulso de frecuencia 8kHz/2 = 4 kHz (toma dos ciclos de alternancia de la onda completo alto luego alternar bajo) si (lefthit == 0 & & righthit == 0 & & fronthit == 0 & & backhit == 0) {if(digitalRead(18) == HIGH) {hardstop(); Serial.println(goingbackward); Serial.println(goingforward); Serial.println(goingleft); Serial.println(goingright); Serial.println ("FUCK YEAH!"); if(goingright == 1) {righthit = 1; goingright = 0;} if(goingleft == 1) {lefthit = 1; goingleft = 0;} if(goingbackward == 1) {backhit = 1; goingbackward = 0;} if(goingforward == 1) {fronthit = 1; goingforward = 0;}} } Si (lefthit == 0 & & righthit == 0 & & fronthit == 0 & & backhit == 0) {if(digitalRead(19) == HIGH) {hardstop(); Serial.println ("joder NO
!"); Serial.println(goingbackward); Serial.println(goingforward); Serial.println(goingleft); Serial.println(goingright); if(goingbackward == 1) {backhit = 1; goingbackward = 0;} if(goingforward == 1) {fronthit = 1; goingforward = 0;} if(goingright == 1) {righthit = 1; goingright = 0;} if(goingleft == 1) {lefthit = 1; goingleft = 0;}} }} void moveRobot() {//first ver si golpear--si golpeado mientras se mueven en cualquiera de las direcciones - auto-pick la otra dirección / /--de lo contrario la selección al azar if(backhit == 1) {amountToMove = 1000; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; recogido = 0;} otro if(fronthit == 1) {amountToMove = 1000; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; recogido = 1;} otro if(lefthit == 1) {amountToMove = 500; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; recogido = 2;} otro if(righthit == 1) {amountToMove = 500; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; seleccionado = 3; } else {seleccionado = random(3); Serial.println ("WTF!?"); amountToMove = 1000; } switch(picked) {caso 0: goingforward = 1; goingbackward = 0; goingright = 0; goingleft = 0; forwards(); Serial.println ("ir hacia adelante"); rotura; caso 1: goingforward = 0; goingbackward = 1; goingright = 0; goingleft = 0; backwards(); Serial.println ("volver"); rotura; caso 2: goingforward = 0; goingbackward = 0; goingright = 1; goingleft = 0; Right(); Serial.println ("a la derecha"); rotura; caso 3: goingforward = 0; goingbackward = 0; goingright = 0; goingleft = 1; Left(); Serial.println ("ir a la izquierda"); rotura; } delay(1); retardo entre lecturas para estabilidad} void forwards() {//activate el contactor reverso digitalWrite (leftReverse, HIGH); delay(50); digitalWrite (rightReverse, HIGH); delay(100); //activate lo solenoides digitalWrite (leftOn, alto); digitalWrite (apartamento, alto); //take un delay(500) de aliento; //engage el acelerador analogWrite (rightThrottle, gospeed); analogWrite (leftThrottle, gospeed);} void backwards() {//activate lo solenoides digitalWrite (leftOn, HIGH); digitalWrite (apartamento, alto); //take un delay(500) de aliento; / / realizar la aceleración analogWrite (rightThrottle gospeed); analogWrite (leftThrottle, gospeed); } void right() {if(dontgo == 0) {//activate lo solenoides digitalWrite (leftOn, HIGH); digitalWrite (apartamento, alto) //activate el contactor reverso digitalWrite (rightReverse, HIGH); //take un delay(500) de aliento; //engage el acelerador analogWrite (rightThrottle, gospeed); analogWrite (leftThrottle, gospeed);} //reset la variable dontgo = 0;} void left() {if(dontgo == 0) {//activate lo solenoides digitalWrite (leftOn, HIGH); digitalWrite (apartamento, alto) //activate el contactor reverso digitalWrite (leftReverse, HIGH); //take un delay(500) de aliento; //engage el acelerador analogWrite (rightThrottle gospeed); analogWrite (leftThrottle, gospeed); } //reset la variable dontgo = 0; } void slowstop() {para (int fadeValue = gospeed; fadeValue > = 0; fadeValue-=5) {/ / establece el valor (rango de 0 a 255): analogWrite (rightThrottle, fadeValue); analogWrite (leftThrottle, fadeValue); / / espere 30 milisegundos ver la atenuación delay(500) de efecto;} digitalWrite (leftOn, LOW); digitalWrite (apartamento, LOW); digitalWrite (leftReverse, LOW); digitalWrite (rightReverse, LOW); int goingforward = 0; int goingbackward = 0; int goingright = 0; int goingleft = 0; delay(2000); lookAllAround(); delay(1000);} void hardstop() {para (int fadeValue = gospeed; fadeValue > = 0; fadeValue-=5) {/ / establece el valor (rango de 0 a 255): analogWrite (rightThrottle, fadeValue); analogWrite (leftThrottle, fadeValue); Espere 30 milisegundos ver la atenuación altDelay(50) de efecto; } digitalWrite (leftOn, LOW); digitalWrite (apartamento, baja); digitalWrite (leftReverse, bajo); digitalWrite (rightReverse, bajo); } void altDelay(int x) {para (unsigned int = 0; me < = x; i ++) {delayMicroseconds(1000);}} void lookAllAround() {duración largo, pulgadas, cm; para (int thisPin = 0; thisPin < 1; thisPin ++) {digitalWrite (SensorOutputs [thisPin], LOW); delayMicroseconds(2); digitalWrite (SensorOutputs [thisPin], alto); delayMicroseconds(12); digitalWrite (SensorOutputs [thisPin], LOW); duración = pulseIn (SensorInputs [thisPin], alto); digitalWrite (SensorOutputs [thisPin], LOW); / / convertir el tiempo a una pulgadas de distancia = microsecondsToInches(duration); Serial.Print(SensorOutputs[thisPin]); Serial.Print(":"); Serial.Print(inches); Serial.println ("in"); //Check y compruebe otra vez / si (pulgadas > 10 & & pulgadas < 25) {/ / realCloseLike = 0; / / para (int checkagain = 0; checkagain < 3; checkagain ++) {/ / delay(100); / / digitalWrite (SensorOutputs [thisPin], LOW); / / delayMicroseconds(2); / / digitalWrite (SensorOutputs [thisPin], alto); / / delayMicroseconds(12); / / digitalWrite (SensorOutputs [thisPin], LOW); / / / / duración = pulseIn (SensorInputs [thisPin], alto); / / pulgadas = microsecondsToInches(duration); / / digitalWrite (SensorOutputs [thisPin], LOW); / / / / delay(100); / / / / si (pulgadas > 10 & & pulgadas < 25) {/ / / / Serial.print(SensorOutputs[thisPin]); / / Serial.print (" : "); Serial.Print(inches); Serial.println ("in"); / / realCloseLike = realCloseLike + 1; / / if (realCloseLike > 2) {/ / dontgo = 1; / /} / /} / /} / /} //Takes alrededor de 1/2 segundo para comprobar todos los sensores a 50uS delay(100); microsecondsToInches(long microseconds) largo}} {/ / según ficha técnica de paralaje para el PING))), hay / / 73,746 microsegundos por pulgada (es decir de sonido viaja en 1130 pies / segundo). Esto da la distancia recorrida por el ping, saliente / / y el retorno, por lo que dividimos por 2 para obtener la distancia del obstáculo. Ver: < a href = "http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf" >< a href = "http://www.parallax.com/dl/docs/prod/acc/28015-PI... < / a" > http://www.parallax.com/dl/docs/prod/acc/28015-PI...</a>> volver microsegundos / 74 / 2; }

Ejemplo de código de prueba de control del motor:

/ * Este ejemplo de código es de dominio público. * / //establish acelerador pernos int leftThrottle = 3; LED conectado al pin digital 9 int rightThrottle = 5; LED conectado al pin digital 9 //establish solenoide pernos int leftOn = 7; LED conectado al pin digital 9 int Apartamento = 8; LED conectado al pin digital 9 //establish contactor pernos int leftReverse = 9; int rightReverse = 10; La velocidad a la válvula reguladora int gospeed = 82; int nothingHappening = 0; int realCloseLike = 0; int goingforward = 0; int goingbackward = 0; int goingright = 0; int goingleft = 0; int backhit = 0; int fronthit = 0; int righthit = 0; lefthit int = 0; int amountToMove = 1000; int timeToWait = 30000; int seleccionado; void setup() {cli (); //stop interrupciones TCCR1A = 0; / / set completo registro TCCR1A 0 TCCR1B = 0; / / mismo para TCCR1B TCNT1 = 0; //initialize valor de contador a 0 / / sistema compara partido registro para incrementos de 1 hz OCR1A = 512; / = (16 * 10 ^ 6) / (1 * 1024) - 1 (debe ser < 65536) / / Activar modo CTC TCCR1B | = (1 << WGM12); / CS10 sistema y CS12 pedacitos para 1024 prescaler TCCR1B | = (1 << CS12) | (1 << CS10); habilitar interrupción de timer compara TIMSK1 | = (1 << OCIE1A); (SEI); interrupciones //allow Serial.begin(9600); pinMode (leftOn, salida); pinMode (apartamento, salida); pinMode (leftReverse, salida); pinMode (rightReverse, salida); Asegúrese de que la energía está apagada digitalWrite (leftOn, LOW); digitalWrite (apartamento, baja); digitalWrite (leftReverse, bajo); digitalWrite (rightReverse, bajo); sensor parachoques pines pinMode (18, entrada); pinMode (19, entrada); Y esperar un momento delay(3000); } void loop() {left(); delay(amountToMove); slowstop(); delay(timeToWait); backwards(); delay(amountToMove); slowstop(); delay(timeToWait); forwards(); delay(amountToMove); slowstop(); delay(timeToWait); right(); delay(amountToMove); slowstop(); delay(timeToWait); / / right(); delay(amountToMove); slowstop(); delay(timeToWait); forwards(); delay(amountToMove); slowstop(); delay(timeToWait); backwards(); delay(amountToMove); slowstop(); delay(timeToWait); left(); delay(amountToMove); slowstop(); delay(timeToWait); / / forwards(); delay(amountToMove); slowstop(); delay(timeToWait); backwards(); delay(amountToMove); slowstop(); delay(timeToWait); forwards(); delay(amountToMove); slowstop(); delay(timeToWait); backwards(); delay(amountToMove); slowstop(); delay(timeToWait);} ISR(TIMER1_COMPA_vect) {//Interrupt en frecuencia de 1kHz para medir interruptor de láminas / / genera la onda de pulso de frecuencia 8kHz/2 = 4 kHz (toma dos ciclos de alternancia de la onda completo alto luego alternar bajo) si (lefthit == 0 & & righthit == 0 & & fronthit == 0 & & backhit == 0) {if(digitalRead(18) == HIGH) {hardstop(); Serial.println(goingbackward); Serial.println(goingforward); Serial.println(goingleft); Serial.println(goingright); Serial.println ("FUCK YEAH!"); if(goingright == 1) {righthit = 1; goingright = 0;} if(goingleft == 1) {lefthit = 1; goingleft = 0;} if(goingbackward == 1) {backhit = 1; goingbackward = 0;} if(goingforward == 1) {fronthit = 1; goingforward = 0;}} } Si (lefthit == 0 & & righthit == 0 & & fronthit == 0 & & backhit == 0) {if(digitalRead(19) == HIGH) {hardstop(); Serial.println(goingbackward); Serial.println(goingforward); Serial.println(goingleft); Serial.println(goingright); Serial.println ("joder ¡ NO!"); if(goingbackward == 1) {backhit = 1; goingbackward = 0;} if(goingforward == 1) {fronthit = 1; goingforward = 0;} if(goingright == 1) {righthit = 1; goingright = 0;} if(goingleft == 1) {lefthit = 1; goingleft = 0;}} }} void moveRobot() {//first ver si golpear--si golpeado mientras se mueven en cualquiera de las direcciones - auto-pick la otra dirección / /--de lo contrario la selección al azar if(backhit == 1) {amountToMove = 1000; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; recogido = 0;} otro if(fronthit == 1) {amountToMove = 1000; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; recogido = 1;} otro if(lefthit == 1) {amountToMove = 500; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; recogido = 2;} otro if(righthit == 1) {amountToMove = 500; backhit = 0; fronthit = 0; lefthit = 0; righthit = 0; seleccionado = 3; } else {seleccionado = random(3); Serial.println ("WTF!
?"); amountToMove = 1000; } switch(picked) {caso 0: goingforward = 1; goingbackward = 0; goingright = 0; goingleft = 0; forwards(); Serial.println ("ir hacia adelante"); rotura; caso 1: goingforward = 0; goingbackward = 1; goingright = 0; goingleft = 0; backwards(); Serial.println ("volver"); rotura; caso 2: goingforward = 0; goingbackward = 0; goingright = 1; goingleft = 0; Right(); Serial.println ("a la derecha"); rotura; caso 3: goingforward = 0; goingbackward = 0; goingright = 0; goingleft = 1; Left(); Serial.println ("ir a la izquierda"); rotura; } delay(1); retardo entre lecturas para estabilidad} void forwards() {//activate el contactor reverso digitalWrite (leftReverse, HIGH); delay(50); digitalWrite (rightReverse, HIGH); delay(100); //activate lo solenoides digitalWrite (leftOn, alto); digitalWrite (apartamento, alto); //take un delay(500) de aliento; //engage el acelerador analogWrite (rightThrottle, gospeed); analogWrite (leftThrottle, gospeed);} void backwards() {//activate lo solenoides digitalWrite (leftOn, HIGH); digitalWrite (apartamento, alto); //take un delay(500) de aliento; / / realizar la aceleración analogWrite (rightThrottle gospeed); analogWrite (leftThrottle, gospeed); } void right() {//activate lo solenoides digitalWrite (leftOn, HIGH); digitalWrite (apartamento, alto) //activate el contactor reverso digitalWrite (rightReverse, HIGH); //take un delay(500) de aliento; //engage el acelerador analogWrite (rightThrottle, gospeed); analogWrite (leftThrottle, gospeed);} void left() {//activate lo solenoides digitalWrite (leftOn, HIGH); digitalWrite (apartamento, alto) //activate el contactor reverso digitalWrite (leftReverse, HIGH); //take un delay(500) de aliento; //engage el acelerador analogWrite (rightThrottle, gospeed); analogWrite (leftThrottle gospeed); } void slowstop() {para (int fadeValue = gospeed; fadeValue > = 0; fadeValue-=5) {/ / establece el valor (rango de 0 a 255): analogWrite (rightThrottle, fadeValue); analogWrite (leftThrottle, fadeValue); / / espere 30 milisegundos ver la atenuación delay(500) de efecto;} digitalWrite (leftOn, LOW); digitalWrite (apartamento, LOW); digitalWrite (leftReverse, LOW); digitalWrite (rightReverse, LOW); int goingforward = 0; int goingbackward = 0; int goingright = 0; int goingleft = 0;} void hardstop() {para (int fadeValue = gospeed; fadeValue > = 0; fadeValue-=5) {/ / establece el valor (rango de 0 a 255) : analogWrite (rightThrottle, fadeValue); analogWrite (leftThrottle, fadeValue); Espere 30 milisegundos ver la atenuación altDelay(50) de efecto; } digitalWrite (leftOn, LOW); digitalWrite (apartamento, baja); digitalWrite (leftReverse, bajo); digitalWrite (rightReverse, bajo); } void altDelay(int x) {para (unsigned int i = 0; i < = x; i ++) {delayMicroseconds(1000);}}

Artículos Relacionados

Hacer una tarjeta del corte del Laser "Llegar bien pronto" para un compañero de trabajo

Hacer una tarjeta del corte del Laser "Llegar bien pronto" para un compañero de trabajo

uno de mis compañeros de trabajo acaban en el hospital y tenía que tener una apendicectomía.  ¿Queríamos enviarle amor "Conseguir bien pronto", y supongo que podríamos acaba de adquirir una tarjeta en la tienda, pero Dónde está la diversión en e
Portal de compañero de cubo

Portal de compañero de cubo

Hola, soy nuevo en esto y nueva a tomar fotos de una acumulación y mediciones para mostrar a otras personas, normalmente hago la mayor parte de ella en mi cabeza o en pedacitos de chatarra etc, etc, luego se pierde en la traducción, pero quería docum
Cómo despertar su compañero de piso para el gimnasio

Cómo despertar su compañero de piso para el gimnasio

cuando su compañero de cuarto es perezoso y cansado y necesita un poco de motivación "extra" para despertarlo, es necesario incorporar medidas drásticas.Por ejemplo:-pegarle con un palo-escupir el agua en la cara-muebles de la viruta en su cama-
Compañero de piso Blocker 1.0

Compañero de piso Blocker 1.0

esto demostrará cómo convertir un dormitorio universitario doble en dos singles. Para aquellos que no están familiarizados con el término doble, esto se refiere a una sola habitación ocupada por dos personas. Si odio a su compañero de cuarto o simple
Compañeros de entrenamiento: hacer ejercicio físico agradable para los niños

Compañeros de entrenamiento: hacer ejercicio físico agradable para los niños

Demo entrenamiento Video amigosEn esta guía detallaremos cómo hemos creado un ejercicio inteligente agente o robot, para la IoT de Intel Roadshow Amsterdam 2016. Nuestra idea era:Compañeros de entrenamiento involucra niños en ejercicio físico de form
Construcción de su propio miniordenador de compañero Micromite

Construcción de su propio miniordenador de compañero Micromite

La Minicomputadora de compañero Micromite es la próxima generación de la serie de Mini computadora de bolsillo.Es la combinación de dos sistemas de código abierto, el software Micromite, una creación de PIC32 por Geoff Graham y el propulsor de la par
El compañero de cabecera de tubo Steampunk Nixie de Stephanotis.

El compañero de cabecera de tubo Steampunk Nixie de Stephanotis.

Yo quería dar a mi hija algo totalmente diferente para su cumpleaños en abril de 2015 y finalmente decidió hacer algo en un tema de Steampunk. Comenzó como a la lámpara pero parecía un poco pelado en el medio por lo que le añadió un reloj de tubo Nix
Cómo hacer que un compañero de la soldadura (de plástico de la hoja)

Cómo hacer que un compañero de la soldadura (de plástico de la hoja)

[actualización - gracias a todos los que votaron en la! concurso de impresora 3D - tuve la suerte de ganar una! Más, así que ahora puedo proceder con soldadura Buddy Mark III (Mark II está mejorando Mark I con usted sugerencias abajo) y suelte los ar
Llenar una oficina compañeros de trabajo con cacahuetes del embalaje

Llenar una oficina compañeros de trabajo con cacahuetes del embalaje

¿Tienes un compañero de trabajo que merece tener su oficina entera llena de espuma de poliestireno cacahuetes del embalaje? ¿O, tal vez hay un compañero de trabajo que se pranked en el pasado y necesita ir grande en su venganza? Bien, usted ha venido
Receptor de radio FM RTL-SDR con compañero de la Radio de GNU

Receptor de radio FM RTL-SDR con compañero de la Radio de GNU

RTL-DEG es actualmente muy popular tema en la red. También hay muchas guías sobre cómo utilizar Windows y Linux también. Pero empezar a usar yo no he encontrado a ninguna guía que explica todo el proceso de instalación de software y controladores nec
3D impreso Portal compañero cubo del LED

3D impreso Portal compañero cubo del LED

Decidí hacer mi novio un cubo de compañero para Navidad, así que pensé que compartir como lo hice. Mensaje me si quieres archivos .stl.Paso 1: 3D modeling & impresión Dividir el cubo de compañero en dos piezas para fácil impresión (imagen 1) y había
Compañero de bolsillo de Spider-man

Compañero de bolsillo de Spider-man

Para un proyecto de la escuela mis compañeros y yo nos asignó un proyecto amigo de bolsillo. Todos decidimos dibujar varios superhéroes y elegí a Spider-man. Que utiliza AutoDesk AutoCAD 2016 para dibujar el fenómeno de Marvel y lo hizo utilizando un
Hacer sus compañeros de trabajo más tranquilo

Hacer sus compañeros de trabajo más tranquilo

¿Ha deseado siempre que sus compañeros sólo calmaría? Con pocos pasos, puede activar el comportamiento de su lugar de trabajo de renuncias a amable!Paso 1: Localice la máquina de caféSi tienes un trabajo extenuado, lo más probable es que usted tiene
Banco de herramientas de soporte de un compañero

Banco de herramientas de soporte de un compañero

este es mi venerable 35 años negro & Decker Workmate. Lo más a menudo uso como base para las varias herramientas eléctricas normalmente montado en un banco.Paso 1: Un espacio multiplicador Mi compañero me permite hacer un mejor uso de mi taller de ga