View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

La Cubieboard 2 ( Dualcore A20)

Par X. HINAULT - Août 2013

Synthèse des caractéristiques


  • CPU : Dual Core CPU ARM Cortex-A7 (Allwinner A20) @ 1Ghz
  • RAM : 1Go
  • Supp. Masse : Mémoire NAND intégrée 4Go ou carte micro-SD (->32Go)
  • GPU : OpenGL ES2.0, OpenVG 1.1 Mali 400 Dualcore

  • Système compatible : Debian Wheezy (portage ARM)

  • Son : HDMI, out : jack, in : jack
  • vidéo : HDMI, VGA sur bornier droit

  • Réseau : Eth 10/100
  • USB : 2 ports USB + 1 port micro-USB OTG

  • Bornier : "Brut de décoffrage" en 2 connecteurs droits mâles de 2 rangées
  • GPIO : 96 E/S en 3.3V
  • Entrées Analogiques : oui x6 - à préciser
  • Sorties analogiques : ??
  • Comm. Sérielles : I2C, SPI, UART

  • Alim. : miniJack en 5V@2A conseillée


A découvrir : Pyduino

la librairie qui vous permet de programmer votre miniPC comme une carte Arduino... et bien plus encore !
Vous en avez rêvé ? www.mon-club-elec.fr l'a fait !


1.  Pour commencer

L'essentiel :

  • Description de la "bête"]] PDF
  • Matériel nécessaire pour l'installation initiale]] PDF
  • Installation / Mise à jour du système de base sur la Cubieboard2]] PDF (= obtenir une interface graphique opérationnelle)
  • Info utile : Aide au choix d'une SD-Card

Pour approfondir :

  • Les options détaillées de l'utilitaire de configuration ]] PDF
  • Découverte et prise en main du système Linux de base installé (environnement LXDE)

Cubieboard 2 et matériels :

  • Liste de périphériques USB fonctionnant "out of the box" avec la Cubieboard 2
  • Tests et trucs techniques en vrac

2.  Avant d'aller plus loin, pour ceux qui ne connaissent pas Gnu/Linux...

Notions générales sur le système Gnu/Linux

Tester / Installer un système Gnu/Linux

Utiliser un système Gnu/Linux

Et aussi : Notion de logiciels et licences libres

  • Les principes du logiciel libre
  • Les licences libres

3.  Prise en main de la Cubieboard 2

Vous avez mis à jour le système, votre Cubieboard 2 démarre sans problème et vous vous êtes familiarisé avec Gnu/Linux ? Bien, on continue...

Personnaliser le système de base

  • Manip' simples : personnaliser le système, activer l'accès distant, tester la vidéo]] PDF
  • manip' plus avancées :
    • mise en place d'un partage de fichier NFS,
    • activation et paramétrage du wifi,

Utiliser la Cubieboard 2

  • Apprendre à utiliser la Cubieboard 2 en accès distant par le réseau éthernet ou wifi]] PDF

4.  Programmer la Cubieboard 2

Programmer le Cubieboard 2 aussi facilement qu'Arduino, çà vous tente ? Suivez le guide !

Intro

  • Quel langage choisir pour programmer la Cubieboard 2 ?]] PDF
  • S'installer pour programmer la Cubieboard 2 en Python et intro au langage Python]] PDF

Programmer les broches E/S de la Cubieboard 2 en Python tout en utilisant les instructions Arduino

Pour approfondir le langage Python

Développer des interfaces graphiques sur le pcDuino


La plupart des exemples disponibles pour le pcDuino seront transposables sur la Cubieboard 2 : c'est pourquoi je les présente ici.



5.  Codes Pyduino


5.1  Programmes utilisant les fonctionnalités E/S

Utiliser un minipc pour simplement contrôler des broches E/S est quelque peu démesuré si l'on ne souhaite faire que çà... Le but de cette rubrique est de montrer que l'on pourra faire avec la librairie Pyduino ce que l'on fait avec Arduino... L'objectif final est cependant de coupler le contrôle des broches E/S avec les fonctions avancées du système (fichiers, capture d'image, synthèse vocale, etc... ) comme cela est décrit dans les sections qui suivent.
La bonne nouvelle : un code Arduino contrôlant les broches E/S sera utilisable quasiment à l'identique avec Pyduino !

S'installer

Bases

Sorties Numériques

Sorties analogiques

Entrées Numériques

Entrées analogiques

Console

Vous trouverez également dans la rubrique Arduino Initiation de nombreux programmes de test faciles à transposer.

A VENIR :
Sorties Numériques " de puissance"

  • Adaptation simple en tension et en intensité de 8 broches E/S numériques d'un mini-PC à l'aide d'un ULN2803
  • Contrôler un ruban à LEDs RGB à l'aide d'un miniPC
  • Isoler totalement une broche E/S numérique du mini-PC en sortie et le circuit contrôlé à l'aide d'un opto-coupleur
  • Contrôler un moteur CC à l'aide d'une interface de puissance
  • Contrôler 2 moteurs CC à l'aide d'une interface de puissance

5.2  Programmes utilisant les fonctionnalités système seules

La très grande force d'un miniPC : de nombreuses fonctions dites de "haut-niveau" sont immédiatement disponibles (périphériques d'entrée, fichiers, réseau, sons, vidéo, webcam, synthèse vocale, reconnaissance vocale...), le tout SANS AUCUN SHIELD supplémentaire ! C'est ce qui fait toute la différence avec Arduino et sa pile de shields nécessaires pour arriver à un résultat même pas équivalent... D'autre part, le langage Python offre plusieurs facilités de codage qui simplifie grandement les choses !
Dans cette rubrique quelques exemples d'utilisation des fonctions du système à partir d'un code Pyduino : utilisation de périphériques d'entrée, des fichiers, du réseau (serveur HTML, Javascript et même Ajax !), de la webcam, de la synthèse vocale, de la reconnaissance vocale... Histoire de prendre en main la programmation du système avec Pyduino : amusez-vous bien !

Y avez-vous pensé ?
Les codes Pyduino de cette rubrique sont exécutables sur n'importe quel mini-PC ou poste fixe tournant sous Gnu/Linux, puisqu'aucune fonction E/S n'est utilisée. Vous pouvez donc transformer votre PC en serveur graphique, le contrôler à la voix ou autre très simplement !

Périphériques d'entrée
Simple :

Multimédia :

Ligne de commande

Fichiers
Répertoires :

Texte :

Image :

Audio :

Video :

  • Capturer une vidéo avec son à partir de la webcam

Reseau
Intro :

Serveur TCP/Http :

Serveur TCP/Http/HTML:

Serveur TCP/Http/HTML + Javascript
Non graphique

  • Afficher le contenu d'un fichier dans une zone texte à partir du code Javascript *

Graphique sans librairie graphique

Avec la librairie graphique RGraph

Avec la librairie graphique Dygraphs

Serveur TCP/Http/HTML + Javascript + Ajax
Non graphique

Graphique ans librairie graphique

Avec la librairie graphique RGRaph

Avec la librairie graphique Dygraph

Voir également : Installer des librairies Javascript locales

Mail:


5.3  Programmes utilisant les fonctionnalités système et E/S couplées

Nous voilà au coeur du sujet : coupler ensemble les fonctions du système (fichier, réseau, son, voix, ...) et les broches E/S (capteurs, dispositifs, etc...) ! Les possibilités deviennent alors très très intéressantes et n'ont pour limite que l'imagination, LE TOUT AVEC UNE SEULE ET MEME CARTE, sans shield supplémentaire nécessaire !
Il devient alors possible, soit de déclencher des fonctions systèmes à partir d'un évènement sur une broche E/S ( par exemple : capturer une image par appui sur un bouton poussoir), ou de contrôler les broches E/S à partir des fonctions système (par exemple : contrôler les broches numériques en sortie à la voix !)...
Ma librairie Pyduino vous simplifie la vie pour faire tout çà : à vous de jouer !

Y avez-vous pensé ?
Il est possible d'exécuter simultanément plusieurs codes Pyduino sur votre miniPC : la même carte pourra donc simultanément être un serveur TCP opérationnel avec un premier code tout en contrôlant localement les broches E/S avec un second code et tout en permettant l'édition simultanée d'un nouveau code ! Impossible à réaliser avec Arduino et un shield Ethernet par exemple... Au final, un miniPC avec Pyduino peut potentiellement jouer le rôle de plusieurs ensembles "cartes Arduino + shields", et en tout cas vous permet simultanément d'exécuter un ou plusieurs codes opérationnels tout en continuant à développer !

==== Broches E/S ====

Sorties numériques
Simples

Multimédia

Entrées numériques
Système

Fichier

Réseau

Audio

Voix

Image

Video

Entrées analogiques
Voix :

Fichier :

Reseau :

Reseau : HTML + Javascript

Reseau : HTML + Javascript + Ajax

Sorties analogiques

==== Système ====

Périphériques d'entrée USB
Numpad :

GPS :

  • Afficher la position du lieu

Souris :

  • Détecter appui sur bouton souris

Joystick :

  • Détecter position et appui sur bouton de Joystick

Ligne de commande

Fichiers
Texte :

Image :

Audio :

  • Enregistrer un fichier son lors appui sur un bouton poussoir

Video :

  • Enregistrer un fichier vidéo avec son lors appui sur un bouton poussoir

Reseau
Intro :

Serveur TCP/Http :

Serveur TCP/Http/HTML:

Serveur TCP/Http/HTML + Javascript

Serveur TCP/Http/HTML + Javascript + Ajax
Sans librairie Graphique

Avec librairie RGraph

Avec librairie Dygraphs

Mail:

==== Multimédia ====

Audio
En sortie :

En entrée :

  • Enregistrer un fichier son lors appui sur un bouton poussoir

Voix
Synthèse vocale :

Reconnaissance vocale :

Image

Vidéo
En sortie :

En entrée :

  • Enregistrer un fichier vidéo avec son lors appui sur un bouton poussoir

6.  Codes Pyduino + PyQt (interface graphique)

Sur un miniPC embarqué auquel on accède par accès distant VNC, l'utilisation de l'environnement graphique Processing pour créer des interfaces montre vite ses limites, aussi bien en ce qui concerne les ressources utilisées (lancer un programme Java met la CPU à 100% pendant plusieurs secondes...) que des possibilités graphiques elle-même (avec Processing, l'aspect des GUI est basique...) . Or il est indispensable de pouvoir exécuter des interfaces graphiques fluides et rapides pour contrôler le miniPC à partir d'une tablette tactile ou d'un poste fixe. Une solution élégante et relativement simple passe par l'utilisation du logiciel QtDesigner pour créer des interfaces graphiques utilisant la librairie Qt et programmables en Python, avec PyQt. Suivez le guide !


6.1  Programmes utilisant les fonctionnalités E/S seules à partir d'une interface graphique PyQt

Dans cette rubrique, apprenez à créer des interfaces graphiques pour contrôler et interagir avec les broches E/S : une fois l'interface graphique lancée, vous pourrez simplement l'afficher sur un écran HDMI de votre choix, mais surtout, vous pourrez contrôler le pcduino à partir d'un poste fixe ou d'une tablette tactile par accès distant via le réseau ethernet filaire ou wifi !

S'installer

Sorties numériques

Entrées numériques

Entrées analogiques
Affichages numériques

Affichages analogiques

Affichages sous forme de courbe
Monovoie :

Multivoies :

  • Oscilloscope basse fréquence 6 voies sur 1 graphique
  • Oscilloscope basse fréquence 6 voies sur 1 graphique avec widget de sélection des courbes à afficher
  • Oscilloscope basse fréquence 6 voies sur 6 graphiques

A savoir : toutes les interfaces graphiques affichant les courbes proposées ici, basées sur la librairie pyqtgraph, permettent le zoom sur le graphique, l'export par simple clic droit, au format vectoriel *.svg, image *.png, data texte *.csv et même le copier/coller dans le presse-papier ! Une réutilisation maximale des graphiques obtenus est ainsi possible.

Sorties analogiques


6.2  Programmes utilisant les fonctionnalités système seules à partir d'une interface graphique PyQt

Voir les rubriques PyQt du site :

Tutos Python+Qt (PyQt)

Grâce aux nombreux tutos détaillés proposés (légèrement payants), apprenez à créer de vraies petites interfaces graphiques opérationnelles. De l'utilisation d'un simple bouton à l'utilisation d'un graphique scientifique avancé ou bien l'utilisation de la reconnaissance visuelle ou encore la création d'un terminal série ou réseau, découvrez à votre rythme les étonnantes et très nombreuse possibilités de PyQt.

Le PyQt Lab'

Je rassemble dans cette rubrique la plupart des codes Python + Qt que j'ai écrit sous forme "as is", bruts de décoffrage. C'est un peu ma "boite à codes" PyQt où je rassemble tests, idées et tout ce qui me passe par la tête, en vrac. Les codes les plus pertinents sont détaillés et repris dans la rubrique Ateliers Python + Qt et les codes d'interfaces opérationnelles utilisables en pratique sont disponibles dans la rubrique PyQt Apps.

Quelques Programmes essentiels


Périphériques d'entrée

  • Clavier numérique graphique (utilisable avec un tablette graphique...)

Systeme

  • ...

Fichiers

  • Visualisateur fichier de données sous forme de courbe avec timeline

Reseau

  • ...

Audio/Voix

  • Interface de test de la synthèse vocale

Image

  • Capturer une image par clic sur un bouton graphique (appareil photo)
  • Détection de visage avec la librairie OpenCV

6.3  Programmes utilisant les fonctionnalités système et E/S couplées depuis une interface graphique PyQt

S'installer

Sorties numériques

  • Interface de contrôle à 5 boutons pour contrôle d'un robot mobile avec retour vidéo

Entrées numériques

  • ...

Entrées analogiques

  • Serveur graphique de données analogiques

Sorties analogiques

  • ...

Périphériques d'entrée

  • Utiliser un keypad en tant que télécommande
  • Allumer des LEDs à l'aide d'un Joystick
  • Application "pompe à essence"

Systeme

Fichiers

  • ..

Reseau

  • Contrôler les broches E/S à partir d'une interface web javascript + Ajax
  • Serveur graphique de données analogiques

Audio/Voix

  • ..

Image

  • Capturer une image webcam et la visualiser par appui sur un bouton poussoir
  • Application photomaton

7.  Exemples d'utilisation de la Cubieboard 2 seule (hors-programmation)

7.1  Réseau

  • Le pcDuino en serveur web

7.2  Vidéo

  • Vidéo-surveillance avec le pcDuino
  • Streaming vidéo avec le pcDuino (webcam IP)

7.3  Audio

  • Lecture de fichier son
  • Synthèse vocale

7.4  Fichiers

  • Copier/coller des fichiers vers et depuis le pcDuino, sans fil.

8.  Applications complètes basées sur le RaspberryPi

A venir :

  • Traqueur solaire temps réel avec visualisation 3D de la position courante du soleil sur l'Horizon et calage automatique par GPS

9.  Procédures diverses utiles

...

CUBIEBOARDPythonModele?