#Test Aria G25

<abstract>
Appunti presi durante la realizzazione del nuovo Banco di test per Aria G25
</abstract>

## Hardware

Il banco di test Aria G25 si compone delle seguenti parti:

* La scheda Banco Aria progettata da Roberto su cui gira una distribuzione Linux Buildroot per Aria G25 tagliata per il test
* Una scheda CM3-Panel che fa da terminale
* Una scheda ESP-32 che fa da attuatore della movimentazione
* Una meccanica custom

### Stepper motor

Lo stepper motor viene pilotato da un driver della Pololu connesso cosi al modulo ESP32:

<img src="https://a.pololu-files.com/picture/0J4232.1200.png?f2f6269e0a80c41f0a5147915106aa55">

Il modulo viene gestito dall'ESP-32 tramite i seguenti GPIO

| ESP-32 |        |
|--------|--------|
| G27    | ENABLE |
| G14    | STEP   |
| G12    | DIR    |

### Pulsanti

I pulsanti di attuazione sono connessi tra i pin di GPIo dell'ESP-32 e la massa con
una resistenza di pull-up verso i 3V3

| ESP-32 |       |
|--------|-------|
| G15    | Green |
| G4     | Blu   |
| G18    | Red   |


### Segnali servo RC

Il servo RC è connesso a 5V e GND e pilotato da un GPIO dell'ESP-32 direttamente senza driver

| ESP-32 |        |
|--------|--------|
| G23    | PWM    |


### Relè di accensione banco Aria

Il banco Aria viene alimentato a 5V tramite un rele. Il modulo rele è pilotato da una linea
GPIO dell'ESP-32 senza driver.

| ESP-32 |                          |
|--------|--------------------------|
| G25    | Rele alimentazione Berta |

* [Modulo a relè su Amazon](https://www.amazon.it/gp/product/B07BVXT1ZK) Euro 6.48 + IVA 5 pezzi

### Strip di led

La strip di led è alimentata da 5V e GND e da un GPIO dell'ESP direttamente senza driver

| ESP-32 |                          |
|--------|--------------------------|
| G13    | Striscia led             |

### Connessioni su CM3-Panel

Connettore EXP1 con seriale collegata al banco di test Aria

| Pi GPIO |     |              |
|---------|-----|--------------|
| 36      | TXD | /dev/ttyAMA0 |
| 37      | RXD | /dev/ttyAMA0 |

Connettore EXP2 con seriale collegata all'ESP32

| Pi GPIO |      | Device       | ESP32 | ESP GPIO | 
|---------|------|--------------|-------|----------|
| 32      | TXD  | /dev/ttyS0   | RXD2  | G16      | 
| 33      | RXD  | /dev/ttyS0   | TXD2  | G17      |

<!--************************************-->
<!--************************************-->
<!--************************************-->

## Software su CM3-Panel-7-basic terminale

<img src="/photos/products_640/CM3-PANEL-7-BASIC-UE.jpg" width="256px">

Usare una Rasperry OS versione lite seguendo questo articolo

* @article='CM3-PANEL-7-BASIC_microsd'

Usare:

	raspi-config

e cambiare il nome host in <b>bancoaria</b> e settare il timezone su Roma

Inserire queste due linee in /boot/config.txt :

Attivazione porta seriale /dev/ttyAMA0:

	dtoverlay=uart0,txd0_pin=36,rxd0_pin=37,pin_func=6

Rotazione 90 gradi visualizzazione su LCD:

	display_rotate=1
	framebuffer_width=480
	framebuffer_height=800

Rimuovere da /boot/cmdline.txt il seguente parametro:

	console=serial0,115200

Inserire in /etc/dhcpcd.conf la seguente linea:

	interface eth0 
	static ip_address 192.168.0.2/24

Installare i seguenti pacchetti:

	sudo apt update
	sudo apt install apache2 python-serial


Scaricare in /home/pi il seguente file:

* [terminal.py](./terminal.py)	

con il comando

	wget https://www.acmesystems.it/tanzilli/banco_aria/terminal.py

Inserire questo service systemd per lanciare automaticamente il
terminale:

	sudo nano /lib/systemd/system/terminal.service

Contenuto:

	[Unit]
	Description=Banco test terminal
	After=multi-user.target
	Conflicts=getty@tty1.service
	
	[Service]
	Type=simple
	#ExecStart=/usr/bin/minicom --color=on -b 115200 -D /dev/ttyAMA0
	WorkingDirectory=/home/pi
	ExecStart=/usr/bin/python terminal.py
	StandardInput=tty-force
	StandardOutput=inherit
	StandardError=inherit
	
	[Install]
	WantedBy=multi-user.target

Abilita il lancio automatico allo startup

	sudo systemctl daemon-reload
	sudo systemctl enable terminal.service

<!--************************************-->
<!--************************************-->
<!--************************************-->

## Software Aria G25

<abstract>
Il software che gira sulla scheda banco di test Aria è una distribution buildroot con sopra una libreria aggiornata di ablib.py e un programma di test che si chiama test.py
</abstract>

Per fare al volo una microSD basta usare Balena etcher e questa immagine per avere microSD pronta per 
il banco di test. Non serve leggere come usare buildroot.

* [sdcard.img](https://www.acmesystems.it/download/bancoaria/sdcard.img)

Inserire in un PC Linux la microSD e scaricarci sopra questi file:

* Nella prima partizione [at91-ariag25.dtb](./at91-ariag25.dtb) 
* Nella seconda partizione nella directory /etc/root i seguenti files:
	* [ablib.py](./ablib.py) 
	* [test.py](./test.py) 

## Approfondimento su come è stata fatta l'immagine Buildroot

@wip

* Abilitato ACL su Kernel
* Abilitato gpiosys su Kernel

Package Debian installati:

	sudo apt install apt-utils
	sudo apt install memtester
	sudo apt install python python-serial
 
### Autologin su porta seriale

	sudo nano /lib/systemd/system/serial-getty\@.service

Inserire la linea
		
	ExecStart=-/sbin/agetty --autologin acme --keep-baud 115200,38400,9600 %I $TERM 

* <https://askubuntu.com/questions/1010805/disable-auto-login-on-16-04-when-connecting-via-serial-console>

IP impostato staticamente a 192.168.0.3

	sudo nano /etc/network/interfaces.d/eth0
	
contenuto:

	
Log disabilitato con il comando:

	sudo systemctl enable systemd-journald.service


## Hardware

* [Stepper Motor Driver Pololu DRV8825](https://www.pololu.com/product/2133)
* [Modulo DRV8825 su Amazon](https://www.amazon.it/gp/product/B07K9ZB7M5) Euro 8.92 + IVA 5 pezzi
* [Pulsanti su Amazon](https://www.amazon.it/gp/product/B07T1ZLLPW) Euro 7.94 + IVA 24 pezzi
* [Servo RC su Amazon](https://www.amazon.it/gp/product/B07Q1GJJZS) Euro 16.6 + IVA 10 pezzi
* Modulo ESP32
	* [Link su Amazon](https://www.amazon.it/gp/product/B074RG86SR/) Euro 26.21 + IVA 5 pezzi
	* [Schema elettrico](https://cdn.shopify.com/s/files/1/1509/1638/files/ESP-32_NodeMCU_Developmentboard_Schematic.pdf?v=1609851470)


La scheda di controllo è alimentata a 12 volt DC

* La CM3-Panel viene alimentata direttamente
* L'ESP-32, il modulo rele, il motore RC e la Berta vengono alimentato da un DC-DC converter da 12 volt a 5 volt
	* [Modulo step down su Amazon](https://www.amazon.it/Yizhet-Convertitore-Regolatore-Regolabile-Alimentatore/dp/B0823P6PW6) Euro 10.49 + IVA 5 pezzi
* I modulo pololu viene alimentato da un DC-DC converter da 12 volt a 15 volt
	* [Modulo step down su Amazon](https://www.amazon.it/gp/product/B07MY3NZ18) Euro 5.67 + IVA 5 pezzi


### Schemi elettrici

* [Schema elettrico PCB banco di test](./ariag25_test_bench_schematic.pdf)


@include='bio_tanzilli'
