Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
guias:orangepizero [2018/01/31 23:50] – [Conexión WIFI] Añadir imagen Sergio Alvariño | guias:orangepizero [2023/01/02 17:26] (actual) – Sergio Alvariño | ||
---|---|---|---|
Línea 5: | Línea 5: | ||
===== Crear una SD arrancable ===== | ===== Crear una SD arrancable ===== | ||
- | Dependiendo de donde conectemos la tarjeta tendremos que usar diferentes rutas. En el procedimiento descrito a continuación '' | + | Dependiendo de donde conectemos la tarjeta tendremos que usar diferentes rutas. En el procedimiento descrito a continuación '' |
- | Si la tarjeta se conecta via adaptador USB, linux la va a asociar a un dispositivo /dev/sdx, por ejemplo en mi portátil el disco duro es '' | + | Si la tarjeta se conecta via adaptador USB, linux la va a asociar a un dispositivo /dev/sdx, por ejemplo en mi portátil el disco duro es '' |
- | Si conectamos una memoria con un adaptador USB linux la podría mapear en '' | + | Si conectamos una memoria con un adaptador USB linux la podría mapear en '' |
- | Si la memoria se conecta mediante una ranura SD, linux la asociará a un dispositivo '' | + | Si la memoria se conecta mediante una ranura SD, linux la asociará a un dispositivo '' |
Los datos se pueden almacenar directamente en la memoria SD o en una partición creada en la memoria. | Los datos se pueden almacenar directamente en la memoria SD o en una partición creada en la memoria. | ||
Línea 17: | Línea 17: | ||
Resumiendo: | Resumiendo: | ||
- | * '' | + | * '' |
- | * ${card}${p} será '' | + | * ${card}${p} será '' |
Antes de seguir adelante hay que estar completamente seguro del dispositivo asociado a nuestra memoria SD para no armar ningún estropicio. | Antes de seguir adelante hay que estar completamente seguro del dispositivo asociado a nuestra memoria SD para no armar ningún estropicio. | ||
Línea 24: | Línea 24: | ||
Hay varias comprobaciones que se pueden hacer: | Hay varias comprobaciones que se pueden hacer: | ||
- | '' | + | '' |
- | + | ||
- | '' | + | |
+ | ''< | ||
< | < | ||
+ | |||
Disk / | Disk / | ||
Units: sectors of 1 * 512 = 512 bytes | Units: sectors of 1 * 512 = 512 bytes | ||
Línea 35: | Línea 35: | ||
Disklabel type: dos | Disklabel type: dos | ||
Disk identifier: 0x00000000 | Disk identifier: 0x00000000 | ||
+ | |||
</ | </ | ||
- | '' | + | |
+ | '' | ||
< | < | ||
| | ||
| | ||
+ | |||
</ | </ | ||
- | Descargamos la imagen de Jessie adaptada a la //Orange Pi Zero// desde la página https:// | ||
- | Descomprimimos | + | Descargamos |
+ | Descomprimimos la imagen y la grabamos en la tarjeta SD con el comando: | ||
< | < | ||
+ | |||
sudo dd if=./ | sudo dd if=./ | ||
+ | |||
</ | </ | ||
- | Insertamos la tarjeta en la //Orange Pi// y le damos alimentación. El primer arranque llevará alrededor de tres minutos, y tras ese tiempo aun hará falta un minuto más para poder hacer login. Este retardo es debido a que el sistema intentará actualizar la lista de paquetes y creará un area de swap de emergencia en la SD, y además cambiará el tamaño de la partición que hemos creado para ocupar todo el espacio libre en la SD. | + | |
+ | Insertamos la tarjeta en la //Orange Pi// y le damos alimentación. El primer arranque llevará alrededor de tres minutos, y tras ese tiempo aun hará falta un minuto más para poder hacer login. Este retardo es debido a que el sistema intentará actualizar la lista de paquetes y creará un area de swap de emergencia en la SD, y además cambiará el tamaño de la partición que hemos creado para ocupar todo el espacio libre en la SD. | ||
De momento solo la he arrancado y efectivamente las particiones han cambiado tras el arranque así que tiene buena pinta. | De momento solo la he arrancado y efectivamente las particiones han cambiado tras el arranque así que tiene buena pinta. | ||
- | Volvemos a insertar la SD en la //Orange Pi// y la conectamos con un cable ethernet al router de casa. El Armbian viene configurado por defecto para obtener su IP desde un servidor DHCP. | + | Volvemos a insertar la SD en la //Orange Pi// y la conectamos con un cable ethernet al router de casa. El Armbian viene configurado por defecto para obtener su IP desde un servidor DHCP. |
Como mi cutre-router no me da información de las IP asignadas usamos //nmap//: | Como mi cutre-router no me da información de las IP asignadas usamos //nmap//: | ||
Línea 59: | Línea 65: | ||
< | < | ||
nmap -sP 192.168.0.0/ | nmap -sP 192.168.0.0/ | ||
+ | |||
</ | </ | ||
- | Con eso averiguamos la IP asignada a la //Orange Pi Zero// y ya podemos hacer login con el siguiente comando ((La password por defecto de Armbian es **1234**, nos pedirá cambiarla en el primer login. | + | |
- | )): | + | Con eso averiguamos la IP asignada a la //Orange Pi Zero// |
< | < | ||
ssh [email protected] | ssh [email protected] | ||
+ | |||
</ | </ | ||
+ | |||
¡Y ya estamos! | ¡Y ya estamos! | ||
{{: | {{: | ||
- | |||
Lo primero es poner al dia el sistema: | Lo primero es poner al dia el sistema: | ||
Línea 76: | Línea 84: | ||
apt-get update | apt-get update | ||
apt-get upgrade | apt-get upgrade | ||
+ | |||
</ | </ | ||
+ | |||
Si quieres puedes reconfigurar el //time zone//: | Si quieres puedes reconfigurar el //time zone//: | ||
< | < | ||
dpkg-reconfigure tzdata | dpkg-reconfigure tzdata | ||
+ | |||
</ | </ | ||
+ | |||
===== Conexión WIFI ===== | ===== Conexión WIFI ===== | ||
Línea 99: | Línea 111: | ||
eth0 no wireless extensions. | eth0 no wireless extensions. | ||
+ | |||
</ | </ | ||
+ | |||
Todo tiene buena pinta, vamos a ver si detecta WIFIs: | Todo tiene buena pinta, vamos a ver si detecta WIFIs: | ||
Línea 116: | Línea 130: | ||
ESSID:"" | ESSID:"" | ||
ESSID:" | ESSID:" | ||
+ | |||
</ | </ | ||
- | Para configurar el wifi echamos un ojo al fichero '' | ||
+ | Para configurar el wifi echamos un ojo al fichero ''< | ||
< | < | ||
+ | |||
# Armbian ships with network-manager installed by default. To save you time | # Armbian ships with network-manager installed by default. To save you time | ||
# and hassles consider using 'sudo nmtui' instead of configuring Wi-Fi settings | # and hassles consider using 'sudo nmtui' instead of configuring Wi-Fi settings | ||
# manually. | # manually. | ||
+ | |||
</ | </ | ||
- | Así que basta con ejecutar '' | ||
+ | Así que basta con ejecutar ''< | ||
+ | {{ : | ||
- | {{ :guias: | + | Ejecutamos ''< |
+ | < | ||
- | Ejecutamos '' | ||
- | |||
- | < | ||
ifconfig | ifconfig | ||
Línea 143: | Línea 159: | ||
collisions: | collisions: | ||
RX bytes:328 (328.0 B) TX bytes:852 (852.0 B) | RX bytes:328 (328.0 B) TX bytes:852 (852.0 B) | ||
+ | |||
</ | </ | ||
+ | |||
====== Orange Pi Zero, características técnicas ====== | ====== Orange Pi Zero, características técnicas ====== | ||
Línea 166: | Línea 184: | ||
Un excelente esquema de pines puede conseguirse en [[https:// | Un excelente esquema de pines puede conseguirse en [[https:// | ||
- | {{:src/img/Orange-Pi-Zero-Pinout.jpg| Pineado Orange Pi}} | + | [[: |
El mapeado de los pines de la Orange (de los micros Allwinner en realidad) en el kernel de Linux viene dado por la formula: | El mapeado de los pines de la Orange (de los micros Allwinner en realidad) en el kernel de Linux viene dado por la formula: | ||
- | |||
< | < | ||
+ | |||
(Position of letter in alphabet - 1) * 32 + Pin number | (Position of letter in alphabet - 1) * 32 + Pin number | ||
+ | |||
</ | </ | ||
- | Para todos los pines PA de nuestra Orange Pi Zero, el número del kernel coincide con el del pin. Pero para los pines //PG06// y //PG07// se corresponden con los códigos //198// y //199//. | + | |
+ | Para todos los pines PA de nuestra Orange Pi Zero, el número del kernel coincide con el del pin. Pero para los pines // | ||
===== Esquemas eléctricos ===== | ===== Esquemas eléctricos ===== | ||
Línea 182: | Línea 202: | ||
La memoria es más que suficiente para correr programas. El Armbian consume únicamente 40Mb en funcionamiento. | La memoria es más que suficiente para correr programas. El Armbian consume únicamente 40Mb en funcionamiento. | ||
- | |||
< | < | ||
+ | |||
root@orangepizero: | root@orangepizero: | ||
| | ||
Línea 189: | Línea 209: | ||
-/+ buffers/ | -/+ buffers/ | ||
Swap: | Swap: | ||
+ | |||
</ | </ | ||
+ | |||
Vamos a hacer algunas pruebas con el hardware. En Armbian, como todo Unix que se precie, todo es un fichero. | Vamos a hacer algunas pruebas con el hardware. En Armbian, como todo Unix que se precie, todo es un fichero. | ||
- | En el directorio '' | + | En el directorio '' |
< | < | ||
Línea 201: | Línea 223: | ||
bsg dma hwmon leds | bsg dma hwmon leds | ||
cedar_dev | cedar_dev | ||
+ | |||
</ | </ | ||
+ | |||
===== LEDs ===== | ===== LEDs ===== | ||
- | Si miramos dentro del directorio '' | + | Si miramos dentro del directorio '' |
< | < | ||
Línea 210: | Línea 234: | ||
root@orangepizero:/ | root@orangepizero:/ | ||
green_led | green_led | ||
+ | |||
</ | </ | ||
- | Podemos ver, por ejemplo, a que evento está asociado cada led ejecutando '' | + | |
+ | Podemos ver, por ejemplo, a que evento está asociado cada led ejecutando '' | ||
< | < | ||
- | root@orangepizero:/ | + | root@orangepizero:/ |
- | none mmc0 mmc1 timer heartbeat backlight [default-on] rfkill0 phy1rx phy1tx phy1assoc phy1radio | + | none mmc0 mmc1 timer heartbeat backlight [default-on] rfkill0 phy1rx phy1tx phy1assoc phy1radio |
- | root@orangepizero:/ | + | root@orangepizero:/ |
- | [none] mmc0 mmc1 timer heartbeat backlight default-on rfkill0 phy1rx phy1tx phy1assoc phy1radio | + | [none] mmc0 mmc1 timer heartbeat backlight default-on rfkill0 phy1rx phy1tx phy1assoc phy1radio |
</ | </ | ||
- | O podemos encender el led rojo ejecutando '' | + | |
+ | O podemos encender el led rojo ejecutando '' | ||
===== GPIO ===== | ===== GPIO ===== | ||
Línea 233: | Línea 261: | ||
| | ||
| | ||
+ | |||
</ | </ | ||
+ | |||
Podemos activar un nuevo puerto GPIO, digamos el 15: | Podemos activar un nuevo puerto GPIO, digamos el 15: | ||
< | < | ||
- | root@orangepizero: | + | root@orangepizero: |
</ | </ | ||
+ | |||
Ahora veremos el puerto activo: | Ahora veremos el puerto activo: | ||
< | < | ||
- | root@orangepizero: | + | root@orangepizero: |
GPIOs 0-383, platform/ | GPIOs 0-383, platform/ | ||
| | ||
Línea 250: | Línea 282: | ||
| | ||
| | ||
+ | |||
</ | </ | ||
- | En el directorio '' | + | |
+ | En el directorio '' | ||
====== Bibliotecas útiles ====== | ====== Bibliotecas útiles ====== | ||
Línea 265: | Línea 299: | ||
sudo aptitude install python-virtualenv | sudo aptitude install python-virtualenv | ||
sudo aptitude install python-dev | sudo aptitude install python-dev | ||
+ | |||
</ | </ | ||
- | El caso es que el // | + | |
+ | El caso es que el // | ||
< | < | ||
pip install --upgrade pip | pip install --upgrade pip | ||
pip install --upgrade virtualenv | pip install --upgrade virtualenv | ||
+ | |||
</ | </ | ||
- | Despues de eso ya he podido usar // | + | |
+ | Despues de eso ya he podido usar // | ||
==== orangepi_PC_gpio_pyH3 ==== | ==== orangepi_PC_gpio_pyH3 ==== | ||
Línea 278: | Línea 316: | ||
Tenemos dos repos disponibles: | Tenemos dos repos disponibles: | ||
- | El repositorio original con las librerías //gpio// para H3: | + | El repositorio original con las librerías // |
< | < | ||
git clone https:// | git clone https:// | ||
+ | |||
</ | </ | ||
- | Y un fork del repositorio original **ya adaptado** a la Orange Pi Zero (que es el que usaremos): | + | |
+ | Y un fork del repositorio original **ya adaptado** | ||
< | < | ||
git clone https:// | git clone https:// | ||
+ | |||
</ | </ | ||
- | **IMPORTANTE: | ||
- | Por ejemplo: la definicion de // | + | **IMPORTANTE: |
+ | |||
+ | Por ejemplo: la definicion de // | ||
< | < | ||
{ " | { " | ||
+ | |||
</ | </ | ||
+ | |||
Nos clonamos el repo. Vamos a hacer todas las pruebas desde la cuenta de **root**. | Nos clonamos el repo. Vamos a hacer todas las pruebas desde la cuenta de **root**. | ||
Línea 302: | Línea 346: | ||
virtualenv test_pyH3_zero | virtualenv test_pyH3_zero | ||
source test_pyH3_zero/ | source test_pyH3_zero/ | ||
+ | |||
</ | </ | ||
+ | |||
Compilamos la biblioteca: | Compilamos la biblioteca: | ||
Línea 308: | Línea 354: | ||
cd orangepi_PC_gpio_pyH3 | cd orangepi_PC_gpio_pyH3 | ||
python setup.py install | python setup.py install | ||
+ | |||
</ | </ | ||
+ | |||
Y ya podemos probar los ficheros de ejemplo: | Y ya podemos probar los ficheros de ejemplo: | ||
Línea 314: | Línea 362: | ||
examples/ | examples/ | ||
examples/ | examples/ | ||
+ | |||
</ | </ | ||
+ | |||
El resto de ejemplos no van a funcionar, están escritos para la // | El resto de ejemplos no van a funcionar, están escritos para la // | ||
Línea 327: | Línea 377: | ||
ls | ls | ||
gpio/ i2c/ __init__.py | gpio/ i2c/ __init__.py | ||
+ | |||
</ | </ | ||
- | Nos interesa probar las bibliotecas en los directorios //gpio// e //i2c//, al menos de momento. Serían // | ||
- | Probamos el acceso al //gpio// desde C con un programa sencillo que nos haga encender y apagar el led de la OPI. | + | Nos interesa probar las bibliotecas en los directorios // |
+ | |||
+ | Probamos el acceso al // | ||
< | < | ||
Línea 342: | Línea 394: | ||
sleep(1); | sleep(1); | ||
} | } | ||
+ | |||
</ | </ | ||
+ | |||
==== WiringOP-Zero ==== | ==== WiringOP-Zero ==== | ||
- | Esta biblioteca imita a la // | + | Esta biblioteca imita a la // |
Tenemos un fork que viene preparado para la Orange Pi Zero disponible aquí: | Tenemos un fork que viene preparado para la Orange Pi Zero disponible aquí: | ||
Línea 351: | Línea 405: | ||
< | < | ||
https:// | https:// | ||
+ | |||
</ | </ | ||
+ | |||
GPIO funciona completamente y al parecer aun no han testeado el i2c (tiene mala pinta) | GPIO funciona completamente y al parecer aun no han testeado el i2c (tiene mala pinta) | ||
Línea 361: | Línea 417: | ||
chmod +x ./build | chmod +x ./build | ||
sudo ./build | sudo ./build | ||
+ | |||
</ | </ | ||
+ | |||
Podemos comprobar que todo se ha instalado correctamente: | Podemos comprobar que todo se ha instalado correctamente: | ||
Línea 369: | Línea 427: | ||
| H2+ | wPi | | | H2+ | wPi | | ||
| | ||
- | | + | |
- | | + | |
- | | + | |
| | ||
- | | + | |
| | ||
- | | + | |
| | ||
- | | + | |
- | | + | |
| | ||
| | ||
- | | + | |
| | ||
- | | + | |
| | ||
| H2+ | wPi | | | H2+ | wPi | | ||
| | ||
+ | |||
</ | </ | ||
- | Instalamos las i2c-tools '' | + | |
+ | Instalamos las i2c-tools '' | ||
==== WiringPI-Python-OP ==== | ==== WiringPI-Python-OP ==== | ||
Línea 402: | Línea 462: | ||
1.Download [WiringOP libary for the Orange Pi Zero] from here. | 1.Download [WiringOP libary for the Orange Pi Zero] from here. | ||
- | https:%%//%%github.com/ | + | https:< |
2.Download [[# | 2.Download [[# | ||
- | https:%%//%%github.com/ | + | https:< |
3.Replace base library | 3.Replace base library | ||
Línea 459: | Línea 519: | ||
Podemos ver estadísticas de nuestra OPI con: | Podemos ver estadísticas de nuestra OPI con: | ||
- | |||
< | < | ||
+ | |||
sudo armbianmonitor -m | sudo armbianmonitor -m | ||
Línea 480: | Línea 540: | ||
21: | 21: | ||
21: | 21: | ||
+ | |||
</ | </ | ||
+ | |||
También podemos instalar RPi-Monitor con el comando: | También podemos instalar RPi-Monitor con el comando: | ||
< | < | ||
sudo armbianmonitor -r | sudo armbianmonitor -r | ||
+ | |||
</ | </ | ||
- | Una vez instalado podemos visitar desde nuestro navegador la dirección ip de nuestra OPI Zero // | ||
- | {{:src/img/ | + | Una vez instalado podemos visitar desde nuestro navegador la dirección ip de nuestra OPI Zero //http:< |
+ | |||
+ | {{ :guias:rpimonitor.png | ||
¡Ojo! Las gráficas no se refrescan automáticamente hay que recargar la página. | ¡Ojo! Las gráficas no se refrescan automáticamente hay que recargar la página. | ||
Para desinstalar el RPi-Monitor basta con: | Para desinstalar el RPi-Monitor basta con: | ||
- | |||
< | < | ||
+ | |||
sudo aptitude uninstall rpimonitor | sudo aptitude uninstall rpimonitor | ||
+ | |||
</ | </ | ||
+ | |||
====== Referencias ====== | ====== Referencias ====== | ||
Línea 502: | Línea 568: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
- | * http:// | + | * [[http:// |
- | * https:// | + | * [[https:// |
- | * https:// | + | * [[https:// |
- | * https:// | + | * [[https:// |
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
Línea 513: | Línea 579: | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ** | ||
+ | |||