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
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
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

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
- Données générées :
- Tableau Numpy :
- Fichier de données texte :
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:
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 !

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
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
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?