Raspberrypi

De WikiParodi

http://es.rs-online.com/web/generalDisplay.html?id=raspberrypi

Raspberry Pi es un ordenador del tamaño de una tarjeta de crédito que se puede conectar a una TV o a un teclado. Es un PC en miniaturacon procesador ARM que se puede utilizar para muchas de las cosas que un PC de escritorio puede hacer, como hojas de cálculo, procesador de word y videojuegos. Además puede reproducir videos en alta definición. El modelo de placa B de Raspberry Pi se entrega como una placa solamente, ya que viene sin memoria, ni batería, ni teclado ni cables o carcasas.

http://www.raspberrypi.org/

http://es.farnell.com/raspberry-pi-accessories

https://export.farnell.com/jsp/raspi/orderPad.jsp?&country=ES

http://www.raspberrypi.org/quick-start-guide

Instalar proyecto luces y camara

Instalar noobs 1.3.3

Preparamos la tarjeta SD desde Ubuntu 12.04.LTS
Descargamos de http://www.raspberrypi.org/downloads la version completa o la version ligera
Vamos a la carpeta de descargas y lo descomprimimos en la misma
Formateamos la tarjeta SD utilizando gparted (instalarlo en su caso) 
Instalamos gparted en un terminal con sudo apt-get install gparted
Pinchamos la tarjeta SD al PC y la reconocerá.
Abrimos gparted
Desmontamos la tarjeta y formateamos a FAT32, la formatea y la monta automáticamente
Abrimos la tarjeta y le copiamos todos los archivos que hay dentro de la carpeta descargada y descomprimida
Extraemos la tarjeta ya preparada y la llevamos al RPi
Arrancamos RPI y después de unos pasos previos nos permite seleccionar los S.O. que tendremos disponibles.
Seleccionamos e instalamos al menos raspbian. 
Hemos elegido la version ligera de NOOBs. Tenemos que conectar RPi a internet por cable.
Se descargará los sistemas seleccionados.
http://www.aquihayapuntes.com/%C3%ADndice-sistemas-embebidos/rasperry-pi-noobs-vs-berryboot.html

instalar raspbian

sudo raspi-config
entre las opciones que aparecen, internacionalizar y update son muy importantes
Se activa la raspicam
Configurar el teclado que aparece por defecto y aparecen varias opciones de teclados en ingles y una opcion otros.
Seleccionamos otros y a partir de esta podemos configurar el tecaldo en español.
Además debemos actualizar raspi-config con la opcion update del submenu avanzado.

Copiar contenido a la tarjeta

montamos la tarjeta en un PC con ubuntu, y accedemos a la partición root en la que podemos encontrar /home/pi 
Copiamos la información que nos interese en dicha carpeta /home/pi a la que podremos acceder más tarde en la RPi.

cambiar el config.txt desde berryboot o noobs

sudo fdisk -l
mount -t ext4 /dev/hda2 /
sudo mkdir /mnt/raiz
sudo mount -t vfat /dev/hda5 /mnt/raiz (windows fat32)
sudo mount -t vfat /dev/mmcblk0p1 /mnt/raiz
sudo nano /mnt/raiz/config.txt
sudo df -h /mnt/vmtmpfs


actualizar

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

Configurar routers para redirigir tráfico al servidor raspberry pi

introducir en DMZ la IP de raspberry pi 
configura la RPi con IP fija  y activar el DMZ dirigido a la IP de la RPi   
http://www.adslzone.net/tutorial-34.3.html


Acceso mediante putty

instalar python: 
sudo apt-get install python-dev
sudo apt-get install python-dev python-s e t u p t o o l s


instalar wringpi (https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/)

de acuerdo con las instrucciones del curso de la Universidad de Galileo
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build
---------------------------
pi@raspberrypi ~/wiringPi $ ./build
wiringPi Build script
=====================


WiringPi Library
[UnInstall]
[Compile] wiringPi.c
[Compile] wiringSerial.c
[Compile] wiringShift.c
[Compile] piHiPri.c
[Compile] piThread.c
[Compile] wiringPiSPI.c
[Compile] wiringPiI2C.c
[Compile] softPwm.c
[Compile] softTone.c
[Compile] mcp23008.c
[Compile] mcp23016.c
[Compile] mcp23017.c
[Compile] mcp23s08.c
[Compile] mcp23s17.c
[Compile] sr595.c
[Compile] pcf8574.c
[Compile] pcf8591.c
[Compile] mcp3002.c
[Compile] mcp3004.c
[Compile] mcp4802.c
[Compile] mcp3422.c
[Compile] max31855.c
[Compile] max5322.c
[Compile] sn3218.c
[Compile] drcSerial.c
[Link (Dynamic)]
[Install Headers]
[Install Dynamic Lib]

WiringPi Devices Library
[UnInstall]
[Compile] ds1302.c
[Compile] maxdetect.c
[Compile] piNes.c
[Compile] gertboard.c
[Compile] piFace.c
[Compile] lcd128x64.c
[Compile] lcd.c
[Compile] piGlow.c
[Link (Dynamic)]
[Install Headers]
[Install Dynamic Lib]

GPIO Utility
[Compile] gpio.c
gpio.c:85:12: warning: ‘decodePin’ defined but not used [-Wunused-function]
[Compile] extensions.c
[Compile] readall.c
[Link]
[Install]

All Done.

NOTE: This is wiringPi v2, and if you need to use the lcd, Piface,
  Gertboard, MaxDetext, etc. routines then you must change your
  compile scripts to add -lwiringPiDev

----------------------------
gpio -v
gpio readall
----------------- ayuda http://wiringpi.com/download-and-install/
----------------- ver https://github.com/WiringPi/WiringPi

Con lo anterior queda instalado wiringpi for python:

    ver http://www.raspberrypi.org/phpBB3/viewtopic.php?f=32&t=10010&start=75
    git clone https://github.com/WiringPi/WiringPi-Python.git
    https://github.com/WiringPi/WiringPi-Python


Instalar wiringpi2
http://apps.ges.galileo.edu/262150943/introducci_naraspberrypi/preguntas/1020/error-en-video-de-instalacion-de-wiringpi2
Los pasos para instalarlo están en https://github.com/Gadgetoid/WiringPi2-Python
git clone https://github.com/Gadgetoid/WiringPi2-Python.git
cd WiringPi2-Python
sudo python s e t u p .py install
------------otra recomandación 
http://raspi.tv/how-to-install-wiringpi2-for-python-on-the-raspberry-pi
sudo apt-get update
sudo apt-get install python-dev python-pip
sudo pip install wiringpi2
--------- Probar
sudo python
import wiringpi2
wiringpi2.piBoardRev() 
-------
http://raspi.tv/how-to-install-wiringpi2-for-python-on-the-raspberry-pi
https://github.com/Gadgetoid/WiringPi2-Python
https://pypi.python.org/pypi/wiringpi2


instalar servidores apache, mysql y cliente phpmyadmin

http://geekytheory.com/tutorial-raspberry-pi-15-instalacion-de-apache-mysql-php/ Tutorial Raspberry Pi – 15. Instalación de Apache + MySQL + PHP

1º Instalación de Apache y php
Lo primero que haremos será crear y dar permisos al grupo que usa apache por defecto.
sudo addgroup www-data
sudo usermod -a -G www-data www-data
Asignamos los permisos de www-data 
sudo mkdir /var/www
sudo chown www-data:www-data /var/www/
Damos los permisos adecuados al directorio
sudo chmod 775 /var/www/
Añadimos el usuario pi al grupo www-data
sudo usermod -a -G www-data pi
update de los repositorios y procedemos a instalar Apache y PHP:
sudo apt-get update
sudo apt-get install apache2 php5 libapache2-mod-php5
Reiniciamos Apache:
sudo /etc/init.d/apache2 restart
2º Instalación y configuración de MySQL y PHPMyAdmin
(No neceario: El primer paso que se realizará será activar nuestra interfaz loopback 
ya que si no lo hacemos nos dará un error al instalar MySQL ->  sudo ifup lo)
instalar MySQL y PHPMyAdmin:
sudo apt-get install mysql-server mysql-client php5-mysql
sudo apt-get install phpmyadmin
Al instalarse nos aparecerá una pantalla de configuración preguntando la contraseña que queremos usar. 
lo que sigue en cursiva no ha sido necesario
 (----------- No necesario: Tras esto añadimos en el archivo:
 sudo nano /etc/php5/apache2/php.ini
 Antes de la línea “Dynamics Extensions”:
 extension=mysql.so
 Tras esto escribimos los siguientes comandos:
 sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
 sudo /etc/init.d/apache2 reload ------------)
 Una vez esta todo instalado probamos que todo funciona perfectamente, para ello creamos un archivo en la ruta /var/www llamado testphp.php incluyendo la siguiente función:
 phpinfo()

Usar mysql con python

http://raspberrywebserver.com/sql-databases/using-mysql-on-a-raspberry-pi.html
sudo apt-get install mysql-server python-mysqldb

Servidor ftp

http://es.wikihow.com/hacer-un-servidor-web-Raspberry-Pi
sudo chown -R pi /var/www (no ha sido  necesario)
sudo apt-get install vsftpd
Configura FTP
Edita tu archivo vsftpd.conf, usualmente ubicado en /etc/vsftpd.conf. 
sudo nano /etc/vsftpd.conf
Cambia anonymous_enable=YES a anonymous_enable=NO, 
quita local_enable=YES y write_enable=YES, 
ve al final del archivo y agrega force_dot_files=YES. 
reinicia vsftpd: 
sudo service vsftpd restart

usuarios

lo que sigue en cursiva no ha sido necesario
 sudo passwd root
 Salte de tu sesión SSH, y vuélvete a conectar como root.
 Edita el archivo de la configuración de la contraseña:
 sudo nano / e t c / p a s s w d
 Encuentra la línea pi:x;1000:1000:Raspberry Pi User,,,:home/pi:/bin/bash y agrega un # al principio. 
 Ahora guarda y cierra el archivo.
 Agrega el usuario pi como modificador.
 sudo usermod -d /var/www pi
 Ahora cierra tu sesión SSH, y conéctate como pi, 
 luego da los derechos de modificación a root.
 sudo usermod -L root

instalar mc

sudo apt-get install mc


crear un ramdisk. Crear un punto de montaje, por example /var/www/ramdisk:

sudo mkdir /var/www/ramdisk
Cambiar los derechos del directorio
sudo chmod 777  /var/www/ramdisk
Montar este e indicar el tamaño
sudo mount -t tmpfs -o size=10M tmpfs /var/www/ramdisk
Para tenerlo siempre disponible, editar /etc/fstab 
sudo nano /etc/fstab
y añadir la linea:
tmpfs /var/www/ramdisk tmpfs defaults,size=100k 0 0
df -h /var/www/ramdisk (ver tamaño) (10M son 10 megas, 100k son 100 kb)
------------ Debian: create a ram disk with tmpfs ------ fuentes utilizadas:
http://naze.mine.nu/?p=409
http://raspberrypi.stackexchange.com/questions/4276/how-can-i-increase-the-size-of-the-ram-disk


iniciar camara

https://www.modmypi.com/blog/tutorials/raspberry-pi-camera-board-raspistill-command-list
https://www.modmypi.com/blog/tutorials/raspberry-pi-camera-board-raspivid-command-list
https://www.dropbox.com/s/1qk4ehs7wkp2ps9/RaspiCamDocs.odt
https://www.modmypi.com/blog/installing-the-raspberry-pi-camera-board
http://www.handsdown.be/raspicam/
raspistill --nopreview -w 640 -h 480 -q 5 -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &
raspistill --nopreview -w 320 -h 240 -q 5 -o /mnt/vmtmpfs/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &
raspistill --nopreview -w 320 -h 240 -q 5 -o /var/www/ramdisk/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &
raspistill --nopreview -w 320 -h 240 -q 8 -o /var/www/ramdisk/pic.jpg -tl 444 -t 9876000 -th 0:0:0 &
-tl toma foto cada 444 miliseg
-t está tomando fotos durante  9.876.000 milisec
video con la camara http://www.mybigideas.co.uk/RPi/RPiCamera/

Poder utilizar la camara con cualquier usuario (www-data)

sudo chmod a+rw /dev/vchiq
(fuente: http://blog.norsip.com/author/luise/)

Fotos con la Raspberry Pi (raspistill)

raspistill -t 0 -o foto.jpg -vf
Parámetros usados: 
-t 0 Para evitar que espere 5 segundos y saque la foto (por defecto vale 5000)
-vf Inversión vertical
Muy útil: Generador de parámetros para los comandos raspivid y raspistill: http://www.handsdown.be/raspicam/


Activar camara raspicam (no es necesario. ya debería estar funcionando)

lo que sigue en cursiva no ha sido necesario
 sudo raspi-config
 avanzado / actualizar raspi-config
 ------
 your firmware appears to be out of date (no start_x.elf). Please update
 Actualización firmware de la GPU (http://misapuntesde.com/post.php?lang=es)
 La última actualización de firmware ha añadido el fichero start_x.elf, que incluye los codecs extra (gratis): MJPEG, VP6, VP8, Ogg Theora, y de audio: Ogg Vorbis. MJPEG también ha sido añadido.
 Para usar start_x.elf, actualiza con rpi-update, 
 sudo rpi-update
 y añade al fichero config.txt
 start_file=start_x.elf
 fixup_file=fixup_x.elf

permisos para ejecutar modificaciones gpio desde python

sudo visudo
al final de todo pones esto 
www-data ALL=NOPASSWD: /var/www/pcontrol.py                
si quieres añadir más programas solo pones una coma (,) y la direccion de otro programa
http://www.coyan.es/Blog/2012-06/servidor-web-raspberry-pi/
http://www.mobilewill.us/2012/07/raspberry-pi-and-gpio-permissions.html
Si hay una edicion incorrecta con visudo, hay que trabajar un poco para repararlo


Script conexion con lapepa.net
 sudo nano conectar



#!/bin/sh

### BEGIN INIT INFO
# Provides:          conectar
# Required-Start:    $local_fs $network $local_fs $network
# Required-Stop:     $local_fs $network $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: conectar
# Description:       enviar IP a la pepa
### END INIT INFO

# se ejecuta al iniciar RPi
# sudo nano /etc/init.d/conectar
# sudo /etc/init.d/conectar defaults
# chmod 755 /etc/init.d/conectar
# insserv conectar
# pi@raspberrypi ~/download/pi-blaster/pi-blaster $ sudo update-rc.d conectar start 90 2 3 4 5 stop 90 0 1 6 .
# lo anterior no da errores
# sudo update-rc.d conectar revome # eliminar del registro

case "$1" in
start)
        echo "Conectando RPi a la pepa ................. "
        wget -N -q http://www.lapepa.net/servidorCarlos/escribeIP.php
        sudo chmod a+rw /dev/vchiq # permitir a cualquier usuario ver y escribir la raspicam
        sudo chown -R www-data:www-data /var/www  (para que raspistill pueda escribir en ramdisk desde php) 
        raspistill --nopreview -w 320 -h 240 -q 8 -o /var/www/ramdisk/pic.jpg -tl 444 -t 9876000 -th 0:0:0 &
;;

stop)
       echo "Desconectando RPi a la pepa ............ "
       wget -N -q http://www.lapepa.net/servidorCarlos/borraIP.php
       sudo killall raspistill  # kill -9 pidof raspistill

;;

*)
        echo "Usage: /etc/init.d/conectar {start|stop}"
        exit 0;;

esac
exit 1

Matar procesos de raspistill

ps -efA | grep 'raspistill'
kill -9 pidof raspistill
o con
killall raspistill

instalar en el arraque de rpi un script para que envíe la IP del router a www.lapepa.net

de forma que la página de acceso de servidores tenga este dato. 
El script se descarga de http://www.lapepa.net/lapepa y se instala: 
En el terminal:
sudo nano /etc/init.d/conectar 
y llenar con el contenido anterior
sudo  chmod +x conectar
sudo chown pi:pi conectar
chmod 755 /etc/init.d/conectar
sudo update-rc.d conectar defaults

index.php

pcontrol.py

Conexión de los servomotores mediante

http://learn.adafruit.com/adafruits-raspberry-pi-lesson-8-using-a-servo-motor/overview
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-8-using-a-servo-motor/the-pwm-and-servo-kernel-module
Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685
http://learn.adafruit.com/adafruit-16-channel-servo-driver-with-raspberry-pi?view=all
con arduino
http://www.doctormonk.com/2012/07/raspberry-pi-meets-arduino-part-2.html
http://www.raspihub.com/go/aa9b4e13ca60447a26b16470fd5c477df801b00d6fbf7ac7f76e0467801d472e
http://shop.pimoroni.com/products/adafruit-motor-stepper-servo-shield-for-arduino-v2-kit

Conexion wifi

http://learn.adafruit.com/adafruits-raspberry-pi-lesson-3-network-se t up/overview
http://www.dafinga.net/2013/01/how-to-se t up-raspberry-pi-with-hidden.html
----------------------
Make sure that the latest Raspberry Pi firmware version is installed??
sudo apt-get install raspberrypi-bootloader
----------------------
instalar:
sudo apt-get install wpasupplicant
-------------
Enlaces:
http://blog.elevendroids.com/2012/12/raspberry-pi-wifi-configuration/
http://www.slblabs.com/2012/09/27/rpi-wifi/
http://idevit.nl/pi/wifi
http://engineer.john-whittington.co.uk/2012/09/sertting-up-a-usb-wireless-dongle-on-raspberry-pi-arch/

https://wiki.archlinux.org/index.php/Wireless#Manual_wireless_connection_at_boot_using_systemd

http://www.raspberrypi.org/forum/viewtopic.php?t=7984&p=96014

lsusb

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter

dmesg | grep 0bda

[    3.413152] usb 1-1.2: New USB device found, idVendor=0bda, idProduct=8172

dmesg | grep 1-1.2

[    3.280243] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[    3.413152] usb 1-1.2: New USB device found, idVendor=0bda, idProduct=8172
[    3.427809] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.437964] usb 1-1.2: Product: RTL8191S WLAN Adapter
[    3.445841] usb 1-1.2: Manufacturer: Manufacturer Realtek
....

sudo nano /etc/network/interfaces

auto lo
#
iface lo inet loopback
iface eth0 inet dhcp
#
allow-hotplug wlan0
# iface wlan0 inet manual
iface wlan0 inet dhcp
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
cd /etc/wpa_supplicant/
sudo wpa_passphrase "sj63x" "mipassword" >> /etc/wpa_supplicant/wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
sudo iwlist scanning
sudo ip link s e t wlan0 down
sudo ip link s e t wlan0 up
sudo wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf  
sudo wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
sudo wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &
sudo dhclient wlan0
ip addr 
service networking restart
Generate a PSK version of your WLAN password with wpa_passphrase utility
en el terminal: wpa_passphrase "<Your Wifi SSID>" "<Your Wifi PASSWORD>"
sudo nano /etc/network/interfaces
y añadir
--------
lsusb
lsmod
ifconfig
iwcongif

Cable conexion USB y TTL GPIO

USB to TTL Serial Cable - Debug / Console Cable for Raspberry Pi - 
http://www.adafruit.com/products/954#Description
954close_MED.jpg

Conexion de la placa de prueba a los GPIO de la RPi

Led rojo ... pin sexto bajo izquierda
Led verde ... pin sexto bajo derecha
Led amarillo ... pin quinto bajo derecha
Masa ... primero bajo izquierda 
Timbre ...  pin 
Linea on/off del Foco 220v ... pin 
Conexion al foco 220v ... conector con marca F de la derecha
Conexion a red electrica 220 v. ... conector con marca 220 de la izquierda
Servomotores 
movimientos horizontales ... 
movimientos verticales ...  

enlaces

http://es.wikihow.com/hacer-un-servidor-web-Raspberry-Pi
http://geekytheory.com/tutorial-raspberry-pi-15-instalacion-de-apache-mysql-php/
http://lifeofageekadmin.com/how-to-use-a-raspberry-pi-as-a-web-server/
http://geekytheory.com/tutorial-raspberry-pi-15-instalacion-de-apache-mysql-php/
http://www.apachefriends.org/es/xampp.html
https://dl.dropboxusercontent.com/u/45162832/Backup_RPi.pdf
robotica
http://rsppi.blogspot.com.es/2012/06/domotica-en-raspberrypi-parte-2.html

Voip con raspberry pi

http://rsppi.blogspot.com.es/2012/05/asterisk-en-el-raspberrypi.html

http://www.tubuntux.com/2014/11/tuto-instalar-transmission-en-la.html?utm_source=dlvr.it&utm_medium=twitter

Herramientas personales