【Unboxing and review】--- Tinybit Pro AI Robot Car

【Déballage et test】--- Voiture robot Tinybit Pro AI

0 commentaires

Plateforme de voiture robotisée Yahboom Tiny:bit Pro micro:bit AI Vision

J'ai essayé d'utiliser une voiture robotique "Tiny:bit Pro" qui étend micro:bit fourni par Yahboom.

La liste d'emballage comprend : boîte d'emballage, manuel d'instructions, carte d'extension de voiture (avec moteur et support de montage), pneus, télécommande infrarouge, batterie rechargeable, carte de suivi, carte TF + lecteur de carte.

! ! !Remarque : si vous achetez avec la carte Microbit, votre colis comprendra la carte Micro:bit. Si vous achetez sans Micro:bit, vous devez préparer BBC Micro:bit vous-même.

Tiny:bit Pro propose deux options : kit standard / kit d'extension

Assemblée

1.Retirez les vis M3*6 mm du module K210. Et installez le support de fixation à vis M3*6 mm sur le module K210.

2. Installer la roue universelle

3. Installer Trie

4. Installer le module K210 sur la voiture Tinybit

5. Insérer la carte Microbit

Achèvement Quelque chose de mignon et de drôle ! Aimez-vous ce « mec » ?

Spécification

Avant : ultrasons, capteur sonore, projecteur haute luminosité, récepteur de télécommande infrarouge, lumières RVB colorées programmables, interface pince crocodile, interface de port série PH2.0-4PIN.

Arrière : Capteur de suivi, buzzer, prise moteur, commutateur de port série .

Ajout du bloc Tiny:bit Pro pour MakeCode

Puisqu'il s'agit d'une voiture robot qui étend Micro:bit, elle peut bloquer le codage avec MakeCode.

Comment ajouter un bloc Tiny:bit Pro

  • Le bloc Tiny:bit est ajouté.

Divers exemples de codes de base pour Tinybit Pro sont téléchargés ci-dessous.

Éclairage par échange de lumière RVB : https://makecode.microbit.org/_EL3LmqJTwKKT

Contrôle de la vitesse de déplacement de la voiture : https://makecode.microbit.org/_9oJaEzErWisY

Éviter les ultrasons avec la lumière et le son : https://makecode.microbit.org/_P7WYcMXvUTqt

Contrôle vocal de la lumière : https://makecode.microbit.org/_KDDPHmJcaRut

Toupie : https://makecode.microbit.org/_Wv0dPq5K8bFV

Divers exemples de codes de vidéo AI pour Tinybit Pro sont téléchargés ci-dessous.

Reconnaissance des couleurs - Code de voiture Microbit : https://makecode.microbit.org/_1p84eJ9VxUkK

Code du module de reconnaissance des couleurs -K210 :

importer un capteur, une image, une heure, un écran LCD

à partir des modules importer ybserial
heure d'importation

série = ybserial()
LCD.init()
capteur.reset()
capteur.set_pixformat(capteur.RGB565)
capteur.set_framesize(capteur.QVGA)
capteur.skip_frames(temps = 100)
capteur.set_auto_gain(Faux)
capteur.set_auto_whitebal(Faux)
horloge = heure.horloge()

print("Tenez l'objet que vous souhaitez suivre devant la caméra dans la boîte.")
print("ASSUREZ-VOUS QUE LA COULEUR DE L'OBJET QUE VOUS SOUHAITEZ SUIVRE EST ENTIÈREMENT ENCLAVÉE PAR LA BOÎTE !")

# Capturez les seuils de couleur pour tout ce qui se trouvait au centre de l'image.
# 50x50 centre du QVGA.
r = [(320//2)-(50//2), (240//2)-(50//2), 50, 50]
pour i dans la plage (50) :
img = capteur.snapshot()
img.draw_rectangle(r)
écran LCD (img)

print("Seuils d'apprentissage...")
seuil = [50, 50, 0, 0, 0, 0] # Valeurs moyennes L, A, B.

pour i dans la plage (50) :
img = capteur.snapshot()
hist = img.get_histogram(roi=r)
lo = hist.get_percentile(0.01) # Obtenez le CDF de l'histogramme dans la plage de 1 % (AJUSTEZ SI NÉCESSAIRE) !
hi = hist.get_percentile(0.99) # Obtenez le CDF de l'histogramme dans la plage de 99 % (AJUSTEZ SI NÉCESSAIRE) !
# Moyenne en valeurs de centiles.
seuil[0] = (seuil[0] + lo.l_value()) // 2
seuil[1] = (seuil[1] + hi.l_value()) // 2
seuil[2] = (seuil[2] + lo.a_value()) // 2
seuil[3] = (seuil[3] + hi.a_value()) // 2
seuil[4] = (seuil[4] + lo.b_value()) // 2
seuil[5] = (seuil[5] + hi.b_value()) // 2
pour blob dans img.find_blobs([seuil], pixels_threshold=100, area_threshold=100, merge=True, margin=10) :
img.draw_rectangle(blob.rect())
img.draw_cross(blob.cx(), blob.cy())
img.draw_rectangle(r, couleur=(0,255,0))
écran LCD (img)

print("Seuils appris...")
print("Démarrer la reconnaissance des couleurs...")
tandis que(Vrai) :
horloge.tick()
img = capteur.snapshot()
pour blob dans img.find_blobs([seuil], pixels_threshold=100, area_threshold=100, merge=True, margin=10) :
img.draw_rectangle(blob.rect())
img.draw_cross(blob.cx(), blob.cy())
x = str(blob.x())
y = str(blob.y())
w = str(blob.w())
h = str(blob.h())
imprimer(seuil)
si len(x)<3 :
i_flag = 3-len(x)
x = "0"*i_flag + x
si len(y)<3 :
i_flag = 3-len(y)
y = "0"*i_flag + y
si len(w)<3 :
i_flag = 3-len(l)
w = "0"*i_flag + w
si len(h)<3 :
i_flag = 3-len(h)
h = "0"*i_flag + h

send_data = "$"+"01"+ x+','+ y+','+ w+','+ h+','+"#"
#print(envoyer_données)
pour i dans la plage (1,5) :
serial.send(envoyer_données)

temps.sleep_ms(5)
écran LCD (img)
#print(horloge.fps())

Contrôle numérique manuscrit - Code de voiture Microbit : https://makecode.microbit.org/_7e82r50rpfzC

Code du module de contrôle numérique manuscrit K210 :

importer un capteur, une image, une heure, un écran LCD
de maix importer KPU
importer gc

à partir des modules importer ybserial
heure d'importation
série = ybserial()

LCD.init()
capteur.reset()
capteur.set_pixformat(capteur.RGB565)
capteur.set_framesize(capteur.QVGA)
capteur.set_windowing((224, 224))
capteur.skip_frames(temps = 100)
horloge = heure.horloge()

kpu = KPU()
kpu.load_kmodel("/sd/KPU/mnist/uint8_mnist_cnn_model.kmodel")

msg_ = ""
tant que Vrai :
gc.collect()
img = capteur.snapshot()
img_mnist1=img.to_grayscale(1)
img_mnist2=img_mnist1.resize(112,112)
img_mnist2.invert()
img_mnist2.strech_char(1)
img_mnist2.pix_to_ai()

sortie = kpu.run_with_output(img_mnist2, getlist=True)
max_mnist = max(sortie)
index_mnist = sortie.index(max_mnist)
msg_ = str(index_mnist)
send_data = "$"+"11"+ msg_ +','+"#"
temps.sleep_ms(5)
serial.send(envoyer_données)
score = KPU.sigmoid(max_mnist)
si index_mnist == 1:
si score > 0,999 :
display_str = "num: %d" % index_mnist
imprimer(display_str, score)
img.draw_string(4,3,display_str,couleur=(0,0,0),échelle=2)
elif index_mnist == 5:
si score > 0,999 :
display_str = "num: %d" % index_mnist
imprimer(display_str, score)
img.draw_string(4,3,display_str,couleur=(0,0,0),échelle=2)
autre:
display_str = "num: %d" % index_mnist
imprimer(display_str, score)
img.draw_string(4,3,display_str,couleur=(0,0,0),échelle=2)

écran LCD (img)
kpu.deinit()

Effet de cas


Mots clés:
Comment créer un light painting basé sur Microbit ?

Avis de congé pour la fête de la mi-automne et la fête nationale 2023

Laisser un commentaire