Anteprima
Vedrai una selezione di 5 pagine su 16
Controllo Remoto di un Robot tesina Pag. 1 Controllo Remoto di un Robot tesina Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Controllo Remoto di un Robot tesina Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Controllo Remoto di un Robot tesina Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Controllo Remoto di un Robot tesina Pag. 16
1 su 16
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Introduzione Controllo remoto di un Robot tesina


Questa tesina descrive e spiega il controllo remoto di un Robot. Tesina maturità argomenti: in Informatica la programmazione web Php-html-javascritp-Jquery-MySQL-Python-C, in Elettronica digitale RaspBerry Pi model B, FPGA, Robotica Didattica, in Telecomunicazione Access Point Wi.FI (physical layer), Presentation, Application Layer Comunicazione SPI.

Collegamenti

Controllo remoto di un Robot tesina


Informatica- La programmazione web Php-html-javascritp-Jquery-MySQL-Python-C.
Elettronica digitale - RaspBerry Pi model B, FPGA, Robotica Didattica.
Telecomunicazione: Access Point Wi.FI (physical layer), Presentation, Application Layer, Comunicazione SPI.
Estratto del documento

-Linux Embedded e Controllo Remoto 4

La distribuzione

RaspBian

Raspbian è un sistema operativo debian-

based, che nasce appositamente per essere

utilizzato su RaspBerry Pi. Raspbian è

nientemeno che un ottimizzazione di Debian

per lavorare con il processore di RaspBerry

Pi. Secondo i benchmark, questo nuovo

sistema consente, solo in alcune operazioni, di incrementare fino al 40% le prestazioni rispetto a

Debian.

Inoltre include il supporto per il set di istruzioni ARMv6.

E' possibile scaricare l'ultima immagine di Raspbian dal sito ufficiale di RaspBerry Pi, dove verrà

anche spiegato come installare il sistema su una scheda SD per poterla utilizzare sul mini-

computer.

Un altra ditro debian-based valida è Linaro Ubuntu.

PARTE III

Controllo remoto

L'ITCS Erasmo da Rotterdam dispone di un “Laboratorio Permanente di Robotica”, uno spazio

dove gli studenti possono applicare le loro conoscenze didattiche e approfondirle, dove ci si pone

delle problematiche e si trovano delle soluzioni, un metodo che propone una simulazione di

come un TEAM aziendale lavora in base a delle specifiche e a degli obiettivi. Il laboratorio ha

permesso alle nuove generazioni di cimentarsi nella realizzazione dei robot grazie agli sponsor

quali Xilinx, Futura Elettronica, Mirifica, Texas Instrument e alla partecipazione della RoboCup

Junior, organizzata da una rete nazionale di scuole. Dalla nascita della manifestazione il

Transistor Team e il Droiders Team hanno realizzato diversi prototipi con cadenza annuale

migliorando le problematiche riscontrate ogni anno.

Nessie 2013 si propone come modello di riferimento con un’architettura “a livelli” in cui sono

presi in considerazione tutti gli aspetti che riguardano il ciclo produttivo completo del robot,

-Linux Embedded e Controllo Remoto 5

partendo dalla parte meccanica, per giungere fino al software. Iniziando dal “Phisical Layer”, lo

chassis e tutte le componenti meccaniche sono realizzabili tramite un software di CAD e la

successiva “stampa 3D”. Con le FPGA possono essere sviluppate tutte le problematiche relative

alla gestione dell’hardware, modellandolo alle necessità dell’applicazione e di gestione, e

implementando il primo livello di protocollo “Data Link” per dialogare con la scheda di gestione su

cui è presente il sistema operativo necessario a sviluppare i layers “Presentation” e “Application”.

Sfruttando la potenza di Linux Embedded, Nessie 2013 introduce il concetto di controllo remoto

delle risorse hardware di cui il robot è costituito. Un pannello di controllo, RoboGUI, permetterà di

tenere sotto controllo i dati dei sensori e di guidare il robot in real-time mode.

PARTE IV

IL PROGETTO

Il progetto come prima descritto è costituito da un modello a strati (Layer) come avviene nel

modello OSI/ISO E TCP/IP.

Il primo livello determina il mezzo trasmissivo attraverso il quale i dati vengono scambiati. In

questo progetto verrà utilizzata la nota tecnologia senza fili Wi-Fi. Basterà avere un browser e

una connessione Wi-Fi per collegarsi al robot in modo da impartire comandi e tenere sotto

controllo i suoi stati interni.

-Linux Embedded e Controllo Remoto 6

Nella fase di progettazione il prototipo è stato sviluppato mediante la sottostante configurazione

che, per ovvie ragioni, non può costituire la scelta finale del mezzo fisico in quanto una

connessione cablata limiterebbe il robot nel movimento.

La RaspBerry , fisicamente installata sul robot, implementa il phisical layer della comunicazione e

il data link layer responsabile delle trame di input/output. Questa scheda implementa un server

web per rendere accessibile la pagina di controllo agli host collegati. Essa sarà visibile come

Access Point Wi-Fi a tutti i dispositivi dotati di browser che vorranno collegarsi al robot per

interagire.

La RaspBerry Pi non è dotata di una scheda di rete Wireless

integrata, pertanto ci serviremo di un dongle Wi-Fi USB per

rendere possibile la connessione senza fili. Il dongle in

questione è il RealTek RTL8188CUS 802.11n WLAN

Adapt e di seguito è riportata la procedura per l'installazione

dei driver utili al funzionamento come Access Point.

Il sistema operativo in questione e RaspBian di cui abbiamo

fatto una breve panoramica precedentemente , una “distro”

GNU/Linux ottimizzata per i dispositivi embedded ARM

-Linux Embedded e Controllo Remoto 7

PARTE V

AGGIORNAMENTO DRIVER PER ACCESS

POINT lsusb

Inseriamo il dongle USB Wi-Fi nella porta USB e con il comando dalla shell di linux

verificheremo che il dispositivo sia stato riconosciuto dal sistema.

Se tutto è andato a buon fine il comando restituirà la seguente riga

Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN

#Realtek RTL8188CUS chipset

# scaricare driver

wget https://github.com/jenssegers/RTL8188-

hostapd/archive/v1.1.tar.gz

#estrarre archivio

tar -zxvf v1.1.tar.gz

#installare sorgenti

cd RTL8188-hostapd-1.1/hostapd

sudo make

sudo make install

#Installazione software e pacchetti necessari

sudo apt-get install hostapd udhcpd

#Impostazioni DHCP #Modificare file /etc/udhcpd.conf ( sudo nano /etc/udhcpd.conf )

start 192.168.42.2 # Questo è il range degli IP che assegnerà ai

client devices.

end 192.168.42.20

-Linux Embedded e Controllo Remoto 8

interface wlan0 # The device uDHCP listens on.

remaining yes

opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.

opt subnet 255.255.255.0

opt router 192.168.42.1 # Questo sarà l'indirizzo dell'Access

Point

opt lease 864000 # 10 day DHCP lease time in seconds

#modificare file /etc/default/udhcpd commentare la riga

DHCPD_ENABLED="no" ---> #DHCPD_ENABLED="no"

#modifca interfaccia wlan0

#Assegnamento IP STATICO

sudo ifconfig wlan0 192.168.42.1

#Aprire e modificare file /etc/network/interfaces

iface wlan0 inet static

address 192.168.42.1

netmask 255.255.255.0

#Commentare le seguenti righe

#allow-hotplug wlan0

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

#iface default inet dhcp

#configurazione Acces Point Wi-Fi

#per creare una password WPA modificate file /etc/hostapd/hostapd.conf

interface=wlan0

driver=nl80211

ssid=My_AP

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=My_Passphrase

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

#network aperto

interface=wlan0

ssid=My_AP

hw_mode=g

channel=6

auth_algs=1

-Linux Embedded e Controllo Remoto 9

wmm_enabled=0

#Aggiungere il seguente path al file /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"

# Avviare i seguenti servizi per rendere operativo l'AP

sudo service hostapd start

sudo service udhcpd start

# Aggiungere le precedenti righe nel file bashrc per avviare l'access point af ogni avvio

sudo update-rc.d hostapd enable

sudo update-rc.d udhcpd enable

web server

Un Web server è un processo che si occupa di ricevere richieste HTTP da parte di un client (es:

un browser) e di fornirne una risposta HTTP. L'host in questo modo è in grado si fornire servizio

ad altri host, e di rendere disponibile la pagina di controllo remoto del robot.

Per l'installazione delle funzionalità server sulla RaspBerry ci serviamo del famoso pacchetto

Apache. Apache HTTP Server è il Web server HTTP opensource della Apache Software

Foundation. Dal 1996, è il Web server più diffuso su Internet È un server modulare: le

funzionalità sono rese disponibili tramite moduli attivabili o disattivabili a piacimento attraverso il

file di configurazione “httpd.conf”. All'interno del mondo UNIX sono disponibili altri software che

svolgono la medesima funzione, uno di questi è lighttpd che non tratteremo.

Installazione di un web server su

raspbian

Il termine per indicare un server web sotto Linux, che abbia caricati i moduli di PHP e MySQL ,

viene detto LAMP. Digitate ora sul terminale le seguenti istruzioni

#Assicuratevi di essere aggiornati

sudo apt-get update

#modifcate il seguente file per cambiare il nome dell'host, CTRL+ X per uscire e salvare le

modifiche

sudo nano / etc / hostname

-Linux Embedded e Controllo Remoto 10

#rendere effettive le modifiche riavviando

sudo reboot

#Installiamo Apache e altri pacchetti

sudo apt-get install apache2 apache2-doc apache2-utils

#Installiamo i pacchetti di supporto per PHP

sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache

#installiamo il modulo per le connettività con un database

sudo apt-get install php5-mysql

#installiamo il server MySQL

sudo apt-get install mysql-server mysql-client

Verrà chiesto di impostare una password di root.Inserire una password e confermarla quando

richiesto nella schermata blu.

Il dispositivo RaspBerry Pi ora sarà visibile a tutti gli host connessi tramite Access Point Wi-Fi.

/var/www/

La directory conterrà l'homepage e tutte le pagine del servizio offerto.

La pagina sarà disponibile agli altri host all'indirizzo IP assegnato col comando

sudo ifconfig wlan0 192.168.42.1

APPLICATION LAYER

REMOTE CONTROL PAGE

L'interfaccia con l'utente è caratterizzata da una pagina scritta prevalentemente in HTML. Nella

sua semplicità questa scelta adotta un particolare sistema di comunicazione tra client e server

Asynchronous Javascript And XML

utilizzando AJAX.AJAX è l’acronimo di e indica una tecnica

per permettere di costruire applicazioni web. AJAX è stato creato per consentire alle applicazioni

asincrono

web un dialogo tra client e server minimizzando così il tempo di risposta percepito

dall’utente. In questo senso i dati che il robot acquisisce dalla sensoristica vengono aggiornati in

tempo reale senza che l'utente debba riaggiornare la pagina evitando inutili attese. I dati

attendibili vengono tabellizzati da un programma PHP chiamato dalla funzione AJAX sopracitata

-Linux Embedded e Controllo Remoto 11

I nuovi comandi vengono inviati al lato server, il quale sempre tramite un interprete PHP si

occuperà di comunicare con i livelli inferiori le istruzioni fisiche (motori, pinza , direzioni) del robot

Una soluzione valida a

gestire dinamicamente il

flusso dei dati acquisiti dal

robot, può essere quella di

appoggiarsi ad un

database SQL. Il suo

scopo sarà quello di gestire

le tabelle cosi create, sarà

possibile ottenere

informazioni di ogni

sensore, stato e motore

mediante un interrogazione

al database. La soluzione attuale adotta un semplice file di

testo contenente il tipo e i dati del sensore.

La formattazione prevede un carattere

separatore della serie

SENSORE,DATO1,DATO2 in modo che la

stringa possa essere “esplosa” in differenti

leggo.php

campi. Il file costruisce la tabella

presente sulla pagina web servendosi dei dati

appena letti nel file di testo (dati.txt)

/var/www.

posizionato nella directory

L'homepage con la quale verrà comandato il

robot disporrà di un joystick virtuale

semplificato per poterlo pilotare. Insieme al

joystick sarà visibile la tabella che varierà

dinamicamente ogni 20 millisecondi, dando il

tempo alla RaspBerry di acquisire il valore e

renderlo disponibile.

Questo script AJAX permette l'esclusivo

refresh della tabella e non dell'intera pagina

<script type="text/javascript">

var auto_refresh = setInterval(

function (){

$('#load_tweets').load('leggo.php').fadeIn("slow");

}, 20); //richiama il file leggo.php ogni 20ms riaggiornando

la tabella dati

-Linux Embedded e Controllo Remoto 12

</script>

#sorgente del file leggo.php

<?php

function Carica(){

/ *LEGGE DATI DAL FILE C, OGNI LINEA VERàà ESPLOSA*/

$Line_Length=50;

if (!$p_file = fopen("dati.txt","r"))

{echo "Impossibile accedere ai Dati";

exit;}

$n = 0;

while($n<50)

{ $tabella[$n++] = explode(",",(fgets($p_file,

$Line_Length))."<br>");

}

fclose($p_file);

return $tabella;}

function Tabellizza($dati){

e cho "<table class=curvedEdges>

<TR> <td>Sensore</td> <td>Stato</td> <td>Stato2</td>

</TR>";

$n=0;

while($n<(count(file("dati.txt")))){

echo "<tr>

<td>".$dati[$n][0]."</td> <td>".$dati[$n][1]."</td> <td>".

$dati[$n][2]."</td>

</tr>"; $n++;}

echo "</table>";}

$record=Carica();

Tabellizza($record);

?>

-Linux Embedded e Controllo Remoto 13

PROTOCOLLO SPI E RaspBerry Pi

La trasmissione avviene tra un dispositivo

detto master e uno o più slave. Il master

controlla il bus, emette il segnale di clock,

decide quando iniziare e terminare la

comunicazione.

Il bus SPI si definisce:

Dettagli
Publisher
16 pagine
10 download