Progettazione di un sistema robotico controllato da Microsoft Kinect

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progettazione di un sistema robotico controllato da Microsoft Kinect"

Transcript

1 UNIVERSITA POLITECNICA DELLE MARCHE FACOLTA DI INGEGNERIA DII Dipartimento di Ingegneria dell'informazione Corso di Laurea in Ingegneria delle Telecomunicazioni Tesi di Laurea Progettazione di un sistema robotico controllato da Microsoft Kinect Relatore: Prof. Aldo Franco Dragoni Candidato: Paolo Rinaldesi Anno Accademico

2 Dipartimento di Ingegneria dell Informazione Università Politecnica delle Marche Facoltà di Ingegneria Via Brecce Bianche Ancona (AN), Italy 2

3 A mio padre, che mi ha insegnato ad essere tenace. A mia madre, che mi ha insegnato ad avere grinta. A mio fratello, che mi ha insegnato ad essere riflessivo. Alle mie nonne, che mi hanno insegnato che l amore è fatto di piccole cose. 3

4 INDICE 1. INTRODUZIONE 1. FRC (FIRST robotics competition) 6 2. Un robot con componentistica predefinita Le modalità autonomous e teleoperated Il controllo del robot: NI crio FRC-I e Arduino uno LA STRUTTURA DEL SISTEMA DI CONTROLLO 1. Power Distribution Board e Circuit Breaker 120-Amp I controllori di velocità Jaguar e i motori 12VDC Il Digital Sidecar NI crio FRC-I e architettura di sistema Ethernet Arduino e la RobotOpen Control Shield L INTERFACCIA GRAFICA PER IL CONTROLLO DEL ROBOT 1. La Driver Station per crio fornita da NI La Driver Station per Arduino fornita da RobotOpen KINECT: CONTROL LER E MOTION TRACKER 1. Generalità Kinect SDK.46 4

5 3. Lo skeletal Viewer Kinect per FRC IL TEST DI CAMERA VISION 1. RoboRealm Arduino e Roborealm SPECIFICHE RICHIESTE AL SISTEMA E IMPLEMENTAZIONE DEL SOFTWARE 1. Cos è richiesto ai meccanismi del robot. 2. Programmare il compact RIO FRC in C++ con WINDRIVER FRC v Programmare Arduino Ethernet con le librerie di Robot Open Conclusioni e futuri sviluppi Ringraziamenti 68 APPENDICE Rif. Par Codice, KinectStick.java...70 Rif. Par Codice, Arduino Uno sketch 76 5

6 1. INTRODUZIONE La tesi è stata realizzata nell ambito della competizione internazionale della FIRST robotics competition per la progettazione di un sistema robotico controllato da Microsoft Kinect. Tuttavia, si richiede che tale robot possa essere oltre che controllabile, anche capace di operare autonomamente. Il sistema deve assolvere a diversi compiti: raccogliere un disco, caricarlo in un congegno di shooting e lanciarlo su di una parete sulla quale sono poste delle fessure; il robot dovrà inoltre essere in grado di arrampicarsi su una delle piramidi poste al centro del campo di gioco. La tesi è stata redatta sulla base del lavoro che il Team Leonardo sta svolgendo in merito alla competizione FRC del 2013, in collaborazione con il Laboratorio di Intelligenza Artificiale e Sistemi Real Time dell Università Politecnica delle Marche FRC: The FIRST robotics competition La FIRST Robotics Competition è una competizione internazionale di robotica fondata da FIRST (For Inspiration and Recognition of Science and Technology), un organizzazione americana il cui obbiettivo e promuovere la robotica tra le nuove generazioni, coinvolgendo studenti di scuola superiore, tutors universitari organizzazioni e aziende. Ogni anno, teams di studenti partecipano costruendo robots di 54 kg capaci di eseguire un particolare compito che varia di anno in anno. All'inizio di gennaio, ai teams viene fornito un kit standard di componenti ed i dettagli del gioco: in sei settimane i Teams, devono essere capaci di costruire un robot competitivo in grado di operare attraverso un sistema di controllo remoto, ma anche autonomamente. Nel 2010, il 19 anno di concorso, hanno partecipato le squadre con circa studenti provenienti da Australia, Brasile, Canada, Turchia, Olanda, Israele, Stati Uniti e Regno Unito. Nel 2011, squadre hanno partecipato a concorsi negli Stati Uniti, Canada, Israele e Messico. FIRST è stata fondata nel 1989 dall'impenditore Dean Kamen e da Woodie Flowers, professore di fisica al MIT; Dean Kamen ha più volte dichiarato il suo orgoglio per aver creato FIRST, sicuro che i partecipanti che finora hanno preso parte a tali competizioni, saranno gli artefici di progressi significativi i n campo tecnologico negli anni a venire. Il primo torneo FRC si tenne nel 1992 in una palestra del liceo di New Hampshire. Questa prima gara fu su piccola scala, di dimensioni simili ai FIRST Tech Challenge di oggi e ai tornei di Vex 6

7 Robotics Competition. Nel suo primo anno, i robot erano basati su connessione cablata per ricevere i dati dai driver, l'anno successivo, si è rapidamente passati ad un sistema wireless. Dal 1996 la FIRST competition è seguita dalla ESPN, la più famosa rete televisiva dedicata allo sport. La Diretta è attualmente fornita da NASA TV, disponibile in streaming su internet, TVRO, DirecTV e Dish Network, oggi gli eventi vengono seguiti anche su FOX Channel. Nel corso degli anni, FIRTS ha attirato la sponsorizzazione di grandi aziende come Boeing, Microsoft, National Instruments, Google, Texas Instruments, e United Technologies. Il principale controller utilizzato dai robots FRC è il CompactRIO prodotto da National Instruments. Dal 2012 gioco sarà caratterizzato anche dall'uso di Microsoft Kinects Un robot con componentistica predefinita La FIRST robotics competition sfida i team partecipanti a risolvere problematiche in un periodo di tempo di sei settimane, attraverso l'utilizzo di uno kit standard con componentistica e regole predefinite. I team quindi, costruiscono i robot sulla base della componentistica assegnata e gareggiano in giochi pensati da una giuria di ingegneri della FIRST e altre figure professionali. La componentistica che viene fornita e' data da: - un Kickoff Kit La componentistica prevista viene inviata direttamente ai team i cui dettagli per ogni singolo componente sono descritti nella relativa ''Checklist''. - un Virtual Kit Questo tipo di componentistica viene fornita ai team direttamente dal fornitoreo produttore, tramite download o tramite ordine personalizzato. Esso comprende codici relativi a speciali facilitazioni e software dedicati messi a disposizione per la realizzazione del robot. - un FIRST Choice E' un menu di componentistica disponibile che fa parte del kit of parts; viene fornito gratuitamente ai soli team regolarmente registrati alle competizioni. Le restrizioni di dimensione e peso: Per le competizioni FRC del 2013 i robot dovranno rispettare dei vincoli in merito alle dimensioni e al peso: - Il perimetro della base del robot comprensivo delle protezioni, non potra eccedere di cm (122 inches); 7

8 - Il robot con tutte le sue eventuali appendici (estese e retratte) dovra essere contenuto in un cilidro ideale il cui diametro e di cm (45 inches) e alto cm (84 inches); - Il peso del robot ad esclusone della batteria e delle protezioni laterali non potra superare i 54,4 kg (120 pounds). Le restrizioni dei motori e degli attuatori: I robot hanno inoltre delle restrizioni relativamente all utilizzo del tipo e del numero di motori. I motori che possono essere utilizzabili durante la competizione sono i seguenti: Motor Name CIM BaneBots Part Numbers Available FR M4-R AM A PM25R-44F-1005 PM25R-45F-1004 PM25R-45F-1003 PMR25R-45F-1003 PMR25R-44F-1005 M7-RS M7-RS M5-RS M5-RS B M5-RS M5-RS M3-RS M3-RS AndyMark 9015 am Denso Throttle Control AE VEX BAG and/or mini-cim AndyMark PG am-2161 am Window Motors Various from FIRST Choice 2 Max Qty Allowed VEX 2-wire Motor Electrical solenoid actuators, no greater than 1 in. stroke and rated electrical Unlimited input power no greater than 10 watts (W) continuous duty at 12 volts (VDC) Drive motors or fans that are part of a motor controller or COTS computing Unlimited device Fans included in the 2013 Kickoff Kit, FIRST Choice, or as a Talon motor Unlimited controller accessory Tabella 1: Legal Motors 6 4 8

9 1.3. Le modalita autonomous e teleoperated Un match ha una durata di due minuti e 15 secondi, in particolar modo per i primi 15 secondi i robot devono essere in grado di operare autonomamente al fine di assolvere al compito richiesto. I robot in tale fase, si avvanlgono normalmente di strumenti quali sensori di prossimita o tecnologie di camera vision che attraverso il riconoscimento di forme geometriche e colori riescono ad identificare l oggetto o l obbiettivo per portare a termine il compito richiesto. In modalita controllata, il robot e connesso in WIFI ad un computer remoto attraverso una rete LAN ed e possibile governarne il movimento utilizzando dispositivi quali Joystick, Microsoft Kinect o Smartphones. Nelle successive trattazioni focalizzerò particolare attenzione al controllo motorio attraverso Microsoft Kinect grazie alla quale posso ottenere la rappresentazione scheletrica (skeletal) della persona e il realativo tracking umano Il controllo del robot: NI crio FRC-I e Arduino uno Affronteró in questa tesi la problematica del controllo del robot utilizzando due diversi dispositivi: il compact RIO FRC-I di National Instruments e Arduino Uno. Pur essendo sistemi dalle capacitá di elaborazione, specifiche e costo completamente differenti vedremo tuttavia, come sia possibile avere attraverso l utilizzo di Arduino Uno dei risultati relativamente simili. - Il CompactRIO FRC-I è un sistema embedded prodotto da National Instruments per il controllo avanzato e l acquisizione dati, è una piattaforma progettata per applicazioni che richiedono alte prestazioni ed affidabilità. CompactRIO presenta un architettura aperta ed è un sistema compatto, robusto e flessibile; si possono integrare hardware commerciali e moduli proprietari per realizzare velocemente sistemi personalizzati. Combina un processore per elaborazioni Real-Time a un chip FPGA ad alte prestazioni. Sono inoltre presenti dei moduli di I/O con relativo condizionamento di segnale per una connessione diretta ai sensori e agl attuatori, ciascun modulo di I/O è connesso con il chip FPGA. 9

10 - Arduino è un framework open source che permette la prototipazione rapida di sistemi robotici. È composto da una piattaforma hardware per il physical computing sviluppata presso l Interaction Design Institute fondato da Olivetti e Telecom Italia a Ivrea. La scheda si basa su un circuito stampato che integra un microcontrollore con pin connessi alle porte I/O, un regolatore di tensione e quando necessario un interfaccia USB che permette la comunicazione con il computer. A questo hardware viene affiancato un ambiente di sviluppo integrato (IDE) multipiattaforma (per Linux, Apple Macintosh e Windows). 10

11 2. LA STRUTTURA DEL SISTEMA DI CONTROLLO L obbiettivo di questo capitolo è quello di fornire una breve panoramica di quella che è la componentistica hardware del sistema di controllo per la FIRST robotics competition del Ogni componente contiene una breve descrizione delle sue specifiche e della sua funzione Power Distribution Board e Circuit Breaker 120-Amp Figura 1: Power Distribution Board. La scheda di alimentazione è stata progettata per distribuire l alimentazione da una batteria 12VDC ai vari componenti del robot attraverso degli auto-resetting circuit breakers, La PDB (Power Distribution Board) fornisce 8 coppie di uscite a 40A di corrente continua e 12 uscite a 30A. Viene inoltre fornita un alimentazione: - a 24V per l alimentazione del CompactRIO - a 12V per l alimentazione del router - a 5V per l alimentazione di una webcam, di una Axis camera o di un Arduino. Figura 2: Circuit Breaker Il Circuit Breaker 120-Amp ha due funzioni principali: il primo come interruttore per l alimentazione del robot, il secondo come dispositivo di 11

12 protezione della componentistica e del cablaggio in downstream. Quindi tale interruttore da 120A è direttamente collegato al morsetto del polo positivo della batteria del robot e alla scheda di distribuzione dell alimentazione I controllori di velocità Jaguar e i motori 12 VDC Il Jaguar Motor Controller: Figura 3: Jaguar Motor Controller and DC Motor Il Jaguar Motor Controller della VEX Robotics, ci permette di controllare la potenza da erogare al motore brushed da 12V che vi è collegato fino a 40A. Può essere controllato usando l interfaccia PWM o il bus CAN (Controller Area Network); è quindi collegato al sistema di controllo attraverso una di queste due interfacce e alla Power Distribution Board. Il Jaguar Motor Controller utilizza un microcontrollore LM3S2616 che con una architettura 32-bit ARM Cortex, trova in genere applicazione nel settore industriale, tra cui il monitoraggio remoto, dispositivi di test e misura, applicazioni di rete e automazione. Le specifiche del DC motor: - Le specifiche fisiche: - Dimensione: 2.5 pollici di diametro; 4,34 pollici di lunghezza - Albero di uscita Dimensioni: 0,313 + / - 0,0004, con due millimetri cava - Peso: 2,82 lb 12

13 - Le specifiche delle prestazioni: - Tensione: 12 volt DC - N. RPM: (+ / - 10%) - Gratis attuale: 2.7 ampere - Potenza massima: 337 Watt (a 2655 giri al minuto, 172 oz-in, e 68 A) - Coppia max: 2.42 N-m, o 343,4 once-in - Corrente max: 133 ampere 2.3. Il Digital Sidecar Figura 4: Il Digital Sidecar Il Digital Sidecar (DS) è una breakout board, cioè un hardware che consente di accedere e lavorare in modo semplice e comodo sui pin dei piccoli microchip. Esso converte l I/O digitale dal modulo NI 9403 o dal Robotopen control shield in una forma più facilmente utilizzabile per FRC. Il DS in particolare fornisce: 10 uscite PWM con servo jumper da 6V per controllare i motor controllers e i servo motori; 8 coppie di uscite a relè per il controllo degli Spike HBridge, 14 I/O digitali per general purpose (GPIO), cioè dispositivi elettronici che non sono dedicati ad un solo possibile utilizzo. Un header a 6 pin per le connessioni I²C (Inter-Integrated Circuit, un sistema di comunicazione seriale bifilare utilizzato tra circuiti integrati) 13

14 Alimentatore buck 5V/3 per GPIO; La tipologia buck degli alimentatori switching è quella più simile ai tradizionali alimentatori lineari. Con esi, infatti, è possibile ottenere una tensione di uscita minore di quella applicata in ingresso. La potenza è fornita da 12V nominali NI crio FRC-I e architettura di sistema Il Compact RIO Figura 5: Il Compact RIO National Instruments CompactRIO è sistema industriale di controllo e acquisizione dati con I/O riconfigurabile (RIO), tecnologia FPGA per elevate prestazioni e customizzazione. Il crio è dato da: - Un processore - Una FPGA rinconfigurabile (per applicazioni stand-alone integrate o distribuite) - Moduli di I/O industriali (per la connessione diretta a sensori e attuatori) crio rappresenta un architettura low-cost con facile accesso alle risorse hardware di basso livello. Quindi uno degli aspetti più importanti di questo sistema è la modularità: Il crio consiste di una unità centrale e di uno chassis dove possono essere posti fino a 8 moduli di I/O, estendendo in questo modo la funzionalità del 14

15 dispositivo. Il crio preso in esame in questa tesi è il crio FRC I (usato per le competizioni FRC dal 2009 al 2011) e in particolar modo ha le caratteristiche tecniche del crio 9072/9074. Usando un processore che lavora con una frequenza di 266 MHz il sistema è in grado di provvedere a un bilanciamento che vede il compromesso tra basso consumo energetico e buona capacità di elaborazione. Il crio si interfaccia al sistema informatico attraverso Ethernet BaseT 10/100 e con una porta seriale RS232 per dispositivi esterni. Qui di seguito riporto le principali differenze delle specifiche tra un crio FRC I e un crio FRC II: NEW FRC II (2012) OLD FRC I ( ) # slots 4 6 (+2 unusable) RS Ethernet 1 2 Dimensions-chassis 7 (l) x 3.5 (w) x 2.5 (h) 11.4 (l) x 3.5 (w) x 2.5 (h) Weight-chassis 1.42 lbs 2.05 lbs Operating Voltage 9-30v 19-30v Power 15W 20W System Memory 256MB 128MB Storage Memory 512MB 256MB Processor Freescale MPC5125 Freescale MPC5200 -data/instr cache 32KB/32KB 16KB/16KB FPGA Spartan-6 LX45 Spartan RAM 2088 Kb 720 Kb -logic cells 43,661 46,080 -multipliers IO transfer rate 1 Gb/s 622 Mb/s Tabella 2: differenze delle versionio crio Il crio: una architettura aperta low cost Nella tecnologia embedded i progettisti normalmente lavorano con sistemi in cui le FPGA sono sempre affiancate da microprocessori (MPU) e microcontrollori (MCU). Le FPGA sono state quindi impiegate per estendere la funzionalità di I/O dei microcontrollori e interfacciali a molteplici sottosistemi e alle diverse porte di comunicazione. Negli ultimi anni è stata usata sempre più spesso la combinazione di MCU e MPC per migliorare la flessibilità dell elaborazione nei sistemi integrati nei più svariati campi tecnologici dove spesso è richiesto il controllo avanzato e il 15

16 monitoraggio. Quindi le FPGA oggi rappresentano la soluzione più economica per ridurre il carico di elaborazione degli MPU e per essere una opzione più flessibile al DSP e agli MCU distribuiti. Come risultato abbiamo architetture ibride che combinano i vantaggi dell implementazione della logica hardware su circuito (data dalle FPGA) come la velocità, l affidabilità e la flessibilità. Tuttavia, la tecnologia FPGA non ha l ecosistema driver e code/ip che le architetture dei microprocessori e i sistemi operativi hanno: dobbiamo infatti considerare che i microprocessori affiancati da un sistema operativo sono le basi per strutture di file e di comunicazione per attività come la memorizzazione dei dati su disco. Figura 6: Architettura RIO Il core del RIO ha un meccanismo interno di trasferimento dei dati, per passare al processore integrato le informazioni per l analisi in tempo reale, il postprocessing, il data logging o le comunicazioni di rete a un host computer. E inoltre previsto un accesso diretto per i circuiti di input/output di ogni modulo di I/O usando LabVIEW FPGA. Ogni Modulo di I/O ha già integrato tutti quegli strumenti per la connettività, il condizionamento del segnale e i circuiti per la conversone del segnale stesso (ADC o DAC). Figura 7: L architettura RIO su tre livelli. 16

17 I moduli di I/O Prenderò ora in analisi i seguenti moduli di I/O la cui applicazione è riportata nelle successive trattazioni. - NI 9403 Figura 8: NI 9403 E un modulo di input/output digitale bidirezionale a 32 canali, ogni canale è compatibile con segnali 5V/TTL, è caratterizzato da un range di protezione di ±30 V di overvoltage e può fornire fino a 2 ma di corrente per canale. L utilizzo di questo modulo è volto a implementare contatori personalizzati e/o temporizzatori, ma anche per la generazione di impulsi e la configurazione direzionale di ciascuna linea digitale. Figura 9: Architettura NI

18 - NI 9201 Figura 8: NI 9201 E un modulo di input/output analogico, esso infatti riserva 8 canali analogici con un rate signal di massima aggregazione a 500 ks/s. I segnali in input vengono scansionati, bafferizzati, condizionati, e campionati con conversione ADC a 12 bit. Questo modulo può essere utilizzato per il condizionamento di segnali ad alto voltaggio (±60 V), termocoppie, RTD, accellerometri, microfoni, estensimetri e ingressi di corrente. Figura 9: Schema a Blocchi dell NI 9201 Figura 10: Architettura NI

19 - NI 9862 Figura 11: NI 9862 E un modulo ad una sola porta per la connessione CAN (Controller Area Network) ad alta velocità, appunto per lo sviluppo di applicazioni CAN utilizzando NI LabVIEW, NI LabWindows/CVI, and ANSI C/C++. Specifiche Tecniche: - Phisical Layer: high speed - Transceivers: Philips TJA Min Bound Rate: 40 kbits/s - Max Bound Rate: 1 Mbit/s Un CAN bus è uno standard seriale per bus di campo (principalmente in ambiente automotive), di tipo multicast, introdotto negli anni ottanta dalla Robert Bosch GmbH, per collegare diverse unità di controllo elettronico (ECU). E stato progettato per permettere ai microcontrollori e ai dispositivi di comunicare tra loro su di uno stesso mezzo di comunicazione che non preveda l utilizzo di un host computer. Il CAN bus è un bus di comunicazione basato sui messaggi, progettato specificatamente per applicazioni di automotive, ma anche nel settore dell automazione industriale e medico. I dispositivi che normalmente sono connessi su questo tipo di bus sono sensori, attuatori e controllori di dispositivi. Un CAN bus consiste di due o più nodi cablati tra loro. I pin CAN_H e CAN_L di ciascun nodo sono collegati al bus principale tramite uno stub. La coppia di linee CAN_H e CAN_L costituiscono quindi una linea di trasmissione. Se la linea di trasmissione non è adattata, si può avere riflessione che può causare degli errori di comunicazione. La ISO prevede l adattamento con un carico da 120 Ω. 19

20 Figura 12: sistema di comunicazione CAN La tecnologia FPGA Un dispositivo FPGA è un chip in cui è implementato da un array. Nell array sono presenti dei blocchi logici configurabili e dei canali di routing. Ogni singolo blocco è costituito da una LUT (Look Up Table) con n porte e da un flipflop; quindi l implementazione su circuito digitale avviene collegando i blocchi logici sul dispositivo: i dati in bitstream programmeranno alcuni switch sul dispositivo. L output dei blocchi logici quindi si va a integrare con altri switch. La tabella per il routing statico è programmata in codice binario. Figura 13: Schema di funzionamento di un blocco logico Le FPGA quindi, a seconda di come viene progettato il routing possono gestire parallelamente gli input di più operazioni di elaborazione senza che queste competano per l attribuzione delle risorse del dispositivo. Ad ogni singolo task verrà quindi assegnata e dedicata una particolare sezione del chip. Questa potrà quindi operare autonomamente senza influenzare ogni altro blocco logico. 20

21 Figura 14: La struttura di una FPGA Il crio FRC I usa come FPGA una spartan prodotta dalla xilinx. La Spartan-3 presenta un architettura data da cinque principali componenti: - Blocchi logici configurabili (CLB) che contengono una RAM basata su Look-Up Tables (LUT) per implementare la logica e gli elementi di storage che possono essere utilizzati come flip-flop o latch. I CLB possono essere programmati per eseguire una varietà di funzioni logiche e per memorizzare i dati. - Blocchi di Input / Output (IOBs) servono a controllare il flusso dei dati tra i pin di I/O e la logica interna del dispositivo. Ogni IOB supporta uno scambio bidirezionale di flusso dati, più 3 operazioni di stato. Sono disponibili ventisei diversi standard di segnale, tra cui otto con standard differenziale ad alta prestazione. Sono inoltre inclusi dei registri Double Data-Rate (DDR). L'impedenza Digitally Controlled (DCI) fornisce automaticamente terminazioni on-chip, semplificando la progettazione della scheda. - Blocco RAM fornisce memorizzazione dei dati a 18-kbit su blocchi dualport. - Moltiplicatori prendono in input due blocchi di numeri binari a 18 bit e ne calcolano il prodotto. - Digital Clock Manager (DCM) fornisce blocchi per l auto autocalibrazione, soluzioni digitali per la distribuzione, i ritardi, le moltiplicazioni/divisioni, ed i phase shifting dei segnali di clock. 21

22 Real-Time Controller Un sistema real-time è un sistema specializzato per il supporto di hardware e applicazioni che sono in grado di fornire risposte in tempo reale. Questi sistemi vengono utilizzati tipicamente in ambito industriale (controllo di processo, pilotaggio di robot, trasferimento dati nelle telecomunicazioni) o comunque dove sia necessario ottenere una risposta dal sistema entro un tempo prefissato. Oltre alla precisione di calcolo dei risultati, un sistema in tempo reale deve prendersi cura anche del tempo con cui viene fornito tale risultato; quindi quei risultati forniti oltre un certo limite di tempo - anche se corretti - non avranno alcun valore. Figura 15: il ciclo di controllo della risposta a livello hardware del crio Il controller in tempo reale di crio contiene un processore Freescale MPC5200: 32-bit Processor che esegue LabVIEW Real-Time, esso offre: - Controllo multirate - Tracciamento delle esecuzioni - Onboard data logging e comunicazione con le periferiche In particolar modo il Freescale MPC5200 è utilizzato nel campo dell automazione per il processing-intensive. Offre 266 Mhz con una doppia precisione Floating Point Unit (FPU), è stato aggiunto un coprocessore matematico per le operazioni in virgola mobile in modo da non avere più numeri interi, dando così al sistema più velocità e più accuratezza, vi è una Memory Unit hardware Management (MMU) per commutazione task rapida, è dotato di I/O e opera a un watt. Rappresenta Una scelta comune per i sistemi operativi a tempo reale (RTOS) e per le schede di Sviluppo con Board Support Package (BSP). 22

23 Figura 16: il processore Freescale MPC5200 Specifiche Tecniche: 603e series PowerPC Core 16kB internal SDRAM 16K Instruction and 16K Data Caches 6 Peripheral Serial Controllers Configurable as UART, AC97 & CODEC Interfaces, I2S Dual 32 Entry MMUs 8 Counter/Timers High Speed DDR SDRAM interface 256Mbyte addressing range, 32- bit wide Flexible multi-function external bus PCI master v2.2, ATA v4 compatibility BestComm I/O subsystem Support for PSC, Ethernet, USB 1.1, PCI, ATA, I2C, AC97 & CODEC Interfaces, SPI, CAN Superior I/O for Industrial Automation and Automotive Applications CAN, Serial, USB, J1850 (MOST on Total5200 Development Board) 23

24 Il bus di comunicazione I²C I²C è l acronimo di Inter Integrated Circuit ed è un sistema di comunicazione seriale bifilare utilizzato tra circuiti integrati. Il classico bus I²C è composto da almeno un master ed uno slave. La situazione più frequente vede un singolo master e più slave; possono tuttavia essere usate architetture multimaster e multislave in sistemi più complessi. Il bus è stato sviluppato dalla Philips nel 1982 nel 1992 è stata rilasciata la prima versione del protocollo che ha subìto diversi aggiornamenti ed ha generato bus simili, uno dei quali (SMBUS) per motivi squisitamente commerciali, di brevetto Intel, nel Il protocollo hardware dell'i 2 C richiede due linee seriali di comunicazione: - SDA (Serial DAta line) per i dati - SCL (Serial Clock Line) per il clock (per la presenza di questo segnale l'i 2 C è un bus sincrono) Va aggiunta una connessione di riferimento detta, talvolta impropriamente, GND e una linea di alimentazione V dd a cui sono connessi i resistori di pullup che può anche non essere condivisa da tutti i dispositivi (le tensioni tipiche usate sono +5 V o +3,3 V anche se sono ammesse tensioni più basse o più alte). L I²C ha 7-bit o 10-bit di indirizzo (a seconda del dispositivo utilizzato), una velocità di bus di 100 kbit/s in modalità standard e 10 kbit/s in modalità a bassa velocità. Scrive a 1 Byte per transazione mentre in lettura a 1, 2, 3, o 4 byte per ogni transazione. Figura 17: Esempio di dispositivi collegati mediante I 2 C bus Real-Time Control Application Design I sistemi di controllo e di acquisizione riconfigurabili, in genere contengono quattro componenti principali: - Il RIO FPGA core application per input/output, comunicazioni e controllo; 24

25 - Time-critical loop per il controllo in virgola mobile, l elaborazione del segnale, l'analisi e il point-by-point decision making; - Normal-priority loop per l embedded data logging, il pannello d'interfaccia remota Web e Comunicazione Ethernet/seriale; - Networked host PC per l'interfaccia grafica d utente, lo storico del data logging, e il postprocessing. A seconda dei requisiti dell'applicazione, si può decidere di applicare una o tutte questi componenti. Figura 18: Real-Time Control Application Design Inoltre crio può anche essere utilizzato con VxWorks RTOS, il sitema operativo prodotto dalla Wind River Systems. Il cui microkernel fornisce solo le funzionalità più necessarie. Quelle funzionalità opzionali, come ad esempio la rete, il file system e la grafica sono messe a disposizione da librerie fuori dal kernel. In questo modo abbiamo un kernel più piccolo, il che per un sistema embedded è un aspetto importante. Il WIND microkernel ha le seguenti caratteristiche fondamentali: - Handles: il Wind microkernel è progettato per gli handels e thread (Pthread API). - Scheduling: due metodi di pianificazione differenit, round-robin con 256 livelli di priorità con e senza diritto di prelazione. E 'disponibile anche il POSIX API per i threads in tempo reale (SCHED_FIFO, SCHED_RR, SCHED_OTHER). - Interruption: WIND microkernel è stato progettato per gestire le interruzioni. Le scadenze devono rispettare limiti dell hard real-time. Si può infatti pensare ad un sistema real-time come ad un sistema che, dato un insieme di task, ognuno con i propri vincoli temporali 25

26 (deadline del task -esimo), è in grado di minimizzare la funzione di costo definita come: dove è la funzione di costo del task -esimo definita come: se il task -esimo è di tipo hard real-time, o come: se il task -esimo è di tipo soft real-time, dove si è indicato con una funzione monotona crescente all'aumentare del tempo che scorre. - Handles Communication: WIND microkernel dà la possibilità di condividere la memoria e scambiare di messaggi tra le diverse attività. Un altro modo per comunicare è il pipe, un meccanismo che funziona con FIFO che permette la condivisione di dati attraverso un file speciale chiamato appunto pipe. Per proteggere i dati condivisi, VxWorks utilizza mutex con un protocollo di priorità ereditario. - Fuori del kernel: librerie che non utilizzate in fase di progettazione possono essere occultate. La gestione della memoria avviene su due livelli di controllo: controllo di cache pagina per pagina e con VxVMI che richiede una MMU. Figura 19: Struttura di VxWorks RTO 26

27 2.5. Ethernet Arduino e la RobotOpen Control Shield Il microcontrollore Atmel ATmega328 L'Arduino Uno é una scheda basata sul microcontrollore Atmel ATmega328. L ATmega328 è un microcontrollore CMOS a 8-bit basato sull architettura AVR enhanced RISC. Attraverso l esecuzione di istruzioni in un singolo ciclo di clock, la Atmega328 raggiunge una capacità di trasmissione che si avvicina a 1 MIPS per Mhz permettendo in fase di progettazione di ottimizzare il consumo di energia in funzione della velocità di elaborazione. Figura 20: Schema a blocchi dell Atmega328 Il core AVR combina un set di istruzioni con 32 registri di lavoro General Purpose. Tutti i 32 registri sono direttamente collegati alla ALU (Arithmetic Logic Unit), consentendo in questo modo l accesso a due registri indipendenti l accesso a una singola istruzione che è eseguita in un ciclo di clock. Come risultato si ha un architettura che è più code efficient oltre a raggiungere una 27

28 velocità fino a dieci volte più veloce rispetto a i tradizionali microcontrollori CISC. L AVR CPU Core e la sua architettura La funzione principale del core CPU è quello di garantire la corretta esecuzione del programma. La CPU deve quindi essere in grado di accedere a memorie, eseguire un calcolo, controllare le periferiche e gestire le interruzioni. Al fine di massimizzare le prestazioni e il parallelismo, l'avr utilizza un architettura Harvard con memorie e bus separati per la programmazione e i dati. Le istruzioni nella memoria di programma sono eseguite con un pipelining a livello unico. Mentre una istruzione viene eseguita, l'istruzione successiva è pre-caricata dalla memoria di programma. In questo modo si da la possibilità alle istruzioni di essere eseguite ad ogni ciclo di clock. Il programma di memoria è un sistema riprogrammabile su memoria flash. L accesso rapido al Register File contiene 32 x 8-bit di registri di lavoro di General Purpose con un tempo di clock per l accesso a ciclo unico. Questo permette appunto, un operazione single-cycle dell ALU. Nel funzionamento di una tipica ALU, vi sono due operandi in uscita dal file registro, l'operazione viene eseguita, e il risultato viene rimemorizzato nel file di registri per ogni singolo ciclo di clock. La ALU supporta operazioni aritmetiche e logiche tra i registri o tra una costante e un registro. Singole operazioni di registro, possono essere anche eseguite nelle ALU. Dopo un'operazione aritmetica, il registro di stato viene aggiornato per riportare le informazioni sul risultato ottenuto. Il Program Flash memory space è diviso in due sezioni, la sezione relativa al Boot Program e la sezione di Application Program. Entrambe queste sezioni hanno dedicati dei Lock bit per la scrittura e la lettura/scrittura. L istruzione SPM che scrive nell Application Flash memory deve risiedere nella sezione del Boot Program. Durante le interruzioni e le chiamate di routine, l'indirizzo di ritorno del program counter (PC) viene memorizzato nello Stack. Lo Stack è allocato nella SRAM, e di conseguenza lo dimensione della Stack è limitata solo dalla dimensione totale della SRAM e dal suo utilizzo. Lo spazio di memoria per l I/O contiene 64 indirizzi per le funzioni della CPU come ad esempio Registri di Controllo, SPI e altre funzioni di I/O. Figura 21: architettura L AVR CPU Core e la sua 28

29 Arduino UNO rev. 3 e Arduino Ethernet Rev3 without PoE Figura 22: Arduino UNO e Arduino Ethernet Arduino UNO ha 14 Ingressi/uscite digitali (6 delle quali con PWM), 6 ingressi analogici, un cristallo a 16 MHz, una porta USB, una presa di alimentazione, una connessione ICSP, e un bottone di reset. Dispone di tutto il necessario per gestire il microcontrollore a bordo; per utilizzarla basta connettere la scheda al computer con un cavo USB o alimentarla con un alimentatore (max 12V) o delle batterie esterne. Le caratteristiche introdotte nella versione R3 sono: ATmega16U2 invece del 8U2 come convertitore USB-seriale. piedinatura 1.0: sono stati aggiunti i pin SDA e SCL per la comunicazione TWI vicino al pin AREF e vicino al pin RESET, altri sono stati collocati altri due nuovi pin, il pin IOREF che consente agli shield di adattarsi alla tensione fornita dalla scheda. Circuito di RESET più forte. Microcontrollore: Tensione di funzionamento: ATmega328 5V Tensione di Alimentazione (raccomandata): 7-12V Massima Tensione supportata (non raccomandata): I/O digitali: ingressi analogici: 6 Corrente in uscita per I/O Pin: Corrente in uscita per 3.3V Pin: Memoria Flash: SRAM: EEPROM: Velocità di clock: 20V 14 (6 dei quali con uscita PWM) 40 ma 50 ma 32 KB (ATmega328) di cui 0.5 KB usata bootloader 2 KB (ATmega328) 1 KB (ATmega328) 16 MHz Tabella 3: Specifiche Tecniche Arduino UNO 29

30 Arduino Ethernet è una scheda a microcontrollore basata sulla Arduino Uno e avente un Controller Ethernet W5100 WIZnet TCP / IP integrato. Può essere programmata come una Uno attraverso un convertitore seriale a sei pin tipo FTDI. Si può usare l'adattatore Arduino USB 2 Serial o qualsiasi cavo tipo FTDI che faccia da convertitore da USB a seriale. Microcontrollore: ATmega328 Tensione di lavoro: 5V Tensione d'ingresso(reccomandato): 7-12V Tensione d'ingresso (limiti): 6-20V I/O Digitali: 14 (di cui 4 usati anche per le uscite PWM) Pin riservati: o da 10 a 13 usati per SPI o 4 usato per la scheda SD o 2 usato dal W5100 Ingressi Analogici: 6 Corrente DC per ogni pin I/O: Corrente DC dal pin 3.3V: Memoria Flash: SRAM: EEPROM: Velocità Clock: W5100 TCP/IP Controller Ethernet incorporato Power Over Ethernet ready Magnetic Jack Micro SD slot, con convertitore di livelli attivo 40 ma 50 ma 32 KB (ATmega328) di cui 0.5 KB usati dal bootloader 2 KB (ATmega328) 1 KB (ATmega328) 16 MHz Tabella 4: Specifiche Tecniche Arduino Ethernet 30

31 RobotOpen Control Shield per Arduino Figura 23: RobotOpen Control Shield per Arduino Questo shield è specificamente progettato per interfacciarsi con i sistemi FRC. Il connettore a 37 pin consente di accedere direttamente all'uscita PWM e I/O digitale sul Digital Sidecar FRC. La shield viene fornita in bundle con librerie open-source e con un App Operator Station che permette di creare un sistema completo di controllo Wi-Fi con il robot remoto. Comandi per l assegnazione e controllo del joystick, la comunicazione alle a uscite PWM e la trasmissione dei dati per la driver station sono disponibili in open source. Questo shield funziona con: Arduino Uno e Ethernet Shield Arduino Duemilanove e Ethernet Shield Arduino Ethernet Sparkfun Ethernet Pro Le Specifiche tecniche: - 10 Uscite PWM - 8 I / O digitali - 6 ingressi analogici - LED di stato e pulsante di ripristino 31

32 Figura 23: Lo schema della RobotOpen Control Shield La struttura del protocollo RobotOpen La creazione del protocollo RobotOpen è il risultato della progettazione open source di un protocollo standardizzato per la comunicazione e il controllo di sistemi robotici collegati in rete. È progettato per la comunicazione bidirezionale e permette a dei valori arbitrari di essere raggruppati (data bundles) per poi essere trasmessi. Il raggruppamento dei dati. Il data bundle è il principale metodo di raggruppamento dei dati per la trasmissione su protocollo RobotOpen. Il payload di ogni pacchetto non è altro che il raggruppamento di dati uno dietro l'altro. I Pacchetti di dati sono identificati da un singolo carattere o da un byte ASCII (0-9, a-z, o A-Z). Per default, la driver station invia per ogni joystick un suo data bundle. Per esempio il primo joystick avrà un ID bundle uguale a '0 ', il secondo sarà '1' e così via. Quindi ad ogni byte in questi bundle corrisponderà ad un componente del joystick (come ad esempio l asse analogico, un pulsante, etc..). Networking. I Pacchetti RobotOpen sulle reti basate su IP sono tipicamente trasmessi come UDP. La libreria RobotOpen per Arduino implementa un server 32

33 in ascolto sulla porta UDP Driver station o un qualsiasi client UDP che desidera connettersi al robot invia pacchetti RobotOpen a questa porta. La libreria RobotOpen per Arduino invierà tutti i pacchetti di risposta alla porta di high level che gli viene automaticamente assegnata quando il client si connette al server. Si noti che i dispositivi o la driver station posso inviare pacchetti ai controllori del robot uno alla volta. La lunghezza del messaggio. Ogni pacchetto RobotOpen deve essere almeno di 5 byte. In esso è contenuto il tipo di messaggio, la versione del protocollo, l ID del dispositivo e16 bit di checksum CRC. In versione che è stata utilizzata, i pacchetti RobotOpen non possono essere più lunghi di 256 byte. Il checksumming. Ogni pacchetto RobotOpen prevede un Controllo a ridondanza ciclica (CRC) a 16 bit affinché i dati trasmessi non vengano danneggiate durante la trasmissione. Si tenete però a mente che questo non garantisce che venga rispettato l'ordine dei pacchetti o l effettiva ricezione di quest ultimi. I tipi di pacchetto. Come detto in precedenza, ad ogni pacchetto RobotOpen è richiesto di avere un packet type associato e questo viene sempre reso noto sul primo byte di ogni pacchetto. Ci sono attualmente tre tipi di pacchetti la cui struttura di cui qui di seguito ne è spiegata la struttura. Per ogni casella si assume che la larghezza sia 8 bit o 1 byte. - Il Control Packet : questi sono impiegati per mandare i dati di controllo dalla driver station al robot. Se il controllore del robot non riceve un control packet in un tempo limite di 250ms, esso viene automaticamente disabilitato. - Figura 24: la struttura del control packet Message type: per i pacchetti di controllo è sempre 0x01. Protocol Version: questo viene trasmesso come 0x02. Se un controllore rileva una mancata corrispondenza di versione esso viene escluso. 33

34 ID dispositivo: Utilizzato per identificare quale dispositivo sta inviando il pacchetti di controllo (driver station app, Android, iphone, ecc..). Payload: questi sono gli effettivi dati di controllo da inviare. Questo sarà in forma di bundles. Questa porzione del pacchetto è di lunghezza variabile ed è a sua volta stutturata come segue: Figura 24-a: la struttura del control packet Il Payload rappresenta la vera e propria informazione trasmessa. Questo può essere nel formato più conveniente per l utente. Per il joystick, ogni byte richiama ad una funzionalità (asse, dpad, pulsante). CRC-16 High / Low Byte: Questi valori a 16 bit vengono trasmessi su 2 byte. Il primo byte nel pacchetto è sempre il byte alto, seguito dal byte basso. Se un pacchetto viene danneggiato deve essere escluso. - Query Packet. Questi sono inviati dalla driver station al controllore del robot per richiedere un feedback. Questi pacchetti vanno pensati come un contol packet, ma senza il payload. Seppure non inviando un control data, vorremmo ricevere dati dal robot, la notifica del nostro IP e la porta. Figura 25: la struttura del query packet - Feedback Packet. Sono inviati da un controllore del robot a una driver station. Questi contengono le informazioni di stato del robot e ogni dato che debba essere rinviato all interfaccia grafica o all elaborazione sulla 34

35 driver station. Quando la driver station manda un pacchetto al controllore del robot questa dovrebbe salvarne l IP e la porta di trasmissione utilizzata per inviare il pacchetto. Tutti i pacchetti di feedback infatti devono tornare a tale IP e tale porta. Per ogni control packet e query packet quindi, viene rinviato un pacchetto di feedback. Figura 26: la struttura del Feedback Packet 35

36 3. L INTERFACCIA GRAFICA PER IL CONTROLLO DEL ROBOT 3.1. La Driver Station per crio fornita da NI La driver-station è un programma che passa i dati tra il computer host e dispositivi di input, quali ad esempio: il joystick e il controller di gioco il Field Management System (FMS) il robot. La driver station è in grado di leggere i dati analogici e di leggere/scrivere i dati digitali, riceve i dati dai dispositivi di ingresso e li invia al CompactRIO sul robot. La driver station trasferisce quindi anche tutti quei dati che essa riceve dal compactrio indirizzandoli così al computer host in modo da poter visualizzare i dati in LabVIEW. Attraverso l utilizzo di una connessione Ethernet, si collega il PC che esegue la driver station al router Ethernet. Qualora si sviluppassero programmi su un computer host, è necessario collegare tale computer host al router Ethernet. Al fine di avere una corretta configurazione del sistema è necessario collegare il router Ethernet al dispositivo CompatRIO attraverso una rete con connessione Ethernet o con un Access Point wireless. Si deve fare attenzione al fatto che la scheda di rete wireless del PC remoto deve essere nella stesssa local subnet dell AccessPoint che si connette al CompactRIO. Durante la vera e propria competizione FRC, è invece necessario collegare il PC alla FMS anziché che al router Ethernet. La FMS infatti, contiene un AccessPoint wireless in grado di comunicare con gli accesspoints wireless posti sui vari robot. Il Field Management System. FIRST durante le competizioni, usa una FMS per monitorare il traffico dati dei robot e per mandare i comandi alla driver station. Per esempio, la FMS si occupa anche della modalità in cui il robot deve competere, in altre parole se questo deve operare in modalità autonoma o controllata. La FMS è in grado di connettersi attraverso una connessione Ethernet a driver station divers e attraverso un connessione wireless, a più robot. Quando si inizializza l eseguibile della driver station sul proprio PC, mi trovo 36

37 di fronte a due finestre per la gestione dei comandi e delle funzionalità del robot. Nella pagina seguente ne riporto lo screenshot. Figura 27: Dashboard (in alto) and Driver Station (in basso) Sulla Driver Station distinguiamo: Il numero del team, indica per quale team la Driver Station è configurata, questo è configurabile nella relative pagina di setup. Il main display, questa sezione mi rende noto quale è il valore di voltaggio della batteria posta sul robot. Inoltre sono presenti 3 LED che mi forniscono importanti informazioni: LED Verde Rosso Communications La Driver Station è capace di comunicare con il DS radio, Brigde e crio FRC. La Driver Station non è capace di comunicare con il DS radio, Brigde e crio FRC. Robot Code La Driver Station è capace di comunicare con il codice caricato nel crio. Tabella 5: I LED del main display La Driver Station non è capace di comunicare con il codice caricato nel crio. L Operation Page contiene tutte le informazioni sul funzionamento corrente del robot. Sul lato sinistro della pagina dell'operazione, è possibile scegliere la modalità del robot per essere telecomandato, messo in modalità autonoma, o pratica. Dopo aver selezionato una modalità, è possibile attivarla facendo clic sul pulsante Attiva. Dopo la modalità del robot è stato scelto e attivato, è 37

38 possibile disattivarla facendo clic sul pulsante Disattiva. Se il robot è collegato al sistema di gestione del campo (FMS), allora questa sezione verranno visualizzate informazioni del FMS. Teleoperated - Ciò consente di eseguire quella sezione del codice in cui il robot è programmato per essere controllato. Autonomous - Ciò consente di eseguire quella sezione del codice in cui il robot è programmato per essere autonomo. Practical - Questa modalità può essere configurata nella pagina di installazione e permette di simulare un match completo eseguendo prima il codice autonomo e quindi attivare la modalità controllata. Le informazioni relative allo stato di funzionamento del robot è riportato sulla parte destra della pagina di funzionamento. Tempo trascorso - Questo spiega da quanto tempo il robot è in funzione una volta che una delle modalità è stata attivata. Login Utente - Questo spiega il nome utente dell'utente attualmente connesso al computer e che sta eseguendo la Driver Station. Batteria del PC - La sezione batteria PC indica o il livello di carica residua della batteria della Driver Stationo se il PC riceve corrente alternata. Team Station - Questo ti permette di scegliere il team rosso o la squadra blu e di tale squadra se siete il robot 1, 2, o 3. Messaggi utente Con l utilizzo della Write User Message VI è possibile inviare messaggi dal robot alla postazione di guida tali messaggi vengono visualizzati in questa finestra. Il Kinect Status, è un indicatore di stato ed ha 4 possibili condizioni: Status Image Meaning Red Kinect No Kinect Connected Green Kinect with no figures A Kinect is detected Green Kinect with one figure The Kinect detects one person in front of it Green Kinect with two figures The Kinect detects two people in front of it. One person should move out of view of the Kinect Tabella 6: il Kinect Status Il driver di Kinect per FRC che viene utilizzato è capace di seguire soltanto una persona alla volta per cui se vengono rilevate due persone, Kinect sceglierà a caso quale delle due seguire. 38

39 Diagnostics Page, Questa pagina contiene le informazioni di diagnostica di tutti i collegamenti con dispositivi e con la Driver Station insieme ai messaggi di errore dal robot. Figura 28: Diagnostics Page - dispositivi USB. Sul lato sinistro della pagina di diagnostica viene visualizzata la sezione Dispositivi USB (Green Box). Questa sezione mostra quali dispositivi sono stati collegati via USB alla Driver Station e il loro stato di connessione. Se un joystick è stato inserito, si illumina di verde e quando si aziona uno dei bottoni del joystick ciò viene segnalato attraverso una spia blu. L I/O si accende quando un dispositivo periferico di I / O è stato collegato alla Driver Station. Il LED relativo alla Kinect specifica se il server Kinect è connesso e se è questo è collegato, sotto il LED Kinect, vi è una stringa che specifica la versione del server. Comunicazioni. Al centro della pagina di diagnostica viene visualizzata la sezione Comunicazioni (Yellow Box). Questa sezione permette di vedere con quali porzioni del sistema di controllo della Driver Station sono in grado di comunicare. Per la risoluzione dei problemi di comunicazione, passando il mouse sulla voce relativa al problema di comunicazione, la Driver Station riportata nella sezione Messaggi alcuni suggerimenti per la risoluzione del problema. Messaggi. Sul lato destro della pagina di diagnostica è la sezione messaggi. In questa sezione vengono visualizzati i messaggi di errore dal codice del robot. Questi errori vengono registrati nel crio, ed è possibile visualizzare questo registro, toccando il pulsante View Log File Informazioni sulla versione. Le Informazioni sulla versione per la Driver Station e l'immagine sul crio possone essere reperibili nella sezione Informazioni sulla versione (Red Box). Questa informazione è importante per la ricerca errori e per assicurarsi che la Driver Station e il crio abbaino semprela versione più aggiornata. Setup Page, in questa pagina è possibile configurare la postazione di guida per il numero di team, scegliere di visualizzare un dashboard locale o remoto, configurare i parametri della modalità pratica, e configurare i joystick. 39

40 La configurazione del numero di team. Essa configura anche la Driver Station che deve essere nella seguente forma: 0.xx.xx.5 mentre il computer sarà 10.xx.xx.6 (dove xx.xx è il numero del team). Practice Round Parameters. E possibile modificare i parametri per in modalità pratica. Countdown - Questo campo consente alla Driver Station di impostare il numero di secondi di conto alla rovescia prima di mettere il robot in modalità autonoma. Autonomous - Questo campo consente di impostare per quanto tempo la postazione di guida permette al robot di funzionare in modalità autonoma. Delay - L'impostazione di ritardo configura quanti secondi la postazione di guida attende tra la disabilitazione della modalità autonoma e abilitando la modalità controllata. Teleoperated - Questo campo consente di impostare per quanto tempo la postazione di guida permette al robot per l'esecuzione in modalità controllata. End Game - L'impostazione End Game specifica il numero di secondi per cui il robot continuerà a funzionare alla fine del gioco. Sounds Effect - Questo pulsante consente alla Driver Station di riprodurre i suoni quando è in modalità pratica. Joystick Setup. Possono essere collegati alla Driver Station fino a quattro joystick alla volta. Per configurare il joystick che viene assegnato a un indice numerico è possibile fare clic sul nome del joystick e trascinarlo in una posizione diversa. The I/O page visualizza le informazioni dal dispositivo I / O collegato alla Driver Station. Se l'i / O del dispositivo USB non è collegato, le uscite diventano ingressi simulati che si può manipolare a fini di prova. 10 Item Compatible View Enhanced View Digital Inputs DI 1-8 DI 1-8 Digital Outputs DO 1-8 DO 9-16 Analog Inputs AI 1-4 AI 1-8 LEDs N/A LED 1-8 Buttons N/A Button 1-6 HC DO N/A HC DO 1-2 Accelerometer N/A X, Y, Z Quadrature N/A Quad 1-2 Touch N/A Slider Tabella 7: I/O page 40

41 3.2. La Driver Station per Arduino fornita da RobotOpen La applicazione di Driver Station rilasciata da RobotOpen può essere utilizzata sia su Windows che su MAC, è infatti una semplice applicazione Java che ci permette di controllare e monitorare il robot attraverso l utilizzo di Arduino Uno/Ethernet e della RobotOpen Control Shield. Figura 29: RobotOpen Driver Station Quello che la Driver Station ci mette a disposizione è: La scelta, attraverso due menù a scorrimento, di uno o più Joystick collegati al desktop remoto connesso all Access Point sul robot; La possibilità di configurare l indirizzo IP del robot a cui ci si connette; Un bottone per stabilire la connessione con il robot; Un bottone che abilita/disabilita il controllo del robot dopo che il codice scritto per Arduino è stato correttamente caricato sul microcontrollore; 41

42 In particolar modo, dal momento che la Driver Station abiliterà il robot, verrà letta quella sezione di codice successiva alla stringa di codice void enabled(). Disbilitando verrà letta quella sezione di codice successiva alla stringa di codice void disabled(). D altra parte invece, sia a controllo abilitato che a controllo disabilitato avremo a loop la seguente sezione di codice che ci permette di visualizzare i dati di feedback che il robot ci fornisce: void timedtasks() RobotOpen.publishAnalog(ANALOG0, 'A'); // Bundle A RobotOpen.publishAnalog(ANALOG1, 'B'); // Bundle B RobotOpen.publishAnalog(ANALOG2, 'C'); // Bundle C RobotOpen.publishAnalog(ANALOG3, 'D'); // Bundle D RobotOpen.publishAnalog(ANALOG4, 'E'); // Bundle E RobotOpen.publishAnalog(ANALOG5, 'F'); // Bundle F La dashboard quindi, ci permette di visualizzare e monitorare a finestra i dati di feedback del timedtasks che il robot comunica alla Driver Station. RobotOpen ha progettato il protocollo di trasmissione specificatamente per i Joystick Logitech. Possono dunque essere utilizzabili anche altri generici dispositivi, che tuttavia in alcuni casi, la Driver Station potrebbe non essere in grado di riconoscere. In ogni caso questo comporta l utilizzo di joystick.getindex(int index) 42

43 Come ho già specificatamente illustrato nel capitolo precedente, il protocollo di trasmissione RobotOpen usa dei pacchetti, anche detti bundles, per l identificazione del dispositivo che si è scelto. Il Joystick che quindi viene scelto dal primo menù a scorrimento è sempre identificato con un ID bundle uguale a 0 mentro il secondo con un ID bundle uguale a 1 : questo ha un effetto diretto sul codice che viene scritto con Arduino, infatti nella stringa di codice relativa al setup di I/O e specificatamente al Joystick dovrà essere inserito il valore di bundle ad esso relativo. [ ES. USBjoystic usb1( 0 ); ] Per stabilire una connessione con l Access Point del robot si deve configurare il desktop che esegue la Driver Station configurando una generica connessione wireless nel seguente modo: Figura 30: Configurazione rete wireless Desktop remoto 43

44 4. KINECT: CONTROL LER E MOTION TRACKER 4.1. Generalità Microsoft Kinect (inizialmente conosciuto con il nome Project Natal), `e un accessorio per Xbox 360 sensibile al movimento del corpo umano. Esso rende il giocatore stesso controller della console senza l uso di alcuno strumento, a differenza dei concorrenti come NintendoWii o Sony Playstation. Sebbene in origine il dispositivo Kinect fu pensato esclusivamente per Xbox 360, Microsot rilasciò gratuitamente, l estate 2011, i driver ufficiali per poter utilizzare Kinect sul proprio Personal Computer, dimostrando così di voler portare quanto prima tale tecnologia anche sui sistemi operativi Windows attualmente disponibili, favorendo lo sviluppo di varie applicazioni tra il mondo degli sviluppatori di software. Il risultato è che oggi Kinect è utilizzata nei settori più disparati. Figura 31: Microsoft Kinect Hardware Kinect `e un dispositivo dotato di telecamera RGB, doppio sensore di profondit`a a raggi infra rossi composto da un proiettore a infrarossi e da una telecamera sensibile alla stessa banda. La telecamera RGB ha una risoluzione di pixel, mentre quella a infrarossi usa una matrice di pixel. Kinect dispone anche di un array di microfoni utilizzato dal sistema per la calibrazione dell ambiente in cui ci si trova. Mediante l analisi della riflessione del suono sulle pareti e sull arredamento infatti, per riconoscere correttamente i comandi vocali, elimina i rumori di fondo e il riverbero causato dai suoni del gioco. La barra del Kinect `e motorizzata lungo l asse verticale e segue i movimenti dei giocatori, orientandosi nella posizione migliore per il riconoscimento dei movimenti. Di fatto, la periferica permette all utente di interagire con la console senza l uso di alcun controller da impugnare, ma solo attraverso i movimenti del corpo, i comandi vocali o attraverso gli oggetti presenti nell ambiente. La tecnologia di Kinect riesce a codificare le informazioni che 44

45 le servono nel momento stesso in cui la luce viaggia, analizzando le deformazioni incontrate nel suo percorso. Quello che ne deriva `e una vera e propria renderizzazione 3D dell ambiente in tempo reale, molto più precisa che in passato. Le eventuali persone presenti vengono poi rilevate attraverso un chip, piazzato proprio all interno della videocamera, il quale va alla ricerca di qualsiasi cosa sembri di natura umana e ne calcola i relativi movimenti. Figura 32: Raffigurazione della profondità di gioco Sensore: o Lenti sensibili al colore e alla profondit`a; o Microfono; o Tilt motor per permettere alla periferica di spostarsi; o Compatibile con tutte le console Xbox 360; Campo visivo: o Orizzontale: 57 Gradi; o Verticale: 43 Gradi; o Capacità di spostamento della periferica: 27 gradi; o Profondità: 1.2m - 3.5m; Trasferimento dati: o bit 30 frames/sec; o bit 30 frames/sec; o 16-bit 16 khz; Tracking dello Scheletro: o Fino a 6 persone, inclusi 2 giocatori attivi; o Fino a 20 movimenti per ogni giocatore attivo; o Riconoscimento dell Avatar dell utente; Audio: o Possibilità di effettuare le Chat Party; o Cancellazione dell eco; o Riconoscimento vocale di più voci; 45

46 4.2. Kinect SDK Questo paragrafo si focalizza sulla compatibilità tra Microsoft Kinect e i vari sistemi operativi presenti nel mondo dell informatica. Introduce inoltre i vari metodi di approccio alla programmazione, confrontando principalmente le SDK ufficiali fornite da Microsoft e quelle non ufficiali basate sul framework OpenNI. Installazione cross platform Microsoft Kinect è un dispositivo che può tranquillamente essere installato in qualsiasi sistema operativo. L applicazione basata sul dispositivo Kinect si basa sull utilizzo delle SDK3 ufficiali fornite da Microsoft. `E doveroso precisare però che l installazione dei driver ufficiali permette di utilizzare e sviluppare applicazioni basate su Kinect esclusivamente in un PC con sistema operativo Windows (Xp, Vista, Seven). Le SDK ufficiali sono state rilasciate da Microsoft nel luglio del 2011, mentre driver non ufficiali che sono usciti molti mesi prima hanno permesso agli sviluppatori di software di testare il funzionamento di Kinect e di creare una moltitudine di applicazioni basate sul dispositivo lanciato da Microsoft nell inverno I driver non ufficiali sono basati sul framework OpenNI (Open Natural Interaction). OpenNI `e un framework multi-lingua, cross platform che definisce le API4 per scrivere applicazioni che sfruttano la Natural Interaction (NI). Le API di OpenNI sono composte da un insieme di interfacce per la scrittura di applicazioni NI. Lo scopo principale del framework `e quello di formare delle API standard che consentono la comunicazione con: Sensori audio e video; Middleware di percezione audio-visiva (componenti software che analizzano e comprendono i dati audio e video che vengono registrati dalla scena). Per esempio, il software che riceve i dati visivi come un immagine, restituisce la posizione del palmo di una mano rilevati all interno dell immagine; Il framework OpenNI `e un livello astratto che fornisce l interfaccia per entrambi i dispositivi fisici e componenti middleware (rappresentazione grafica in figura 2.3). Le API permettono la registrazione di pi`u componenti nel framework OpenNI. Questi componenti sono indicati come moduli, e sono utilizzati per produrre ed elaborare i dati sensoriali. La selezione di un dispositivo hardware pi`u adatto ad un determinato scopo, o di un componente middleware diventa facile e flessibile. Nel dicembre 2010, PrimeSense ha rilasciato i propri driver open source con il middleware di motion tracking chiamato NITE. 46

47 PrimeSense è un azienda di semiconduttori, che produce tecnologie ad alte prestazioni per macchina basate sulla riproduzione visiva tridimensionale in vendita per fascia media di consumatori. La combinazione del framework OpenNI con il middleware NITE permette dunque di utilizzare Microsoft Kinect non solo con il sistema operativo Windows Lo Skeletal Viewer L istallazione delle SDK, comprende due esempi di applicazioni per il dispositivo Kinect, con tanto di file soluzione del formato adatto al programma Microsoft Visual Studio, un ambiente di sviluppo integrato chiamato più comunemente IDE. L esempio più interessante è chiamato Skeletal Viewer, l unico programmato con linguaggio di programmazione C++. Tale applicazione è composta da una finestra che contiene tre riquadri di visualizzazione, uno per la vista di profondità con scala di grigi ed il riconoscimento degli utenti (player), un riquadro per visualizzare lo scheletro di uno o al massimo due utenti identificati con il sensore di profondità e un riquadro per visualizzare l immagine a colori della telecamera. Nel lato destro invece, viene visualizzato il numero di fotogrammi al secondo (frame rate), ossia la frequenza di cattura dei fotogrammi che compongono il filmato. Figura 33: Applicazione SkeletalViewer. L applicazione Skeletal Viewer funziona in maniera molto semplice. Per prima cosa è necessario che ci sia una o più persone presenti all interno dell area visualizzata dalla telecamera (riquadro VGA View), dopodichè l applicazione riconosce automaticamente gli utenti e colora l area di ciascuno di essi utilizzando colori differenti e casuali all interno del riquadro associato alla profondità (riquadro Depth View). Dopo aver riconosciuto almeno una persona, l applicazione ne traccia lo scheletro all interno del secondo riquadro (riquadro Skeletal View), tale scheletro è composto da dei punti che corrispondono alle giunture più significative del corpo umano, tali punti sono uniti da segmenti e lo scheletro segue praticamente in tempo reale i movimenti del corpo umano dell utente 47

48 (movimenti troppo veloci posso causare ritardi). Sostanzialmente questo software ha come funzionalià di base il riconoscimento di uno o più utenti ed il conseguente tracciamento dello scheletro di massimo due persone. Skeletal Viewer dispone di molti metodi all interno del file NuiImpl.cpp. Prima di procedere con la modifica della soluzione del programma per realizzare l applicazione LCS `e necessario capire il funzionamento dei principali metodi: o Metodo Nui Init: crea tre eventi, il primo per l immagine video VGA, il secondo associato all immagine video con scala di grigi per la profondit`a ed il terzo per la creazione dello scheletro. Crea i buffer video per riprodurre le immagini delle camere di Kinect nei riquadri VGA view e depth view, imposta la risoluzione dei video e apre gli stream3. Inizializza inoltre l ambiente grafico per il disegno dello scheletro all interno del riquadro skeletal view; o Metodo Nui ProcessThread: gestisce gli eventi e comunica direttamente con la main window. Invia e aggiorna continuamente i valori che popolano i campi dell interfaccia grafica garantendo una visualizzazione dei dati in tempo reale. Grazie alla gestione degli eventi, il metodo Nui ProcessThread, effettua delle chiamate ad altri metodi nei momenti pi`u appropriati, ad esempio quando si verifica un evento scheletro, viene chiamato il metodo Nui DrawSkeleton che disegna lo scheletro di un utente nel riquadro dedicato della finestra principale; o Metodo Nui DrawSkeletonSegment: disegna i segmenti che compongono lo scheletro. Questo metodo viene chiamato all interno del metodo Nui DrawSkeleton e viene utilizzato per collegare una serie di punti (ad esempio i segmenti che vanno da una mano all altra, passando per braccia e spalle); o Metodo Nui DrawSkeleton: rileva e posiziona tutti i venti punti che compongono la rappresentazione dello scheletro dell utente. Chiama il metodo Nui DrawSkeletonSegment per collegare i punti con dei segmenti. `E all interno di questo metodo che vengono estratti i valori della posizione del punto riferito alla testa. Figura 34: Arch. della Kinect 48

49 4.4. Kinect per FRC L interpretazione delle gestualità. L angolo sul piano YX che si viene a formare considerando la posizione del polso rispetto alla spalla viene calcolato dall applicazione Skeletal Viewer al fine di essere preso come dato in ingresso per KinectStick Y; quindi l'informazione relativa all angolo risultante spalla/polso viene così assegnata lungo l asse Y su un intervallo compreso tra - 1 e 1: ad ogni valore angolare corrisponderà quindi un valore di Y, grazie al quale si posso gestire i controllori di velocità dei motori. I dati in ingresso al KinectStick sono dunque in realtà due Joystick analogici che si muovono solo lungo Y (KinectStick1-Y and KinectStick2-Y). Il diagramma che segue spiega quanto detto, illustrando come avviene la conversione dell angolo spalla/polso in valori per un per un joystick standard. Figura 35: assegnazione valore angolare/ valore di Y Al fine di avere una maggiore sicurezza sul controllo del robot, l applicazione Skeletal è in grado di calcolare attraverso dei sensori di profondità l angolo compreso tra la posizione del gomito e quella del polso sul piano ZX. Una variazione significativa oltre i 10 fa si che venga letto un valore Y=0 con il risultato di arrestare il robot molto più velocemente. Figura 36: l assegnazione del valore angolare sul piano XZ Dato che le due braccia sono già utilizzate per gli assi del controllo in tankmode, le rimanenti parti del corpo sono potenzialmente disponibili per essere utilizzate come bottoni. 49

50 Le possibili ulteriori configurazioni calcolabili dall applicazione Skeletal: sul piano XY, Testa inclinata verso destra; sul piano XY, Testa inclinata verso sinistra; sul piano XY, la gamba destra verso destra; sul piano XY, gamba sinistra verso sinistra; sul piano XZ, gamba destra in avanti; sul piano XZ, gamba destra indietro; sul piano XZ, gamba sinistra in avanti; sul piano XZ, gamba sinistra indietro. I valori dei bottoni sono impostati per essere uguali per entrambe le configurazioni KinectStick1 e KinectStick2. L utilizzo delle gestualità attraverso i vari linguaggi di programmazione. o Labview. L implementazione del KinectStick in Labview è possibile usando la stessa interfaccia di un normale Joystick; infatti utilizzando il Joystick Open VI si ha a disposizione l opzione kinect e kinect 2 in aggiunta alle porte USB. Una volta scelto il Joystick questo si comporterà come un normale USB Joystick. o C/C++. L implementazione del KinectStick in C/C++ è possible grazie ai file KinectStick.h e KinectStick.cpp; l elaborazione dei movimenti rilevati da Kinect è possibile grazie alla classe KinectStick. Il seguente esempio crea due KinectStick chiamate leftarm e rightarm KinectStick leftarm(1); KinectStick rightarm(2); Riporto qui di seguito KinectStick.h che gestisce l'input dei dati Joystick inviati dal server Kinect FRC quando viene utilizzato con un dispositivo Kinect collegato alla Driver Station NI. class KinectStick : public GenericHID, public ErrorBase public: explicit KinectStick(int id); virtual float GetX(JoystickHand hand = krighthand); virtual float GetY(JoystickHand hand = krighthand); virtual float GetZ(); virtual float GetTwist(); 50

51 virtual float GetThrottle(); virtual float GetRawAxis(UINT32 axis); virtual bool GetTrigger(JoystickHand hand = krighthand); virtual bool GetTop(JoystickHand hand = krighthand); virtual bool GetBumper(JoystickHand hand = krighthand); virtual bool GetRawButton(UINT32 button); private: void GetData(); float ConvertRawToFloat(INT8 charvalue); typedef union struct UINT8 size; UINT8 id; struct unsigned char axis[6]; unsigned short buttons; rawsticks[2]; formatted; char data[18]; KinectStickData; ; int m_id; static UINT32 _recentpacketnumber; static KinectStickData _sticks; #endif o Java. L implementazione del KinectStick Java è possible grazie ai file KinectStick.java (Disponibile in Appendice); l elaborazione dei movimenti rilevati da Kinect è possibile grazie alla classe KinectStick. Il seguente esempio crea due KinectStick chiamate leftarm e rightarm: KinectStick leftarm; KinectStick rightarm; leftarm = new KinectStick(1); rightarm = new KinectStick(2); 51

52 5. IL TEST DI CAMERA VISION 5.1. RoboRealm RoboRealm è un'applicazione per l'uso di computer vision, analisi delle immagini, sistemi di visione nel campo della robotica. RoboRealm fornisce una interfaccia GUI basata su Windows per la sperimentazione di diversi moduli che possono essere assemblati in modo personalizzato per ottenere il risultato desiderato. L'obiettivo principale di RoboRealm è tradurre input visivi in comandi attuatori che possono essere utilizzati per spostare robot o prendere decisioni in base a quello che la macchina vede. In RoboRealm sono implementati molteplici algoritmi: Algoritmi Blob and Particle; algoritmi di colore, rilevamento dei bordi, filtri, e altre comuni funzionalità di computer vision. Come strumento di computer vision applicato alla robotica, include anche tutte quelle metodologie per la localizzazione del robot, capacità di navigazione, e l'integrazione con i comuni sensori robotici. Ci sono anche moduli aggiuntivi che, come il modulo di navigazione AVM che permette la navigazione autonoma del robot in base ai punti di riferimento visivi. L interfaccia GUI RoboRealm consente un esplorazione intuitiva tra strumenti molto avanzati; il Vision Machine è un settore che richiede la molteplice interazione di complessi concetti matematici e di programmazione. RoboRealm offre la possibilità di un facile utilizzo di questi algoritmi al fine di sviluppare un modello intuitivo su ciò che un algoritmo può fare e come può essere applicato con successo a un progetto. I valori che modificano il comportamento degli algoritmi di visione possono essere regolati nell immediato avendo così un immediato riscontro dell immagine elaborata. Questo semplifica il tweak, la compilazione, e l esecuzione in fase di progettazione. RoboRealm si connette ai dispositivi di input tra cui webcam, immagini statiche, file video, telecamere IP e vari dispositivi di imaging. I sistemi di visione sono tipicamente solo una parte delle soluzioni alle problematiche che possiamo incontrare in campo robotico. Le estensioni includono moduli integrati che permettono lo scripting in varie linguaggi (VBScript, Python, e CScript), l architettura a plugin consente all utente di creare moduli personalizzati che sono incorporati in RoboRealm pipeline processing (DLL, pipes), un API fornisce inoltre funzionalità server. RobotRealm richiede un sistema operativo Microsoft Windows, ma lavora anche con una grande varietà di piattaforme per la robotica e la programmazione, come Sruveyor, Lego Mindstorms NXT, Vex Robotics System Design, irobot Create e Microsoft Robotics Developer Studio. 52

53 5.2. Arduino e Roborealm In questa tesi è stata affrontata la problematica del Camera Vision per la gestione del robot in modalità autonoma. La trattazione che segue circa l utilizzo del software RoboRealm affiancato ad Arduino, vuole essere solo una prima embrionale applicazione di questa tecnologia che permetterà al robot di riconoscere una forma geometrica, il suo centro di gravità ed il colore che la caratterizza. In base ai dati che il robot acquisisce, il sistema dovrà quindi essere in grado di prendere delle decisioni come centrare la propria posizione sul centro di gravità dell oggetto inquadrato e una volta portato a termine questo compito, in base alla distanza dall oggetto, attivare i motori del congegno di shooting. In questo paragrafo si descrive il tracking di un oggetto di colore definito interfacciando RoboRealm ad Arduino per controllare un semplice servomotore. Ho utilizzato quindi i seguenti moduli: il filtro Gaussiano gaussian blur. Questo filtro leviga l immagine catturata dalla telecamera ma ne conserva meglio i bordi rispetto al mean filter che viene utilizzato per attenuare un immagine a partire dalla media dei valori dei pixel circostanti. Il filtro Gaussiano da più peso alla posizione del pixel corrente e quindi i pesi diminuiscono all aumentare della loro distanza secondo la formula Gaussiana. Ponderando i pesi al valore del pixel finale questo filtro può meglio preservare i bordi rispetto al mean filter il quale prevede una eguale attribuzione dei pesi all interno della finestra di filtro. Il filtro Gaussiano è un filtro di convoluzione la cui matrice di convoluzione è di distribuzione Gaussiana. Per un filtro Gaussiano i singoli valori del filtro sono definiti come: Nel seguente esempio i grafici rappresentano un filtro Gaussiano con una dimensione di finestra paria a 7 per differenti valori di. Figura 37: Grafici per differenti valori di theta 53

54 Nel caso di studio preso in esame ho adottato come dimensione di finestra un valore pari a 12. Come risultato avremo un immagine più sfocata ma con una riduzione di rumore. Il filtro RGB. Il filtro RGB utilizza i valori RGB per focalizzare l'attenzione verso i colori primari RGB. A seconda del colore selezionato questo filtro diminuirà tutti i pixel che non sono del colore selezionato. Questa funzione è diversa dal RGB channel per il fatto che i pixel di colore bianco vanno a diminuire, anche se dovessero contenere il colore selezionato. Ad esempio, se venisse scelto il Rosso si avrebbe: R = ((R-B) + (R-G)) G = 0 B = 0 Il rosso viene quindi normalizzato rispetto al massimo valore di rosso. A causa della normalizzazione, i pixel più scuri potrebbero essere amplificati in intensità e in questo modo l immagine risultante potrebbe essere affetta da un significativo rumore. Viene quindi definito il valore minimo di pixel, che permette di specificare un valore minimo sotto il quale i pixel vengono indentificati come neri e quindi ignorati nel calcolo dell immagine risultante. Il valore minimo predefinito è pari a 40 su una scala che va da 0 a 255. Si utilizza il filtro RGB per mettere in evidenza l immagine rispetto a un certo/i colore/i, anche con condizioni di luce attenuata. Nel caso di studio preso in esame ho adottato il colore blu ; quindi sono stati filtrati tutti gli altri colori che compongono l immagine catturata dalla telecamera. Il centro di gravità dell oggetto o centro di massa statistica. Si calcola come: COG_X = COG_X + (I*x) COG_Y = COG_Y + (I*y) Total = Total + I in cui x/y definiscono la posizione del pixel corrente e per ciascun pixel: I = (R + G+ B) / 3 54

55 Il Modulo VBScript. Questo modulo fornisce un modo per creare script personalizzati di Visual Basic. Questo modulo è pensato per eseguire rapidamente operazioni personalizzate senza la necessità di implementare o utilizzare le API che tipicamente richiedono strumenti esterni. L'interfaccia prevede due metodi per specificare il codice. Il primo metodo prevede di specificare un file di testo come sorgente del programma, il secondo metodo prevede l utilizzo di un editor di testo per modificare / creare questo file. Nel caso di studio preso in esame ho implementato sul modulo VBScript il seguente codice: cogx = GetVariable("COG_X") cogx = cogx* SetVariable "COG_Xmode", cogx GetVariable ("variable_name") - restituisce un valore intero della variabile specificata. SetVariable "variable_name", variable_value - imposta il valore della variabile alla variabile specificata. Il modulo Sparkfun Arduino, ha lo scopo di consentire a RoboRealm di comunicare con un Arduino mentre si è collegati tramite USB o bluetooth. Si richiede di scaricare l Uno sketch (programma Arduino, di cui si allega il codice in Appendice) nella scheda Arduino, al fine di facilitare la comunicazione con questo modulo in RoboRealm. Vi sono 6 linee PWM disponibili e che fanno parte delle 14 linee di I/O digitale, per il presente caso di studio si è collegato al pin #9 un microservo a cui sono stati impostati valori minimi e massimi pari a 560/2300. Per realizzare l esperimento si è collegato il microservo alla board Arduino: - Collegando il cavo rosso a 5V; - Collegando il cavo nero a Ground; - Collegando il cavo bianco sul pin PWM corrispondente. Figura 38: L esperimento di Camera Vision 55

56 6. SPECIFICHE RICHIESTE AL SISTEMA E IMPLEMENTAZIONE DEL SOFTWARE 6.1. Cos è richiesto ai meccanismi del robot. Nell affrontare la problematica di progettazione e realizzazione del robot si è scelto di suddividere in sotto-moduli lo studio del nostro sistema. Come già è stato detto, il robot dovrà essere in grado di raccogliere dei dischi, caricarli in un congegno di shooting e quindi lanciarli su delle fessure poste su di una parete. Una volta completato tale compito esso dovrà essere in grado di sollevarsi da terra utilizzando una o più appendici su una piramide metallica posta al centro del campo di gioco. Figura 39: Il game FRC del 2013 Distinguiamo quindi i seguenti congegni: - una base mobile che sia in grado di muoversi omnidirezionalmente grazie all utilizzo delle mecanum weels. La base deve essere controllabile grazie all utilizzo di un Joystic in modalità Arcade e/o Tank e tramite controllo motorio attraverso l utilizzo di Microsoft Kinect. Per tale congegno si presuppone l utilizzo di 4 motori DC ognuno controllato da un controllore di velocità Jaguar. Questo capitolo mostra come rispondere alle specifiche richieste adottando il C++ come linguaggio di programmazione e il compact RIO come piattaforma di prototipizzazione con lo specifico fine di controllare una 56

57 base mobile attraverso l utilizzo di Microsoft Kinect. Tuttavia, Il sistema descritto in questa prima fase di test non ha previsto il controllo omnidirezionale, in quanto si è voluta focalizzare maggiormente l attenzione sull aspetto di controllo tramite le gestualità. Viene inoltre proposto un secondo test con cui si risponde alle specifiche di omnidirezionalità. Il codice è stato editato utilizzando la IDE Arduino al fine di controllare la base mobile con un Joystick. Viene proposto il controllo in modalità tank e in modalità arcade - Un congegno di raccolta e caricamento che deve poter essere attivato tramite un bottone e disattivato da uno switch quando il sistema rileva lo shooter come già carico. In particolar modo, il disco viene raccolto da due spazzole rotanti e inserito in un meccanismo che grazie all ausilio di due elicoidali e uno step motor, può infine arrivare ad essere caricato nel congegno di shooting. Per tale congegno si presuppone l utilizzo di 2 motori DC ognuno controllato da un controllore di velocità e appunto, uno step motor. - Un congegno di shooting che possa essere attivato tramite un bottone. Per tale congegno si presuppone l utilizzo di 1 motore DC controllato da un controllore di velocità Jaguar. - Un congegno che permetta al robot di arrampicarsi. In questa tesi tuttavia la trattazione a tale problematica viene tralasciata a uno studio futuro Pogrammare il compact RIO FRC in C++ con WINDRIVER FRC v Il seguente codice è stato caricato su compact RIO al fine di controllare una base mobile attraverso l utilizzo di Microsoft Kinect. Sono stati definiti gli intervalli dei valori angolari che il quale il sistema può assumere; in particolar modo è stato impostato che l angolo massimo accettabile dalle braccia dell utente rispetto alla posizione di 0 sia pari a 105 seguito da un valore angolare minimo pari a -90. Allo stesso modo vengono definiti valori massimi e minimi per quanto riguarda la posizione delle gambe in avanti, indietro o fuori. Rispettivamente valori pari a -110, -80, -75. #include "WPILib.h" #include "Math.h" #define PI

58 //Constants which define the valid arm positions #define ARM_MAX_ANGLE 105 #define ARM_MIN_ANGLE -90 #define Z_PLANE_TOLERANCE 0.3 /* In meters */ //Constants which define the "trigger" angles for the various buttons #define LEG_FORWARD -110 #define LEG_BACKWARD -80 #define LEG_OUT -75 #define HEAD_LEFT 98 #define HEAD_RIGHT 82 Segue quindi la parte di codice relativa al controllo del robot in modalità Tank; viene preso in esame in tale codice dapprima la posizione angolare delle braccia, quindi della testa e infine delle gambe: /* Only process data if skeleton is tracked */ if (kinect->gettrackingstate() == Kinect::kTracked) /* Determine angle of each arm and map to range -1,1 */ leftangle = AngleXY(kinect->GetSkeleton().GetShoulderLeft(), kinect->getskeleton().getwristleft(), true); rightangle = AngleXY(kinect->GetSkeleton().GetShoulderRight(), kinect->getskeleton().getwristright(), false); leftaxis = CoerceToRange(leftAngle, -70, 70, -1, 1); rightaxis = CoerceToRange(rightAngle, -70, 70, -1, 1); /* Check if arms are within valid range and at approximately the same z-value */ datawithinexpectedrange = (leftangle < ARM_MAX_ANGLE) && (leftangle > ARM_MIN_ANGLE) && (rightangle < ARM_MAX_ANGLE) && (rightangle > ARM_MIN_ANGLE); datawithinexpectedrange = datawithinexpectedrange && 58

59 InSameZPlane(kinect- >GetSkeleton().GetShoulderLeft(), kinect->getskeleton().getwristleft(), Z_PLANE_TOLERANCE) && InSameZPlane(kinect- >GetSkeleton().GetShoulderRight(), kinect->getskeleton().getwristright(), Z_PLANE_TOLERANCE); /* Determine the head angle and use it to set the Head buttons */ headangle = AngleXY(kinect->GetSkeleton().GetShoulderCenter(), kinect->getskeleton().gethead(), false); buttons[0] = headangle > HEAD_LEFT; buttons[1] = headangle < HEAD_RIGHT; /* Calculate the leg angles in the XY plane and use them to set the Leg Out buttons */ leftlegangle = AngleXY(kinect->GetSkeleton().GetHipLeft(), kinect- >GetSkeleton().GetAnkleLeft(), true); rightlegangle = AngleXY(kinect->GetSkeleton().GetHipRight(), kinect- >GetSkeleton().GetAnkleRight(), false); buttons[2] = leftlegangle > LEG_OUT; buttons[3] = rightlegangle > LEG_OUT; /* Calculate the leg angle in the YZ plane and use them to set the Leg Forward and Leg Back buttons */ leftlegyz = AngleYZ(kinect->GetSkeleton().GetHipLeft(), kinect- >GetSkeleton().GetAnkleLeft(), false); rightlegyz = AngleYZ(kinect->GetSkeleton().GetHipRight(), kinect- >GetSkeleton().GetAnkleRight(), false); buttons[4] = rightlegyz < LEG_FORWARD; buttons[5] = rightlegyz > LEG_BACKWARD; buttons[6] = rightlegyz < LEG_FORWARD; buttons[7] = rightlegyz > LEG_BACKWARD; 59

60 if (datawithinexpectedrange) /** * Drives using the Kinect axes scaled to 1/3 power * Axes are inverted so arms up == joystick pushed away from you */ myrobot.tankdrive(leftaxis*0.6, rightaxis*0.6); something with boolean "buttons" here /** * Do */ /* Optional SmartDashboard display of Kinect values */ //dash- >PutDouble("Left Arm", -leftaxis); //dash- >PutDouble("Right Arm", -rightaxis); //dash- >PutBoolean("Head Left", buttons[0]); //dash- >PutBoolean("Head Right", buttons[1]); //...etc... 60

61 6.3. Programmare Arduino Ethernet con le librerie di RobotOpen Prima di andare a vedere con dettaglio il codice che è stato implementato su Arduino, vale la pena presentare la modulazione di larghezza di impulso, ampiamente utilizzata per il controllo dei motori di un sistema robotico. La Pulse-width modulation o PWM è un tipo di modulazione digitale che permette di ottenere una tensione media variabile dipendente dal rapporto tra la durata dell' impulso positivo e di quello negativo, allo stesso modo è utilizzato per protocolli di comunicazione in cui l'informazione è codificata sotto forma di durata nel tempo di ciascun impulso. Grazie ai moderni microcontrollori è possibile attivare o inattivare un interruttore ad alta frequenza e allo stesso modo rilevare lo stato e il periodo di un impulso. La durata di ciascun impulso può essere espressa in rapporto al periodo tra due impulsi successivi, implicando il concetto di ciclo di lavoro. Un ciclo di lavoro utile pari a 0% indica un impulso di durata nulla, in pratica assenza di segnale, mentre un valore del 100% indica che l'impulso termina nel momento in cui inizia il successivo. Di seguito è mostrato un esempio di modulazione a 2 bit. Un segnale di clock è a volte utilizzato per determinare la posizione degli impulsi, ma spesso non è necessario in quanto al segnale viene aggiunto un valore minimo che garantisce la presenza di un piccolo impulso anche per il valore zero. La modulazione a larghezza di impulso è largamente utilizzata anche per regolare la potenza elettrica inviata ad un carico, per esempio negli inverter, per regolare la velocità dei motori in corrente continua e per variare la luminosità delle lampadine. Come si può intuire, con un duty cycle pari a zero la potenza trasferita è nulla, mentre al 100% la potenza corrisponde al valore massimo trasferito nel caso non sia presente il circuito di modulazione. Ogni valore intermedio determina una corrispondente fornitura di potenza. 61

62 Il vantaggio di questa tecnica è di ridurre drasticamente la potenza dissipata dal circuito limitatore rispetto all'impiego di transistor controllati analogicamente. In un semiconduttore la potenza dissipata è determinata dalla corrente che lo attraversa per la differenza di potenziale presente ai suoi capi. In un circuito PWM il transistor in un istante conduce completamente, riducendo al minimo la caduta ai suoi capi, oppure non conduce, annullando la corrente, ed in entrambi i casi la potenza dissipata è minima Il codice implementato su Arduino. Il seguente codice è stato caricato su un Arduino Ethernet al fine di controllare una base mobile attraverso l utilizzo di un Joystick e della Driver Station fornita da RobotOpen. Il protocollo RobotOpen ha introdotto un formato fisso per tutti i dispositivi joystick. Questo è stato un tentativo trasversale di standardizzare il sistema di controllo con Android, ios, e le Driver Station. Qui di seguito viene definito il bundle del Joystick: Figura 40: Il bundle del Joystick Nel seguente codice si assegna un range di valori che vanno da 0 a 255; il che significa che se un motore risulta essere fermo a questo verrà assegnato un valore pari a 127, analogamente verrà quindi assegnato un valore pari a 255 per 62

Controllare un nastro trasportatore fischertechnik con Arduino

Controllare un nastro trasportatore fischertechnik con Arduino TITOLO ESPERIENZA: Controllare un nastro trasportatore fischertechnik con Arduino PRODOTTI UTILIZZATI: OBIETTIVO: AUTORE: RINGRAZIAMENTI: Interfacciare e controllare un modello di nastro trasportatore

Dettagli

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

Dettagli

Serduino - SERRA CON ARDUINO

Serduino - SERRA CON ARDUINO Serduino - SERRA CON ARDUINO 1 Componenti Facchini Riccardo (responsabile parte hardware) Guglielmetti Andrea (responsabile parte software) Laurenti Lorenzo (progettazione hardware) Rigolli Andrea (reparto

Dettagli

Progettazione di sistemi Embedded

Progettazione di sistemi Embedded Progettazione di sistemi Embedded Corso introduttivo di progettazione di sistemi embedded A.S. 2013/2014 proff. Nicola Masarone e Stefano Salvatori Eccetto dove diversamente specificato, i contenuti di

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Oscilloscopi serie WaveAce

Oscilloscopi serie WaveAce Oscilloscopi serie WaveAce 60 MHz 300 MHz Il collaudo facile, intelligente ed efficiente GLI STRUMENTI E LE FUNZIONI PER TUTTE LE TUE ESIGENZE DI COLLAUDO CARATTERISTICHE PRINCIPALI Banda analogica da

Dettagli

TRACER218 MODULO DATALOGGER RS485 MODBUS SPECIFICA PRELIMINARE

TRACER218 MODULO DATALOGGER RS485 MODBUS SPECIFICA PRELIMINARE TRACER218 MODULO DATALOGGER RS485 MODBUS SPECIFICA PRELIMINARE V.00 AGOSTO 2012 CARATTERISTICHE TECNICHE Il modulo TRACER218 485 è un dispositivo con porta di comunicazione RS485 basata su protocollo MODBUS

Dettagli

Aggiornamento del firmware per iphone con connettore Lightning compatibile con AppRadio Mode

Aggiornamento del firmware per iphone con connettore Lightning compatibile con AppRadio Mode Aggiornamento del firmware per iphone con connettore Lightning compatibile con AppRadio Mode Istruzioni sull aggiornamento per i modelli di navigazione: AVIC-F40BT, AVIC-F940BT, AVIC-F840BT e AVIC-F8430BT

Dettagli

Le telecamere Installate verranno connesse ad Unità di elaborazione multiplexer per la gestione e la verifica di gruppi omogenei di 4-8-16-32-48-64

Le telecamere Installate verranno connesse ad Unità di elaborazione multiplexer per la gestione e la verifica di gruppi omogenei di 4-8-16-32-48-64 Le telecamere Installate verranno connesse ad Unità di elaborazione multiplexer per la gestione e la verifica di gruppi omogenei di 4-8-16-32-48-64 telecamere. I sistemi di acquisizione ed archiviazione

Dettagli

SERVER VIDEO 1-PORTA H.264

SERVER VIDEO 1-PORTA H.264 SERVER VIDEO 1-PORTA H.264 MANUALE UTENTE DN-16100 SALVAGUARDIA IMPORTANTE Tutti i prodotti senza piombo offerti dall'azienda sono a norma con i requisiti della legge Europea sulla restrizione per l'uso

Dettagli

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi.

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi. I server di stampa vengono utilizzati per collegare le stampanti alle reti. In tal modo, più utenti possono accedere alle stampanti dalle proprie workstation, condividendo sofisticate e costose risorse.

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Manuale d'istruzioni. Alimentatore DC Programmabile 200 Watt (40 Volt / 5 Amp) Modello 382280

Manuale d'istruzioni. Alimentatore DC Programmabile 200 Watt (40 Volt / 5 Amp) Modello 382280 Manuale d'istruzioni Alimentatore DC Programmabile 200 Watt (40 Volt / 5 Amp) Modello 382280 382280 Introduzione Congratulazioni per aver acquistato l'alimentatore DC Programmabile 382280 della Extech.

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Caratteristiche raccomandate del Network in un progetto di Home Automation

Caratteristiche raccomandate del Network in un progetto di Home Automation Caratteristiche raccomandate del Network in un progetto di Home Automation Uno degli aspetti progettuali più importanti di un sistema Control4 è la rete. Una rete mal progettata, in molti casi, si tradurrà

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A Leggere attentamente questo manuale prima dell utilizzo e conservarlo per consultazioni future Via Don Arrigoni, 5 24020 Rovetta

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

Manuale tecnico Stazione Meteo Eolo Davis

Manuale tecnico Stazione Meteo Eolo Davis Descrizione Generale Manuale tecnico Stazione Meteo Eolo Davis EOLO DAVIS rappresenta una soluzione wireless di stazione meteorologica, basata su sensoristica Davis Instruments, con possibilità di mettere

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

Controllo industriale SE-609

Controllo industriale SE-609 Controllo industriale SE-609 Controllo e visualizzazione uniti come soluzione per l automazione con comandi mediante touch Controlli industriali all avanguardia per impianti per il trattamento termico

Dettagli

Guida all'installazione ed uso dell'app RXCamLink

Guida all'installazione ed uso dell'app RXCamLink Guida all'installazione ed uso dell'app RXCamLink Questa guida riporta i passi relativi all'installazione ed all'utilizzo dell'app "RxCamLink" per il collegamento remoto in mobilità a sistemi TVCC basati

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

Agilent OpenLAB Chromatography Data System (CDS) Agilent OpenLAB Chromatography Data System (CDS) EZChrom Edition e ChemStation Edition Requisiti hardware e software Agilent Technologies Informazioni legali Agilent Technologies, Inc. 2013 Nessuna parte

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

group HIGH CURRENT MULTIPLEX NODE

group HIGH CURRENT MULTIPLEX NODE HIGH CURRENT MULTIPLEX NODE edizione/edition 04-2010 HIGH CURRENT MULTIPLEX NODE DESCRIZIONE GENERALE GENERAL DESCRIPTION L'unità di controllo COBO è una centralina elettronica Multiplex Slave ; la sua

Dettagli

Articolo. Dieci buoni motivi per acquistare una telecamere di rete Ovvero, quello che il vostro fornitore di telecamere analogiche non vi dirà mai

Articolo. Dieci buoni motivi per acquistare una telecamere di rete Ovvero, quello che il vostro fornitore di telecamere analogiche non vi dirà mai Articolo Dieci buoni motivi per acquistare una telecamere di rete Ovvero, quello che il vostro fornitore di telecamere analogiche non vi dirà mai INDICE Introduzione 3 Dieci cose che il vostro fornitore

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

TeamViewer 8 Manuale Meeting

TeamViewer 8 Manuale Meeting TeamViewer 8 Manuale Meeting Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni

Dettagli

Nota di applicazione: impostazione della comunicazione

Nota di applicazione: impostazione della comunicazione Nota di applicazione: impostazione della comunicazione Questa nota di applicazione descrive come installare e impostare la comunicazione tra l'inverter e il server di monitoraggio SolarEdge. Questo documento

Dettagli

Procedura corretta per mappare con ECM Titanium

Procedura corretta per mappare con ECM Titanium Procedura corretta per mappare con ECM Titanium Introduzione: In questo documento troverete tutte le informazioni utili per mappare correttamente con il software ECM Titanium, partendo dalla lettura del

Dettagli

Guida. Vista Live. Controllo. Riproduzione su 24 ore. Ricerca avanz. Le icone includono: Mod. uscita. Icona. Un sensore di allarme.

Guida. Vista Live. Controllo. Riproduzione su 24 ore. Ricerca avanz. Le icone includono: Mod. uscita. Icona. Un sensore di allarme. Guida operatore del registratore TruVision Vista Live Sull immagine live dello schermo vengono visualizzati laa data e l ora corrente, il nome della telecamera e viene indicato se è in corso la registrazione.

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

TeamViewer 8 Manuale Controllo remoto

TeamViewer 8 Manuale Controllo remoto TeamViewer 8 Manuale Controllo remoto Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 6 1.1 Informazioni sul software... 6

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti

Web conferencing software. Massimiliano Greco - Ivan Cerato - Mario Salvetti 1 Web conferencing software Massimiliano Greco - Ivan Cerato - Mario Salvetti Arpa Piemonte 2 Che cosa è Big Blue Button? Free, open source, web conferencing software Semplice ed immediato ( Just push

Dettagli

TB-SMS. Combinatore telefonico GSM-SMS Manuale di installazione ed uso. Ver. 1.6.10 31/07/07

TB-SMS. Combinatore telefonico GSM-SMS Manuale di installazione ed uso. Ver. 1.6.10 31/07/07 TB-SMS Combinatore telefonico GSM-SMS Manuale di installazione ed uso Ver. 1.6.10 31/07/07 MANUALE DI INSTALLAZIONE ED USO INTRODUZIONE. Il combinatore TB-SMS offre la possibilità di inviare sms programmabili

Dettagli

Una scuola vuole monitorare la potenza elettrica continua di un pannello fotovoltaico

Una scuola vuole monitorare la potenza elettrica continua di un pannello fotovoltaico ESAME DI STATO PER ISTITUTI PROFESSIONALI Corso di Ordinamento Indirizzo: Tecnico delle industrie elettroniche Tema di: Elettronica, telecomunicazioni ed applicazioni Gaetano D Antona Il tema proposto

Dettagli

Informazione tecnica SUNNY CENTRAL COMMUNICATION CONTROLLER

Informazione tecnica SUNNY CENTRAL COMMUNICATION CONTROLLER Informazione tecnica SUNNY CENTRAL COMMUNICATION CONTROLLER Contenuto Sunny Central Communication Controller è un componente integrale dell inverter centrale che stabilisce il collegamento tra l inverter

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Seagate Access per Personal Cloud Manuale utente

Seagate Access per Personal Cloud Manuale utente Seagate Access per Personal Cloud Manuale utente 2015 Seagate Technology LLC. Tutti i diritti riservati. Seagate, Seagate Technology, il logo Wave e FreeAgent sono marchi depositati o marchi registrati

Dettagli

DEFENDER HYBRID. Sistema antintrusione ibrido wireless e filare. fracarro.com

DEFENDER HYBRID. Sistema antintrusione ibrido wireless e filare. fracarro.com DEFENDER HYBRID Sistema antintrusione ibrido wireless e filare Il sistema Un sistema completamente nuovo e flessibile Impianto filare o wireless? Da oggi Defender Hybrid Defender Hybrid rivoluziona il modo

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Progettare network AirPort con Utility AirPort. Mac OS X v10.5 + Windows

Progettare network AirPort con Utility AirPort. Mac OS X v10.5 + Windows Progettare network AirPort con Utility AirPort Mac OS X v10.5 + Windows 1 Indice Capitolo 1 3 Introduzione a AirPort 5 Configurare un dispositivo wireless Apple per l accesso a Internet tramite Utility

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

MANUALE TECNICO 080406 E SMS

MANUALE TECNICO 080406 E SMS IT MANUALE TECNICO 080406 E SMS MANUALE DI INSTALLAZIONE ED USO INTRODUZIONE. Il combinatore E-SMS offre la possibilità di inviare sms programmabili a numeri telefonici preimpostati e di attivare uscite

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Introduzione prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti di questo documento sono

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

Architettura di un sistema informatico 1 CONCETTI GENERALI

Architettura di un sistema informatico 1 CONCETTI GENERALI Architettura di un sistema informatico Realizzata dal Dott. Dino Feragalli 1 CONCETTI GENERALI 1.1 Obiettivi Il seguente progetto vuole descrivere l amministrazione dell ITC (Information Tecnology end

Dettagli

Trasmissione Seriale e Parallela. Interfacce di Comunicazione. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Prof.

Trasmissione Seriale e Parallela. Interfacce di Comunicazione. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Prof. Interfacce di Comunicazione Università degli studi di Salerno Laurea in Informatica I semestre 03/04 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 2 Trasmissione

Dettagli

FAS-420-TM rivelatori di fumo ad aspirazione LSN improved version

FAS-420-TM rivelatori di fumo ad aspirazione LSN improved version Sistemi di Rivelazione Incendio FAS-420-TM rivelatori di fumo ad FAS-420-TM rivelatori di fumo ad Per il collegamento alle centrali di rivelazione incendio FPA 5000 ed FPA 1200 con tecnologia LSN improved

Dettagli

DVR Icatch serie X11 e X11Z iwatchdvr applicazione per iphone /ipad

DVR Icatch serie X11 e X11Z iwatchdvr applicazione per iphone /ipad DVR Icatch serie X11 e X11Z iwatchdvr applicazione per iphone /ipad Attraverso questo applicativo è possibile visualizzare tutti gli ingressi del DVR attraverso il cellulare. Per poter visionare le immagini

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

E-VISION Tempo. Timer luci a microprocessore. Manuale d uso e installazione

E-VISION Tempo. Timer luci a microprocessore. Manuale d uso e installazione E-VISION Tempo Timer luci a microprocessore Manuale d uso e installazione ELOS E-VISION - Tempo Controllo Luci Acquario a Microprocessore. 1. Semplice da programmare 2. Gestisce sia lampade a led sia lampade

Dettagli

Trattamento aria Regolatore di pressione proporzionale. Serie 1700

Trattamento aria Regolatore di pressione proporzionale. Serie 1700 Trattamento aria Serie 7 Serie 7 Trattamento aria Trattamento aria Serie 7 Serie 7 Trattamento aria +24VDC VDC OUTPUT MICROPROCESS. E P IN EXH OUT Trattamento aria Serie 7 Serie 7 Trattamento aria 7 Trattamento

Dettagli

WAN 80.80.80.80 / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP.

WAN 80.80.80.80 / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP. Configurazione di indirizzi IP statici multipli Per mappare gli indirizzi IP pubblici, associandoli a Server interni, è possibile sfruttare due differenti metodi: 1. uso della funzione di Address Translation

Dettagli

Redatto da Product Manager info@e4company.com. Verificato da E4 Team Supporto supporto@e4company.com

Redatto da Product Manager info@e4company.com. Verificato da E4 Team Supporto supporto@e4company.com Redatto da Product Manager info@e4company.com Verificato da E4 Team Supporto supporto@e4company.com 2 SOMMARIO 1 INTRODUZIONE... 4 2 SOLUTION OVERVIEW... 5 3 SOLUTION ARCHITECTURE... 6 MICRO25... 6 MICRO50...

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Sistema AirLINE per il pilotaggio ed il Controllo Remoto del Processo WAGO INGRESSI/USCITE remoti e Fieldbus

Sistema AirLINE per il pilotaggio ed il Controllo Remoto del Processo WAGO INGRESSI/USCITE remoti e Fieldbus Sistema AirLINE per il pilotaggio ed il Controllo Remoto del Processo 86-W Sistema integrato compatto di valvole con I/O elettronici Sistemi personalizzati premontati e collaudati per il pilotaggio del

Dettagli

Corso di Informatica Industriale

Corso di Informatica Industriale Corso di Informatica Industriale Prof. Giorgio Buttazzo Dipartimento di Informatica e Sistemistica Università di Pavia E-mail: buttazzo@unipv.it Informazioni varie Telefono: 0382-505.755 Email: Dispense:

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Dispositivi di comunicazione

Dispositivi di comunicazione Dispositivi di comunicazione Dati, messaggi, informazioni su vettori multipli: Telefono, GSM, Rete, Stampante. Le comunicazioni Axitel-X I dispositivi di comunicazione servono alla centrale per inviare

Dettagli

Soluzioni multifunzionali, ideali per gestire ogni flusso di lavoro

Soluzioni multifunzionali, ideali per gestire ogni flusso di lavoro Soluzioni multifunzionali, ideali per gestire ogni flusso di lavoro Sistemi digitali per l ufficio sempre più efficienti e facili da usare Ottenere massima efficienza ed elevata professionalità, pur mantenendo

Dettagli

Istruzioni per l uso Sartorius

Istruzioni per l uso Sartorius Istruzioni per l uso Sartorius Descrizione dell interfaccia per le bilance Entris, ED, GK e GW Indice Impiego previsto Indice.... 2 Impiego previsto.... 2 Funzionamento.... 2 Uscita dati.... 3 Formato

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

iphone in azienda Guida alla configurazione per gli utenti

iphone in azienda Guida alla configurazione per gli utenti iphone in azienda Guida alla configurazione per gli utenti iphone è pronto per le aziende. Supporta Microsoft Exchange ActiveSync, così come servizi basati su standard, invio e ricezione di e-mail, calendari

Dettagli

Guida rapida Vodafone Internet Key K4607-Z. Progettata da Vodafone

Guida rapida Vodafone Internet Key K4607-Z. Progettata da Vodafone Guida rapida Vodafone Internet Key K4607-Z Progettata da Vodafone Benvenuti nel mondo della comunicazione in mobilità 1 Benvenuti 2 Impostazione della Vodafone Internet Key 4 Windows 7, Windows Vista,

Dettagli

Virtualizzazione con Microsoft Tecnologie e Licensing

Virtualizzazione con Microsoft Tecnologie e Licensing Microsoft Virtualizzazione con Microsoft Tecnologie e Licensing Profile Redirezione dei documenti Offline files Server Presentation Management Desktop Windows Vista Enterprise Centralized Desktop Application

Dettagli

Modulo di ricezione radio NBFP490 con telecomando master Istruzioni di montaggio, uso e manutenzione

Modulo di ricezione radio NBFP490 con telecomando master Istruzioni di montaggio, uso e manutenzione WWW.FUHR.DE Modulo di ricezione radio NBFP490 con telecomando master Istruzioni di montaggio, uso e manutenzione Le presenti istruzioni dovranno essere trasmesse dall addetto al montaggio all utente MBW24-IT/11.14-8

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

MISURARE CON INTELLIGENZA BARRIERA OPTOELETTRONICA DI MISURAZIONE LGM

MISURARE CON INTELLIGENZA BARRIERA OPTOELETTRONICA DI MISURAZIONE LGM MISURARE CON INTELLIGENZA BARRIERA OPTOELETTRONICA DI MISURAZIONE LGM Barriera optoelettronica di misurazione LGM Misurare con intelligenza - nuove dei materiali in tutti i mercati La nuova Serie LGM di

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Access point wireless Cisco Small Business serie 500

Access point wireless Cisco Small Business serie 500 Scheda tecnica Access point wireless Cisco Small Business serie 500 Connettività Wireless-N, prestazioni elevate, implementazione semplice e affidabilità di livello aziendale Caratteristiche principali

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

GUIDA DELL UTENTE IN RETE

GUIDA DELL UTENTE IN RETE GUIDA DELL UTENTE IN RETE Memorizza registro di stampa in rete Versione 0 ITA Definizione delle note Nella presente Guida dell'utente viene utilizzata la seguente icona: Le note spiegano come intervenire

Dettagli

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis 2 Intervento immediato con Bosch Intelligent Video Analysis Indipendentemente da quante telecamere il sistema utilizza, la sorveglianza

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

ATA MEDIATRIX 2102 GUIDA ALL INSTALLAZIONE

ATA MEDIATRIX 2102 GUIDA ALL INSTALLAZIONE ATA MEDIATRIX 2102 GUIDA ALL INSTALLAZIONE Mediatrix 2102 ATA Guida all installazione EUTELIAVOIP Rev1-0 pag.2 INDICE SERVIZIO EUTELIAVOIP...3 COMPONENTI PRESENTI NELLA SCATOLA DEL MEDIATRIX 2102...3 COLLEGAMENTO

Dettagli

Alb@conference GO e Web Tools

Alb@conference GO e Web Tools Alb@conference GO e Web Tools Crea riunioni virtuali sempre più efficaci Strumenti Web di Alb@conference GO Guida Utente Avanzata Alb@conference GO Per partecipare ad un audioconferenza online con Alb@conference

Dettagli

Guida al ripristino e alla risoluzione dei problemi. Creare i dischi di ripristino subito dopo l'impostazione.

Guida al ripristino e alla risoluzione dei problemi. Creare i dischi di ripristino subito dopo l'impostazione. Guida al ripristino e alla risoluzione dei problemi Creare i dischi di ripristino subito dopo l'impostazione. Indice Trovare le informazioni necessarie... 3 Ripristino e backup... 4 Cos'è il ripristino

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

CWS32-H01 Soluzione Software Professionale per Monitoraggio & Telecontrollo Web

CWS32-H01 Soluzione Software Professionale per Monitoraggio & Telecontrollo Web CWS32-H01 Soluzione Software Professionale per Monitoraggio & Telecontrollo Web Attenzione!! Rif. Rev. 2.2 www.cws32.it Questa presentazione non sostituisce il manuale operativo del prodotto, in quanto

Dettagli

Manuale d uso. Congratulazioni per aver scelto e-tab. Ti ringraziamo per la Tua fiducia e la decisione di comprare il nostro prodotto!

Manuale d uso. Congratulazioni per aver scelto e-tab. Ti ringraziamo per la Tua fiducia e la decisione di comprare il nostro prodotto! Manuale d uso Congratulazioni per aver scelto e-tab. Ti ringraziamo per la Tua fiducia e la decisione di comprare il nostro prodotto! Giacchè noi costantemente aggiorniamo e miglioriamo il Tuo e-tab, potrebbero

Dettagli

Istruzioni per l uso Guida software

Istruzioni per l uso Guida software Istruzioni per l uso Guida software Leggere subito Manuali per questa stampante...8 Preparazione per la stampa Installazione rapida...9 Conferma del metodo di connessione...11 Connessione di rete...11

Dettagli