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

【Unboxing y reseña】--- Coche robot con inteligencia artificial Tinybit Pro

0 comentarios

Plataforma para coche robot con visión artificial micro: bit Yahboom Tiny:bit Pro

Intenté usar un automóvil robótico "Tiny:bit Pro" que extiende micro:bit proporcionado por Yahboom.

La lista de embalaje incluye: caja de embalaje, manual de instrucciones, placa de extensión para automóvil (con motor y soporte de montaje), neumáticos, control remoto por infrarrojos, batería recargable, mapa de seguimiento, tarjeta TF + lector de tarjetas.

! ! !Nota: Si compras con placa Microbit, tu paquete incluirá la placa Micro:bit. Si compras sin Micro:bit, deberás preparar BBC Micro:bit por tu cuenta.

Tiny:bit Pro tiene dos opciones: Kit estándar / Kit de expansión

Asamblea

1. Retire los tornillos M3*6 mm del módulo K210 e instale el soporte de fijación de los tornillos M3*6 mm en el módulo K210.

2. Instalar rueda universal

3. Instalar Trie

4. Instalar el módulo K210 en el coche Tinybit

5. Insertar la placa Microbit

¡Algo lindo y divertido! ¿Te gusta este "tipo"?

Especificación

Parte delantera: Ultrasónico, sensor de sonido, reflector de alto brillo, receptor de control remoto por infrarrojos, luces RGB de colores programables, interfaz de pinza de cocodrilo, interfaz de puerto serie PH2.0-4PIN.

Parte posterior: Sensor de seguimiento, zumbador, zócalo de motor, interruptor de puerto serie .

Adición del bloque Tiny:bit Pro para MakeCode

Dado que es un automóvil robot que extiende Micro:bit, puede bloquear la codificación con MakeCode.

Cómo agregar el bloque Tiny:bit Pro

  • Se agregó el bloque de Tiny:bit.

A continuación se cargan varios códigos de muestra básicos para Tinybit Pro.

Iluminación con intercambio de luz RGB: https://makecode.microbit.org/_EL3LmqJTwKKT

Control de velocidad del movimiento del automóvil: https://makecode.microbit.org/_9oJaEzErWisY

Ultrasonido-evitar-con-luz-sonido: https://makecode.microbit.org/_P7WYcMXvUTqt

Luz de control por voz: https://makecode.microbit.org/_KDDPHmJcaRut

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

A continuación se cargan varios códigos de muestra de visión de IA para Tinybit Pro.

Reconocimiento de colores - Código de automóvil Microbit: https://makecode.microbit.org/_1p84eJ9VxUkK

Código del módulo de reconocimiento de color K210 :

Importar sensor, imagen, tiempo, lcd

Desde los módulos importar ybserial
tiempo de importación

serie = ybserial()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(tiempo = 100)
sensor.set_auto_gain(Falso)
sensor.set_auto_whitebal(Falso)
reloj = tiempo.reloj()

print("Sostenga el objeto que desea rastrear frente a la cámara en el cuadro.")
print("¡ASEGÚRESE DE QUE EL COLOR DEL OBJETO QUE QUIERE SEGUIR ESTÉ COMPLETAMENTE CERRADO POR LA CAJA!")

# Captura los umbrales de color de lo que estaba en el centro de la imagen.
# 50x50 centro de QVGA.
r = [(320//2)-(50//2), (240//2)-(50//2), 50, 50]
para i en rango(50):
img = sensor.instantánea()
img.draw_rectangle(r)
pantalla lcd(img)

print("Umbrales de aprendizaje...")
umbral = [50, 50, 0, 0, 0, 0] # Valores medios L, A, B.

para i en rango(50):
img = sensor.instantánea()
hist = img.get_histogram(roi=r)
lo = hist.get_percentile(0.01) # ¡Obtenga la CDF del histograma en el rango del 1% (AJUSTE SEGÚN SEA NECESARIO)!
hi = hist.get_percentile(0.99) # ¡Obtenga la CDF del histograma en el rango del 99 % (AJUSTE SEGÚN SEA NECESARIO)!
# Promedio en valores percentiles.
umbral[0] = (umbral[0] + lo.l_value()) // 2
umbral[1] = (umbral[1] + hi.l_value()) // 2
umbral[2] = (umbral[2] + lo.a_value()) // 2
umbral[3] = (umbral[3] + hi.a_value()) // 2
umbral[4] = (umbral[4] + lo.b_value()) // 2
umbral[5] = (umbral[5] + hi.b_value()) // 2
para blob en img.find_blobs([umbral], umbral_píxeles=100, umbral_área=100, combinación=True, margen=10):
img.draw_rectangle(blob.rect())
img.draw_cross(blob.cx(), blob.cy())
img.draw_rectangle(r, color=(0,255,0))
pantalla lcd(img)

print("Umbrales aprendidos...")
print("Iniciar reconocimiento de color...")
mientras(Verdadero):
reloj.tick()
img = sensor.instantánea()
para blob en img.find_blobs([umbral], umbral_píxeles=100, umbral_área=100, combinación=True, margen=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())
imprimir(umbral)
si len(x)<3 :
i_bandera = 3-len(x)
x = "0"*i_bandera + x
si len(y)<3 :
i_bandera = 3-len(y)
y = "0"*i_flag + y
si len(w)<3 :
i_bandera = 3-len(w)
w = "0"*i_bandera + w
si len(h)<3 :
i_bandera = 3-len(h)
h = "0"*i_bandera + h

enviar_datos="$"+"01"+ x+','+ y+','+ w+','+ h+','+"#"
#print(enviar_datos)
para i en el rango (1,5):
serial.send(enviar_datos)

tiempo.sleep_ms(5)
pantalla lcd(img)
#print(reloj.fps())

Código de automóvil Microbit para control digital escrito a mano : https://makecode.microbit.org/_7e82r50rpfzC

Código del módulo de control digital escrito a mano K210:

Importar sensor, imagen, tiempo, lcd
Desde la importación principal KPU
importar gc

Desde los módulos importar ybserial
tiempo de importación
serie = ybserial()

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.skip_frames(tiempo = 100)
reloj = tiempo.reloj()

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

mensaje_=""
mientras sea verdadero:
gc.recopilar()
img = sensor.instantánea()
img_mnist1=img.a_escala_de_grises(1)
img_mnist2=img_mnist1.resize(112,112)
img_mnist2.invertir()
img_mnist2.strech_char(1)
img_mnist2.pix_to_ai()

salida = kpu.run_with_output(img_mnist2, obtenerlista=Verdadero)
max_mnist = máx(salida)
índice_mnist = salida.índice(máximo_mnist)
msg_ = str(índice_mnist)
enviar_datos="$"+"11"+ msg_ +','+"#"
tiempo.sleep_ms(5)
serial.send(enviar_datos)
puntuación = KPU.sigmoide(max_mnist)
si index_mnist == 1:
Si la puntuación es > 0,999:
display_str = "num: %d" % índice_mnist
imprimir(display_str, puntuación)
img.draw_string(4,3,display_str,color=(0,0,0),escala=2)
elif índice_mnist == 5:
Si la puntuación es > 0,999:
display_str = "num: %d" % índice_mnist
imprimir(display_str, puntuación)
img.draw_string(4,3,display_str,color=(0,0,0),escala=2)
demás:
display_str = "num: %d" % índice_mnist
imprimir(display_str, puntuación)
img.draw_string(4,3,display_str,color=(0,0,0),escala=2)

pantalla lcd(img)
kpu.deinit()

Caso de demostración de efectos


Etiquetas:
¿Cómo crear una pintura de luz basada en Microbit?

Aviso de feriado por el Festival del Medio Otoño y el Día Nacional de 2023

Deja un comentario