[Diaoye apprend la programmation] Module os intégré au manuel MicroPython : fonctions qui interagissent avec le système d'exploitation

Insérer la description de l'image ici

MicroPython est une version allégée de l'interpréteur conçue pour exécuter le langage de programmation Python 3 dans les systèmes embarqués. Comparé au Python classique, l'interpréteur MicroPython est petit (seulement environ 100 Ko) et est compilé dans un fichier exécutable binaire à exécuter, ce qui entraîne une efficacité d'exécution plus élevée. Il utilise un mécanisme léger de récupération de place et supprime la plupart de la bibliothèque standard Python pour s'adapter aux microcontrôleurs aux ressources limitées.

Les principales fonctionnalités de MicroPython incluent :
1. La syntaxe et les fonctions sont compatibles avec le Python standard, ce qui le rend facile à apprendre et à utiliser. Prend en charge la plupart de la syntaxe de base de Python.
2. Accédez et contrôlez directement le matériel, contrôlez GPIO, I2C, SPI, etc. comme Arduino.
3. Système de modules puissant, fournissant un système de fichiers, un réseau, une interface graphique et d'autres fonctions.
4. Prise en charge de la compilation croisée pour générer du code natif efficace, 10 à 100 fois plus rapide que l'interpréteur.
5. La quantité de code est faible et l'utilisation de la mémoire est faible. Il convient pour fonctionner sur des MCU et des cartes de développement avec une petite mémoire.
6. Licence Open source, utilisation gratuite. L'environnement interactif Shell offre une commodité pour le développement et les tests.
7. Le pilote d'E/S intégré prend en charge un grand nombre de plates-formes de microcontrôleurs, telles que ESP8266, ESP32, STM32, micro:bit, carte de contrôle et PyBoard, etc. Il y a une communauté active.

Les scénarios d'application MicroPython incluent :
1. Créez rapidement des prototypes et des interactions utilisateur pour les produits intégrés.
2. Réalisez quelques petits projets de matériel programmable.
3. En tant qu'outil pédagogique, il aide les débutants à apprendre la programmation Python et IoT.
4. Créez un micrologiciel d'appareil intelligent pour obtenir un contrôle avancé et une connectivité cloud.
5. Diverses applications de microcontrôleurs telles que l'Internet des objets, l'intelligence embarquée, les robots, etc.

Points à noter lors de l'utilisation de MicroPython :
1. La mémoire et l'espace Flash sont limités.
2. L'efficacité de l'explication et de l'exécution n'est pas aussi bonne que celle du langage C.
3. Certaines fonctions de la bibliothèque sont différentes de la version standard.
4. Optimisez la syntaxe de la plateforme et corrigez les différences avec le Python standard.
5. Utilisez les ressources mémoire de manière rationnelle et évitez d'allouer fréquemment de gros blocs de mémoire.
6. Utilisez du code natif pour améliorer les performances des pièces critiques en termes de vitesse.
7. Utilisez l'abstraction de manière appropriée pour encapsuler les opérations matérielles sous-jacentes.

D'une manière générale, MicroPython introduit Python dans le domaine des microcontrôleurs, ce qui constitue une innovation importante qui non seulement abaisse le seuil de programmation, mais offre également de bonnes capacités de contrôle matériel. Il est très approprié pour le développement de divers types d'Internet des objets et de matériel intelligent.

Insérer la description de l'image ici
Le module os intégré de MicroPython est un module utilisé pour fournir des services de base du « système d'exploitation ». Il peut être utilisé pour accéder et faire fonctionner les systèmes de fichiers, les terminaux, la mémoire, les fonctions de réinitialisation et de réveil. Ses principales caractéristiques sont :

1. Il peut utiliser chdir(), getcwd(), ilistdir(), listdir(), mkdir(), remove(), rmdir(), rename(), stat(), statvfs() et d'autres méthodes pour exécuter des fichiers. accès au système et opérations.
2. Il peut utiliser la méthode dupterm() pour copier ou changer de terminaux MicroPython (REPL) sur des objets de type flux.
3. Il peut utiliser les méthodes mount() et umount() pour monter ou démonter différents types de systèmes de fichiers dans le système de fichiers virtuel, tels que FAT, littlefs, etc.
4. Il peut utiliser reset(), soft_reset(), bootloader(), reset_cause(), wake_reason() et d'autres méthodes pour réinitialiser ou réveiller l'appareil, ou obtenir la raison de la réinitialisation ou du réveil.
5. Il peut utiliser les méthodes uname() et urandom() pour obtenir des informations sur la machine et le système d'exploitation sous-jacents, ou pour générer des octets aléatoires.
6. Il peut utiliser Disable_irq(), Enable_irq() et d'autres méthodes pour désactiver ou activer les demandes d'interruption.
7. Il peut utiliser freq(), ralenti(), sommeil(), lumièresleep(), deepsleep() et d'autres méthodes pour ajuster ou interroger la fréquence du processeur, ou mettre l'appareil en mode faible consommation.
8. Il peut utiliser mem8, mem16, mem32 et d'autres objets pour lire et écrire des octets en mémoire.

Les scénarios d'application du module os sont :

1. Utilisé pour gérer et optimiser les ressources et les performances de l'appareil, telles que la mémoire, l'alimentation, les interruptions, etc.
2. Utilisé pour obtenir certaines fonctions ou effets spécifiques, tels que des lumières clignotantes, la lecture de musique, l'affichage de graphiques, la lecture et l'écriture de cartes SD, etc.
3. Utilisé pour apprendre ou enseigner certaines connaissances ou compétences liées au matériel, telles que les circuits numériques, les circuits analogiques, le traitement du signal, les systèmes embarqués, etc.

Les précautions pour le module OS sont :

1. Le module os implémente un sous-ensemble du module CPython correspondant1 et fournit dans quelques cas des extensions spécifiques à MicroPython234, il n'est donc pas entièrement compatible avec les fonctionnalités et les performances de CPython.
2. Le module OS dépend des fonctionnalités matérielles et des ressources d'une carte spécifique. Différentes cartes MicroPython peuvent avoir différentes fonctions disponibles et plages de paramètres. Vous devez vérifier les documents spécifiques pour déterminer les fonctions prises en charge et les méthodes d'utilisation.
3. Le module OS fournit un accès et un contrôle directs et sans restriction au matériel. Une utilisation inappropriée peut entraîner une panne de l'appareil, un blocage, un crash et, dans des cas extrêmes, des dommages matériels. Soyez prudent et suivez les réglementations et directives en vigueur.

Voici plusieurs exemples d'applications pratiques du module d'exploitation intégré de MicroPython :

Cas 1 : utilisez la méthode os.uname() pour obtenir des informations sur le périphérique

# 导入os模块
import os

# 调用os.uname()方法,并返回一个命名元组
info = os.uname()

# 打印元组中的各个字段
print('sysname:', info.sysname) # 底层系统名称
print('nodename:', info.nodename) # 网络名称
print('release:', info.release) # 底层系统版本
print('version:', info.version) # MicroPython版本和构建日期
print('machine:', info.machine) # 底层硬件标识符

Cas 2 : utilisez la méthode os.listdir() pour lister les fichiers dans le répertoire actuel

# 导入os模块
import os

# 调用os.listdir()方法,并返回一个列表
files = os.listdir()

# 遍历列表中的每个元素
for f in files:
    # 打印文件名
    print(f)

Cas 3 : Montez le système de fichiers FAT à l'aide de la méthode os.mount()

# 导入os模块
import os

# 导入pyb模块,用于访问板载SD卡
import pyb

# 创建一个SD卡对象,连接到SPI总线
sd = pyb.SDCard()

# 调用os.mount()方法,将SD卡对象挂载到'/sd'目录下,并指定为只读模式
os.mount(sd, '/sd', readonly=True)

# 打印当前的文件系统配置信息
print(os.listdir('/'))

Cas 4 : Répertorier les fichiers et dossiers dans un répertoire :

import os

# 获取当前目录列表
file_list = os.listdir()

# 遍历并打印文件和文件夹
for item in file_list:
    print(item)

Dans cet exemple, nous utilisons la fonction listdir() du module os pour obtenir une liste des fichiers et dossiers du répertoire courant. Nous utilisons ensuite une boucle pour parcourir la liste et imprimer le nom de chaque fichier et dossier.

Cas 5 : Créez un nouveau dossier :

import os

# 创建新的文件夹
os.mkdir("new_folder")

Dans cet exemple, nous utilisons la fonction mkdir() du module os pour créer un nouveau dossier nommé new_folder. Cette fonction créera un nouveau sous-dossier dans le répertoire courant.

Cas 6 : Supprimer des fichiers ou des dossiers :

import os

# 删除文件
os.remove("file.txt")

# 删除文件夹
os.rmdir("folder")

Dans cet exemple, nous utilisons la fonction remove() du module os pour supprimer un fichier nommé file.txt. Cette fonction supprimera le fichier spécifié du système de fichiers. Ensuite, nous utilisons la fonction rmdir() pour supprimer le dossier nommé dossier. Cette fonction supprimera le dossier spécifié et tous les fichiers et dossiers qu'il contient.

Cas 7 : Opération sur les fichiers

import os

# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)

# 列出目录中的文件
files = os.listdir(current_dir)
print("目录中的文件:", files)

# 创建新目录
new_dir = "data"
os.mkdir(new_dir)
print("创建新目录:", new_dir)

# 删除目录
os.rmdir(new_dir)
print("删除目录:", new_dir)

Dans cet exemple, nous avons importé le module os et l'avons utilisé pour effectuer des opérations sur les fichiers. Tout d’abord, nous utilisons la fonction getcwd() pour obtenir le répertoire de travail actuel et l’imprimer. Ensuite, nous utilisons la fonction listdir() pour lister les fichiers dans le répertoire de travail actuel et imprimer les résultats. Ensuite, nous utilisons la fonction mkdir() pour créer un nouveau répertoire et imprimer le nom du répertoire créé. Enfin, nous utilisons la fonction rmdir() pour supprimer le répertoire nouvellement créé et imprimer le nom du répertoire supprimé. Cet exemple montre comment utiliser le module os pour effectuer des opérations de base sur les fichiers.

Cas 8 : exécution de commandes système

import os

# 执行系统命令
result = os.system("ls -l")
print("系统命令执行结果:", result)

Dans cet exemple, nous avons importé le module os et l'avons utilisé pour exécuter des commandes système. Nous utilisons la fonction system() pour exécuter une simple commande système "ls -l", qui est utilisée pour répertorier les informations détaillées sur les fichiers du répertoire actuel. La fonction system() renverra le résultat de l’exécution de la commande. Nous imprimons le résultat. Cet exemple montre comment utiliser le module os pour exécuter des commandes système.

Cas 9 : Opération sur le chemin du fichier

import os

# 拼接文件路径
path = os.path.join("dir", "file.txt")
print("拼接后的文件路径:", path)

# 提取文件名和扩展名
filename = os.path.basename(path)
extension = os.path.splitext(filename)[1]
print("文件名:", filename)
print("扩展名:", extension)

Dans cet exemple, nous avons importé le module os et l'avons utilisé pour effectuer des opérations sur le chemin du fichier. Nous utilisons la fonction join() pour concaténer le nom du répertoire et le nom du fichier en un chemin de fichier complet et imprimer le résultat. Ensuite, nous utilisons la fonction basename() pour extraire le nom de fichier du chemin du fichier et la fonction splitext() pour extraire l'extension du nom de fichier. Enfin, nous imprimons respectivement le nom et l'extension du fichier. Cet exemple montre comment utiliser le module os pour les opérations sur le chemin de fichier.

Ces exemples montrent des applications pratiques de l'utilisation du module os dans MicroPython. Le module os fournit des fonctions pour interagir avec le système d'exploitation, telles que les opérations sur les fichiers, l'exécution de commandes système, les opérations sur le chemin des fichiers, etc. En utilisant le module os, vous pouvez effectuer des opérations liées au système d'exploitation dans MicroPython.

Insérer la description de l'image ici

Guess you like

Origin blog.csdn.net/weixin_41659040/article/details/132775749