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