IHM pour interagir entre un ordinateur et une carte Micro:bit

Ci-dessous vous trouverez les scripts à transférer sur votre carte Micro:bit et à exécuter sur votre PC à l'aide de Mu.

Ouvrir Mu, passer le en mode Micro:bit, copier/coller le code correspondant ci-dessous, enregistrer puis flashez (transférer le script sur) votre carte Micro:bit.

Ensuite, vous pouvez utiliser votre éditeur Python favori ou encore Mu en mode Python3.

Codes python du projet

Script à transférer vers la carte micro:bit :

Attention

Dans cette partie, on utilise Mu en mode micro:bit.

1
from microbit import *
2
3
uart.init(baudrate=115200)
4
5
display.scroll('Pret')
6
7
while True:
8
    #print(temperature())
9
    if uart.any():
10
        #display.scroll('Recu')
11
        msg_bytes = uart.read()
12
        if msg_bytes == b'temperature':
13
            temp = temperature()
14
            print(temp)
15
            display.scroll(temp)
16
        else:
17
            if msg_bytes == b'11':
18
                display.set_pixel(1, 1, 9)
19
            else:
20
                msg_str = str(msg_bytes, 'UTF-8')
21
                display.scroll(msg_str)
22
    sleep(1000)

Script à exécuter sur le PC :

Attention

Dans cette partie, on utilise Mu en mode Python.

1
# coding: utf-8
2
import serial, time
3
4
import tkinter as tk
5
6
port = "COM3"
7
baud = 115200
8
s = serial.Serial(port)
9
s.baudrate = baud
10
11
12
def demande_temperature():
13
    s.write(b'temperature')
14
    data = s.readline()
15
    data = int(data[0:4])
16
    print(data)
17
    texte_temperature.set("Température : "+str(data))
18
   
19
def envoie_message():
20
    message_bytes = bytes(texte_message.get(), 'utf-8')
21
    s.write(message_bytes)
22
   
23
def quitter():
24
    s.close()
25
    ma_fenetre.destroy()
26
27
   
28
 
29
# Fenêtre principale
30
ma_fenetre = tk.Tk()
31
 
32
ma_fenetre.title("Titre de la fenetre")
33
ma_fenetre.geometry("300x200")
34
 
35
# Création d'un bouton pour recuperer la temperature
36
button_temperature = tk.Button(ma_fenetre, text="Temperature", command=demande_temperature)
37
button_temperature.grid(row=1, column=0, padx=5, pady=5)
38
39
# Creation d'un label pour afficher la temperature
40
texte_temperature = tk.StringVar()
41
texte_temperature.set("Température : ")
42
label_temperature = tk.Label(ma_fenetre, textvariable=texte_temperature , bg="grey")
43
label_temperature.grid(row=1, column=1, padx=5, pady=5)
44
45
# Création d'un bouton pour envoyer un message
46
button_message = tk.Button(ma_fenetre, text ="Envoyer", command=envoie_message)
47
button_message.grid(row=2, column=1, padx=5, pady=50)
48
49
# Création d'un champ de saisie d'un message
50
texte_message = tk.StringVar()
51
texte_message.set('coucou')
52
champ_message = tk.Entry(ma_fenetre, textvariable=texte_message, bg="bisque", fg="maroon", width="20")
53
champ_message.focus_set()
54
champ_message.grid(row=2, column=0, padx=5, pady=5)
55
56
# Création d'un bouton Quitter
57
button_quitter = tk.Button(ma_fenetre, text="Quitter", command=quitter)
58
button_quitter.grid(row=3,column=0, padx=5, pady=5)
59
 
60
ma_fenetre.mainloop()