= RaspberryPi =
 * https://www.raspberrypi.org/
 * https://en.wikipedia.org/wiki/Raspberry_Pi
 * Kit in https://www.chiptec.net/pcs-e-mobilidade/computadores/raspberrypi/kit-raspberry-pi-3-modelo-b-noobs-caixa-carregador-preto.html (Kit Raspberry Pi 3 Modelo B+(NOOBS+Caixa+Carregador) Preto)
{{{
Processador	
  Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz
Memória RAM	
  1GB LPDDR2 SDRAM
Armazenamento	
  Cartão MicroSD 32GB com NOOBS
Wi-Fi e Bluetooth	
  2.4GHz e 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE
LAN	
  Gigabit Ethernet em USB 2.0 (saída máxima 300 Mbps)
Expansão	
  Extended 40-pin GPIO header
  CSI camera port
  DSI display port
  4-pole stereo output e composite video port
Portas	
  HDMI 
  USB 2.0 (4) 
  Micro-SD
Alimentação	
  Entrada 5V/2.5A DC
Prazo de Garantia	
  2 Anos
}}}
 * Access GPIO https://elinux.org/RPi_GPIO_Code_Samples#C
 * https://elinux.org/RPi_GPIO_Code_Samples#sysfs
 * https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up
 * https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/print

== BCM2835 ==
 * Timers
 * Interrupt controller
 * GPIO
 * USB
 * PCM / I2S
 * DMA controller
 * I2C master
 * I2C / SPI slave
 * SPI0, SPI1, SPI2
 * PWM
 * UART0, UART1

== Install and configure screensaver and lock screen ==
 * sudo apt-get install xscreensaver
 * Preferences, Screen saver
 * Auto lock after 2 minutes
 * Create new menu item (Preferences, Main menu editor)
  * Menu item name Lock
  * Command: xscreensaver-comand -lock
  * Icon: /usr/share/lxpanel/images/ns-lock.png

== Info ==
{{{
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 9.4 (stretch)
Release:	9.4
Codename:	stretch

$ uname -a
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux
}}}

== Install eclipse ==
 * apt-get install eclipse-platform

== Blink led port 26 ==
 * https://www.raspberrypi.org/documentation/usage/gpio/python/README.md
 * https://gpiozero.readthedocs.io/en/stable/
 *  python drive_gpio26.py
{{{#!highlight python
# drive_gpio26.py
from gpiozero import LED
from time import sleep

led = LED(26)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)
}}}

== Install python 3.8.5 in raspberry py ==
 * tar xvzf Python-3.8.5.tgz 
 * cd Python-3.8.5/
 * ./configure 
 * make clean
 * make
 * make install
 * sudo make install
 * /usr/local/bin/python3.8 -v
 * /usr/local/bin/pip3.8 install cherrypy
 * pip3.8 install jinja2

== Enable X11 forwarding ==
{{{#!highlight bash
# Raspberry pi side
sudo nano /etc/ssh/sshd_config
# add line X11Forwarding yes
service ssh restart
# client side
ssh -X -Y userx@192.168.2.3
echo $DISPLAY
leafpad & # text editor
pcmanfm & # file explorer
}}}

== Blink led service ==
Starts automatically after boot.

=== /home/pi/Documents/drive_gpio26.py ===
{{{#!highlight python
from gpiozero import LED
from time import sleep
import os

f = open('/tmp/drive_gpio26.pid','wb')
f.write(str(os.getpid()))
f.close()

led = LED(26)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)
}}}

=== /etc/init.d/drive_gpio26 ===
{{{#!highlight bash
#! /bin/sh
### BEGIN INIT INFO
# Provides:          drive_gpio26
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Blinks a led
# Description:       Blinks a led
### END INIT INFO
touch /var/lock/drive_gpio26
# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting script drive_gpio26 "
    su pi -c "nohup /usr/bin/python /home/pi/Documents/drive_gpio26.py >> /tmp/drive_gpio26.log 2>&1  &"
    ;;
  stop)
    echo "Stopping script drive_gpio26"
    kill $(cat  /tmp/drive_gpio26.pid)
    ;;
  *)
    echo "Usage: /etc/init.d/drive_gpio26 {start|stop}"
    exit 1
    ;;
esac

exit 0
}}}
 * update-rc.d drive_gpio26 defaults # insert links in /etc/rc*d
 * update-rc.d drive_gpio26 defaults 20 80
 * update-rc.d drive_gpio26 enable
 * service drive_gpio26 status 
 * reboot 

== Install MariaDB raspbian ==
{{{#!highlight bash
sudo bash
apt install mariadb-server
mysql_secure_installation
# define root pass
mysql
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY '????????' WITH GRANT OPTION;
FLUSH PRIVILEGES;
create database testdb;
show databases;
exit
mysql -u admin -p
}}}