Corso programmazione GNU/Linux Embedded - HCE Engineering S.r.l.
Soluzioni Embedded Industriali

Corso programmazione GNU/Linux Embedded

Partecipa al corso di programmazione GNU/Linux Embedded e impara a programmare con esempi e prove con periferiche vere su CPU ARM SAMA5Dx, AM33xx e IMX6/7!

Mediante questo corso imparerete diverse tecniche di prototipazione rapida utilizzando come base un sistema embedded GNU/Linux e Sistema Operativo Debian con esempi di utilizzo di periferiche hardware per applicazioni professionali.

Perfetto per quelle aziende che vogliono passare da sistemi a microcontrollore a sistemi con maggiore potenza, flessibilità e connettività!

Scopo del corso

Il corso si rivolge a Ingegneri, programmatori e tecnici che vogliano approfondire la loro conoscenza del sistema GNU/Linux per quanto riguarda la possibilità di utilizzarlo in sistemi embedded (e non) per il controllo automatico, il monitoraggio remoto e, in generale, la gestione di sistemi industriali, domotici, biomedicali, ecc. dove c’è una interazione del sistema con l’ambiente circostante.

Il corso è da considerarsi di livello medio-avanzato ed è richiesto da parte dei partecipanti una minima infarinatura di programmazione C, Bash, PHP e Python e di gestione di un sistema operativo dalla linea di comando (in ogni caso durante le lezioni verranno spiegati tutti i comandi e i tool utilizzati).

I sistemi embedded utilizzati durante il corso saranno:

  • BeagleBone Black (basata sulla CPU AM3358),
  • SAMA5D3 Xplained (basata sulla CPU SAMA5D3) e
  • WandBoard (basata sulla CPU IMX6).

Descrizione

Dopo una prima parte introduttiva, nella quale verrà illustrato come installare un sistema di sviluppo (host) su PC e il come collegarlo al sistema embedded (target) via console seriale, si passerà ad una carrellata di richiamo ai principali comandi di un sistema UNIX che possono essere utilizzati per realizzare i nostri prototipi o per testarne il funzionamento. Si passerà poi ad un excursus sul compilatore e il cross-compilatore, cosa sono i device driver e come usare i linguaggi di scripting e i demoni di sistema per gestire le sue periferiche. Alla fine si completerà la panoramica dei sistemi operativi per embedded Linux con una introduzione a Yocto e OpenWRT.

La seconda parte tratterà da vicino i diversi tipi di periferiche più utilizzati nei sistemi industriali, domotici e di monitoraggio e controllo remoto: GPIO, DAC/ADC/PWM, porte seriali, dispositivi I2C, SPI, dispositivi USB fino ai dispositivi di rete Ethernet, wireless e CAN per chiudere poi con i dispositivi multimediali.

Alla fine, per chiudere il quadro dei dispositivi utilizzabili, verranno presentati una serie di altri dispositivi (chiamati Misc) che coprono una serie di attività di acquisizione dati e comunicazione con dispositivi remoti. Si parlerà di lettori RFID e smartcard, di sistemi di comunicazione GSM/GPRS e Z-Wave.

Materiale fornito

Ad ogni discente verrà regalato un kit di studio col quale potrà provare direttamente gli argomenti trattati a lezione. Il kit prevede:

  • Una BeagleBone Black.
  • Una macchina virtuale di sviluppo pre-installata e pronta all’uso (Virtualbox).
  • Una serie di periferiche OEM con cavi, connettori e breadboard per la realizzazione dei circuiti di test del software.
  • Un libro GNU/Linux Rapid Embedded Programming sul quale il corso è basato.

Luogo, tempi e costi

Il corso si svolgerà presso l’Hotel Parma & Congressi di Parma e avrà la durata di 3 giorni (da martedì 14 a giovedì 16 novembre 2017). Si farà lezione dalle 9:30 alle 18:00 con due pause caffè da 20 minuti e una pausa pranzo di 60 minuti.

Il costo del corso è di 1.800€ a persona (con possibili sconti per prenotazioni multiple) e comprende:

  • Tre giorni di lezione teorico/pratica.
  • Un kit studio.
  • Pranzo e 2 coffee break.
  • Possibilità di speciale convenzione per il pernottamento e cena nella struttura al prezzo speciale di 85€/notte (informazioni e dettagli alla prenotazione).

Per iscriversi basta effettuare la pre-iscrizione entro il giorno 01/10/2017 inviando una richiesta on-line ovvero via telefono al numero 0586 219399.

Per prenotazioni effettuate e confermate prima del 01/08/2017!

Nessun pagamento è dovuto al momento della compilazione on-line. Entro fine settembre tutti coloro che hanno effettuato la pre-iscrizione verranno contattati per la conferma o meno dell’iscrizione e quindi per decidere l’avvio del corso che avverrà se verrà raggiunto il numero minimo di 8 partecipanti.

Tutti i prezzi si intendono IVA esclusa.

Ogni partecipante, per poter partecipare alle sessioni pratiche dovrà portare il proprio computer sul quale dovrà essere precedentemente installato e correttamente configurato il sistema Virtualbox con la macchina virtuale di sviluppo. Tutte le informazioni necessarie verranno fornite prima del corso.

Dettaglio del programma

Il corso è diviso in 3 parti: la prima è una parte introduttiva e di messa a punto del sistema di sviluppo, la seconda che illustra le periferiche più comuni mentre la terza che introduce quelle più complesse e/o più focalizzate in un particolare settore.

Il corso prevede una parte di teoria da tenersi la mattina e quindi, nel pomeriggio, una parte più pratica.

Introduzione sul sistema di sviluppo: host & target

  • Installazione del sistema di sviluppo
    • I termini del mondo embedded
    • Introduzione dei sistemi di sviluppo
    • Setup iniziale: bootloader, kernel, root filesystem e console seriale
  • Cenni sulla gestione della Console Seriale
    • Gestione di base del SO
    • Gestione dei pacchetti Debian
    • Introduzione al bootloader (u-boot)
  • Cenni sul Compilatore C, i Device Driver & tecniche di sviluppo
    • Introduzione al compilatore & cross-compilatore
    • Il kernel e i file DTS
    • Cos’è un device driver?
    • Il root filesystem
    • Il Network File System
    • Usare un emulatore
  • Cenni sulla programmazione veloce con script & demoni di sistema
    • Impostare il sistema di base
    • I Demoni di sistema
    • I linguaggi di scripting
    • Scrivere un demone personalizzato
  • Impostare un sistema embedded
    • I dispositivi MTD e i dischi
    • Introduzione a OpenWRT
    • Introduzione a Yocto

Periferiche di base

Segnali General Purposes Input Output – GPIO

    • Cos’è un GPIO?
    • Accedere ad una linea GPIO
    • Cenni sull’uso dei GPIO con i linguaggi di scripting
    • Cenni sulla gestione dei GPIO dal kernel
  • Porte seriali e dispositivi TTY – TTY
    • Cosa sono i dispositivi TTY e UART?
    • Le diverse implementazioni
    • Le porte seriali in Linux
    • I parametri di comunicazione
    • Accedere ai dispositivi TTY
    • Usare i dispositivi TTY con i linguaggi di scripting
    • Cenni sulla gestione dei dispositivi TTY nel kernel
  • Universal Serial Bus – USB
    • Cosa è l’Universal Serial Bus?
    • L’USB in Linux
    • L’accesso raw al bus USB
  • Inter Integrated Circuits – I2C
    • Cos’è l’Inter Integrated Circuits?
    • l’I2C in Linux
    • I tool I2C
    • Accedere ai dispositivi I2C
    • L’accesso raw al bus I2C
  • Serial Peripheral Interface – SPI
    • Cos’è il Serial Peripheral Interface?
    • Lo SPI in Linux
    • I tool SPI
    • Accedere ai dispositivi SPI
    • L’acesso raw al bus SPI
  • 1-Wire Bus – W1
    • Cos’è il 1-Wire?
    • Il 1-Wire in Linux
    • Accedere ai dispositivi 1-Wire
  • Dispositivi analogici – ADC/DAC/PWM
    • Cosa sono gli ADC/DAC/PWM?
    • Gli ADC/DAC/PWM in Linux
    • Accedere ai dispositivi ADC/DAC/PWM

Periferiche avanzate

  • Cenni sui dispositivi Ethernet – ETH
    • Cos’è un dispositivo Ethernet?
    • I dispositivi Ethernet in Linuxgestione di sistemi industriali, domotici, biomedicali, ecc. dove c’è una interazione del sistema con l’ambiente circostante
    • I net-tools
    • Comunicare con un dispositivo remoto
    • L’accesso raw al bus Ethernet
    • Introduzione al bridging Ethernet
  • Cenni sui dispositivi WiFi – WLAN
    • Cos’è un Wireless Network device?
    • I dispositivi wireless in Linux
    • I wireless-tools
    • Il WPA Supplicant
  • Controller Area Network – CAN
    • Cos’è il CAN bus?
    • Il CAN bus in Linux
    • I can-tools
    • Scambiare dati via CAN bus
  • Cenni sui Multimedia Devices – SND/VIDEO
    • Cos’è un dispositivo multimedia?
    • I dispositivi multimedia in Linux
    • Gestire un dispositivo audio e video
    • Gli alsa tools
    • Gestire un dispositivo multimediale con i tool video4linux
  • Periferiche Misc
    • Cenni sull’uso di un lettore RFID
    • Cenni sull’uso di un lettore smartcard
    • Cenni sull’uso di un GSM/GPRS
    • Cenni all’accesso dei dispositivi Z-Wave
Facebooktwitterlinkedinmail

Progetto Cosino

Tutti i moduli CPU del Progetto Cosino, le schede carrier e le periferiche sono costruite per ambiente industriale e nascono per aiutare gli sviluppatori a ridurre il time-to-market per tutte le loro idee!

Nuvola dei Tag

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close