20 de julio de 2016

Cambiar la Fecha de la Maquina Virtual desde VirtualBox

Hay veces que es necesario cambiar la fecha de la Maquina Virtual no desde su sistema operativo
sino desde el anfitrión.

Esto en VirtualBox lo podemos hacer del siguiente modo:

[Lo pongo para VirtualBox instalado en Windows10]

cd C:\"Program Files"\Oracle\VirtualBox\
VBoxManage setextradata "NOMBRE DE LA VM"
"VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
VBoxManage modifyvm WinServer --biossystemtimeoffset -31536000000

Con esto hemos retrasado el reloj 1 año = 31536000000 ms


Para volver a configurar que máquina virtual tome la fecha correcta:

cd C:\"Program Files"\Oracle\VirtualBox\
VBoxManage setextradata "WinServer" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 0
VBoxManage modifyvm WinServer --biossystemtimeoffset 0



19 de marzo de 2016

Decorar el inicio de Debian con screenFetch o linuxlogo

Para decorar el inicio de sesión con un logo en txt podemos usar screenFetch.

Protocolo:

1) Descargamos screenFetch y lo renombramos:


wget https://raw.githubusercontent.com/KittyKatt/screenFetch/master/screenfetch-dev


mv screenfetch-dev screenFetch

2) Lo hacemos ejecutable

chmod u+x screenFetch
3) Lo ejecutamos:


./screenFetch









4) Para ver la opciones podemos ejecutar screeFtech -h

5) Podemos elegir el logo.
./screenFetch -LA 'Debian'


















6) Si queremos que aparezca al inicio de nuestra sesión incluir le comando al final del archivo .bashrc. Podemos cambiar el color del logo y el texto.

./screenFetch -A 'Debian' -c 2,1












Otra opción es el paquete linuxlogo disponible en Debian:

# aptitude install linuxlogo
# linuxlogo










Este incluso nos indica los Bogomips de nuestra máquina !!!.

Bibliografía:
http://www.cyberciti.biz/hardware/howto-display-linux-logo-in-bash-terminal-using-screenfetch-linux_logo/

23 de enero de 2016

Recuperar un router con OpenWrt


Sera inevitable que en los primeros trasteos con OpenWrt dejes el router sin acceso. 

No pasa nada, podemos recuperarlo:

Conecta el router al ordenador con un cable ethernet.

1) Configura el dispositivo ethernet de tu ordenador con:

ip: 192.168.1.2
broadcast: 255.255.255.0
gw: 192.68.1.1

2) Enciende el router.
3) Espera a que el led de power parpadee.
4) Presiona el boton reset hasta que comience a parpadear mas rápidamente.
5) Ok ahora tienes el router en modo failsafe.
6) Hacer un telnet desde el ordenador a la dirección: 192.168.1.1
y te aparecerá esto:



7) Teclea los comandos:
mount_root
firstboot
reboot -f

8) Reconfigura la tarjeta ethernet de tu pc a dhcp si es necesario.

8) Accede al router con el navegador web http://192.168.1.1


Y ya tienes accesible el router, y ahora a volver a descofigurarlo!!!.



13 de enero de 2016

Instalar Linux en un router con OpenWRT

Cada vez que me cambio de operador de internet se empeñan en regalarme un modem-router, y a cual peor.

De modo que tengo en el trastero una caja llena de routers con "la nueva esperaza" que algún dia fueran útiles.

Pues ese día ha llegado y tienen que preparase para el "Despertar de su fuerza".

Resulta que hay una distro de linux que puede instalarse en los routers !!!: https://openwrt.org/

Vamos con el howto de "el retorno del router":

1) Bajamos a por un router viejo del trastero.

2) He pillado este: Comtrend AR-5387un

3) Comprobamos que es compatible con OpenWrt en http://wiki.openwrt.org/toh/start

        Ok!!, si es compatible.

Pinchamos View/Editdata en para obtener toda la info de este router: http://wiki.openwrt.org/toh/hwdata/comtrend/comtrend_ar-5387un

Aqui encontramos el firmware a instalar:
https://downloads.openwrt.org/chaos_calmer/15.05/brcm63xx/generic/openwrt-15.05-brcm63xx-generic-AR-5387un-squashfs-cfe.bin

Lo descargamos para instalarlo en el router.


CUIDADO: cualquier fallo en la instalción del firmware puede dejar inutilizado el router, continuar bajo vuestra propia responsabilidad y que la fuerza os acompañe.


4) Encendemos el router.

5) Nos conectamos a su red wifi o mejor nos conectamos con un cable ethernet.

6) Accedemos con el navegador web al router http://192.168.1.1

7) Introducimos el user y password para el acceso al router.

8) Actualizar software con el archivo de OpenWrt descargado y aceptar.


10) Esperar hasta que se ha completado toda la instalacion.



11) Ok, si todo ha ido bien ya tenemos instalado OpenWrt en el router.

12) Post-Instalation: http://wiki.openwrt.org/doc/howto/generic.flashing

12) Por defecto la wifi esta desactivada de modo que hay que acceder por cable ethernet.

13) Con el navegador web acceder al router http://192.168.1.1 y ya nos aparece la pantalla de OpenWrt.




14) Configuramos el paswword para lacuenta root, y ya podemos comenzar a usarlo y acceder via ssh. (El router contrataca).




Y ya podeis ir teclenado comandos linux y a disfrutar.

Una de las primeras cosas que se puede hacer es activar la wifi del router para poder accede al router via inalámbrica.




Las posibilidades son enormes, con toda la potencia de linux.

Para poder acceder a internet creo que no tiene modem pero se puede conectar a una wifi con acceso a internet: http://tombatossals.github.io/openwrt-repetidor-wireless/

Al final el que guarda siempre tiene. Es una gozada aprovechar trastos viejos de informática.


Aqui teneis mi  nuevo router accediendo desde la tablet por ssh.

24 de febrero de 2015

Control de motores con el módulo L9110s dual y Arduino

Controlador de motores DC y stepper motors.
HG7881

Conexiones con arduino:
L9110s               arduino
  B-IA     ----------    D5
  B-IB      ----------   D6
  VCC     ----------   +5v
  GND    ----------    gnd
  A-IA    ----------    D3
  A-IB    ----------    D4

  MOTOR A  === Motor A
  MOTOR B  === Motor B

Code arduino:
//----------------------------------------------------------------------
const int AIA = 3;
const int AIB = 4;
const int BIA = 5;
const int BIB = 6;
byte speed = 255;

void setup() {
   pinMode(AIA, OUTPUT);
   pinMode(AIB, OUTPUT);
   pinMode(BIA, OUTPUT);
   pinMode(BIB, OUTPUT);
 }

void loop() {
  forward();
  delay(2000);
  backward();
  delay(2000);
}

void backward() {
  analogWrite(AIA, 0);
  analogWrite(AIB, speed);
  analogWrite(BIA, 0);
  analogWrite(BIB, speed);
}

void forward() {
  analogWrite(AIA, speed);
  analogWrite(AIB, 0);
  analogWrite(BIA, speed);
  analogWrite(BIB, 0);
}

//----------------------------------------------------------------------


Ref.:
http://me.web2.ncut.edu.tw/ezfiles/39/1039/img/617/L9110_2_CHANNEL_MOTOR_DRIVER.pdf
http://www.dx.com/es/p/hg7881-two-channel-motor-driver-board-blue-green-black-2-5-12v-2157

Giroscopio/acelerómetro MPU-6050 GY-521 con Arduino

Conexiones GY-521 - Arduino

GY-521               arduino
VCC  ----------    +5V
GND  ----------    gnd
SCL   ----------    A5
SDA  ----------    A4


Código arduino:

//-------------------------------------------------------------------------------
#include
#include
#include

MPU6050 mpu;

int16_t ax, ay, az;
int16_t gx, gy, gz;

int valY;
int valX;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Initialize MPU");
  mpu.initialize();
  Serial.println(mpu.testConnection() ? "Connected" : "Connection failed");
}

void loop()
{
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  valY = map(ax, -17000, 17000, 0, 179); //funciona bien asi cambiando x/y
  valX = map(ay, -17000, 17000, 0, 179);

  Serial.print("X:");
  Serial.print(valX);
  Serial.print("  Y:");
  Serial.println(valY);

  delay(10);
}
//-----------------------------------------------------------------------------------

Ref.: 
http://www.dx.com/es/p/gy-521-mpu6050-3-axis-acceleration-gyroscope-6dof-module-blue-154602


31 de octubre de 2014

Arduino Halloween

Pues para divertirnos en HalloWeen se me ha ocurrido hacer una ArduinoCalabaza con los trastos que tengo por casa: un Led RGG que cambie de color, el medidor de distancia ultrasónica para que detecte si alguien o algo se acerca, un buzzer para hacer sonido y arduino.
De momento no he conseguido que diga "trick-or-treat".

Materiales:
Arduino Nano Rev3 ó Arduino UNO Rev3
Altavoz piezoeléctrico
Led RGB de cátodo comun.
3 resistencias de 100 Ohmnios
Modulo medidor ultrasónico HC-SR04
Unos Cables.
Fuente de alimentación o mediante usb de ordenador.

Esquema:



Código Arduino:


/* ## ARDUINO-HALLOWEEN ###################################### -- by www.misnotaslinux.blogspot.com - 2014 -- Led RGB que cambia de color cada tiempo. Detector de proximidad que activa el buzzer.
Programado con un condicional con millis()
para que simule interrupciones. Para meterlo dentro de una calabaza de Halloween.
########################################################### */ #include const int Trig = 3; // pin "Trig" del HC-SR04 conectado al pin digital 3 de arduino const int Echo = 2; // pin "Echo" del HC-SR04 conectado al pin digital 3 de arduino long cm = 1000; // variable que almacena la medicion de distancia del sensor. Le doy un valor inicial alto para que no suene Ultrasonic HCSR04(Trig,Echo); int pinLedR = 11; // pin Rojo del led RGB int pinLedV = 10; // pin Verde del led RGB int pinLedA = 9; // pin Azul del led RGB long lapso = 2000; // Milisegundos que cambiará de color el led RGB long cuenta = millis() + lapso; // Control del tiempo int dist = 100; // distancia en cm a la que se activa la calabaza int frec = 2500; // frecuencia inicial del sonido void setup(){ pinMode(pinLedR, OUTPUT); // pone el pinLedR como output pinMode(pinLedV, OUTPUT); // pone el pinLedV como output pinMode(pinLedA, OUTPUT); // pone el pinLedA como output } void loop(){ delay(10); // damos un tiempo para que mida el sensor ultrasónico y por efecto sonido cm = HCSR04.convert(HCSR04.timing(), 1); // medimos distnacia frente al sensor if (cm < dist) { tone(8, frec-(cm*20)); } // si hay algo cerca, hace sonar el buzzer con un frecuencia segun la distancia else { noTone(8); } // si no hay nada o nadie callamos el buzzer if ( millis() - cuenta > lapso) { // vemos si el contador ha llegado al tiempo para cambiar color del led analogWrite(pinLedR, 255 * random(0,2)); // colores básicos 0 o 255 al azar en cada canal RGB analogWrite(pinLedV, 255 * random(0,2)); analogWrite(pinLedA, 255 * random(0,2)); cuenta = millis(); // actualizamos el contador } }


La Calabaza:
Hecho esto, el prototipo, el programa ... ahora queda lo mas difícil: "Hacer la La Calabaza".

... y este es el resultado:

video



En el código se puede cambiar la frecuencia (variable frec) para conseguir diferentes sonidos y el delay( ) para cambiar los efecto de sonido. Con delays de unos 15-20ms se consiguen sonidos parecidos a los de R2D2!!.


Una mente ociosa es el taller del diablo.
Northern Exposure, Temporada 6, Cap.: 5.

Terrorífico!!!!