# data[].attributes.attachment_link.description
Enter names, spin wheel to pick a random winner. Customize look and feel, save and share wheels.

# data[].attributes.headline
혹시 마이크로비트랑 티처블머신(음성인식) 어떻게 하신지 여쭈어 봐도 될까요? 

# data[].attributes.subject
혹시 마이크로비트랑 티처블머신(음성인식) 어떻게 하신지 여쭈어 봐도 될까요? 

# data[].attributes.body
‧제01편 인공지능의 무한도전
https://bit.ly/2Tuxqag
‧제02편 무인자동차와 미래 교통
https://bit.ly/2SBPJKH
‧제03편 사물인터넷이 바꾸는 우리 세상
https://bit.ly/2GTRzF7
‧제04편 진짜보다 더 진짜 같은 VR
https://bit.ly/2Rt8cvw
‧제05편 3세대 유전자가위, 크리스퍼
https://bit.ly/2VvMJ47
‧제06편 우주로 가는 첫 관문, 우주발사체
https://bit.ly/2F7YA3n
‧제07편 자연재해, 첨단기술로 막아내다
https://bit.ly/2R50pEG
‧제08편 더 빠르게, 더 정확하게! 스마트의료
https://bit.ly/2RozNhx
‧제09편 게임엔진, A부터 Z까지 알아보자!
https://bit.ly/2s7RrYr
‧제10편 승리를 부르는 스포츠통계
https://bit.ly/2Rt7DSq

# data[].attributes.attachment_link.description
Hello! This site introduces artificial intelligence projects created using teachable machine. Feel free to enjoy it. After watching, try making it yourself.

# data[].attributes.attachment_link.description
Microsoft MakeCode for micro:bit에서 ❤️ 으로 만들었습니다.

# data[].attributes.body
https://makecode.microbit.org/_KbEH3yg0K9UW

# data[].attributes.body
https://makecode.microbit.org/_g3zarfea694C

# data[].attributes.body
인식하기

# data[].attributes.body
https://github.com/tangjie133/pxt-huskylens

# data[].attributes.attachment_link.title
[씨마스에듀] 허스키렌즈와 마퀸 조립 영상

# data[].attributes.body
https://makecode.microbit.org/_6AiJE8LMT3wU

# data[].attributes.body
https://makecode.microbit.org/_a21Rhvaj5fYw

# data[].attributes.body
https://makecode.microbit.org/_37e6A496Kaoi

# data[].attributes.attachment_link.title
[12] 머신러닝 vs 딥러닝 비교 - 전통적인 머신러닝과 딥러닝 차이점 4가지

# data[].attributes.body
https://experiments.withgoogle.com/tiny-sorter/view

# data[].attributes.body
https://makecode.microbit.org/_fmW5frMA1eCJ

# data[].attributes.attachment_link.title
Tiny Sorter: A fun starter project with Arduino + machine learning

# data[].attributes.body
https://makecode.microbit.org/_c2gT9A6JJ3hx

# data[].attributes.headline
티처블머신(오디오인식) 서보모터

# data[].attributes.subject
티처블머신(오디오인식) 서보모터

# data[].attributes.body
마이크로비트에 Heart나타나기

# data[].attributes.body
https://microbit.org/ko/projects/make-it-code-it/makecode-wireless-data-logger/

# data[].attributes.body
하트표시

# data[].attributes.attachment_link.title
Introduce AI Painter with Vincent Willem van Gogh example

# data[].attributes.attachment_link.title
[J의 무띠끄][영화리뷰][그녀(Her)] 자신의 AI와 사랑에 빠진 한 남자

# data[].attributes.attachment_link.title
Morgan | IBM Creates First Movie Trailer by AI [HD] | 20th Century FOX

# data[].attributes.attachment_link.title
Google DeepMind's Deep Q-learning playing Atari Breakout!

# data[].attributes.body
퀵드로
https://quickdraw.withgoogle.com

오토드로
https://www.autodraw.com/

AI듀엣
https://experiments.withgoogle.com/ai/ai-duet/view/

엔비디아 가우시안
http://nvidia-research-mingyuliu.com/gaugan/

엔비디아 사진합성
https://thispersondoesnotexist.com/

Which Face is Real?
http://www.whichfaceisreal.com/index.php

티처블머신
https://teachablemachine.withgoogle.com/

머신러닝4키즈
https://machinelearningforkids.co.uk/#!/about

소프트웨어야놀자
https://www.playsw.or.kr/artificial/view/playswtv/680?currentTab=ai_data_video_hello_ai&path=ai_data_video_hello_ai

http://cognimates.me/home/

# data[].attributes.attachment_link.readable_text
Note: I've cleaned up the code and upgraded libraries, also created a local version that you can run on your computer. Check out the Github repository.

Teachable Machine is a web-based AI tool developed by Google, which enables you to train and use AI models without any AI knowledge. An AI tool for dummies. Neat, right?

But can it do more than simply demonstrating machine learning in the web browser? Can it be a practical tool too?

Interestingly, there's a demo on the Teachable Machine website called Tiny Sorter which use p5.js (an online JavaScript editor/compiler) to talk to an Arduino Leonardo with a servo. So it is entirely possible to run AI on your computer and do something useful.

This tutorial is about how to make Teachable Machine AI output its recognition results to an external device, such as a microcontroller. My method is not the same as the Tiny Sorter demo, however the principle is similar. This would be especially useful for people who has little knowledge about AI, but interested to use it for their Maker or physical computing projects.

(Note: the following steps only tested on Windows 10.)
Pros of this method:

No AI knowledge required

Fast, easy and free model training/hosting

Almost no need to install anything

Pretty low cost if you already have a computer

Can be used on any microcontrollers as long as you know how to program them to read serial inputs and do stuff

Cons of this method:

Recognition has to be done on your computer and thus reduce the range/mobility of your microcontroller

Computer needs Internet connection

The AI models have limitations, it may get false readings and cannot be further customized

May be more difficult to debug on the microcontroller's end

Some AI experts might tell you this is cute but not the real thing. Yeah, ok...

Step 1: Generate and upload your AI model

When you train your model, I would use Class 0 as the background image (nothing), then the things to be recognized would be named as "1", "2", "3"...etc. This will be easier for the devices to read results.

For image recognition, you can move your object around to improve AI accuracy, and there should be enough difference between each objects.

Or if you are training the sound recognition model, make sure to input enough background noise samples first. Same as above, I would name the sounds to recognized as "1", "2", "3"...

After the model finished training, click Export Model than select Tensorflow.js -> Upload. Copy the model link after it is done. (For now sound recognition can only choose Tensorflow.js.)

Step 2: Prepare the p5.js script

The p5.js scripts template can be found here:

Or you can find the complete code here. I haven't done the gesture recognition version, but it should be easy to modify.

This script is basically the combination of Teachable Machine's and p5.js's example code. There are 4 files total:

sketch.js (main code)

index.html (import libraries)

style.css

p5.serialport.js (serial port functions)

You can login p5.js and duplicate/save your script. You'll only need to change two places:

microcontroller's serial port on your computer (see step 4)

the link of your model (step 1)

Note: later I'll see if it's possible to update both code to the new p5.js 1.0.

Remember to change the COM__ to your serial port!

Step 3: Program your microcontroller

Your device (in this case, a BBC micro:bit) will need its own program to be able to read serial inputs and do something about it.

The serial outputs are strings or characters and have no new line characters (like \r\n).

The following example is to indicate received image recognition results by lighting up different LEDs on my BBC micro:bit:

Result 1 (a BPI:bit ESP32 board) - red LED (Pin 0)

Result 2 (a Arduino Nano 33 IoT with shield) - green LED (Pin 1)

Result 3 (a Adafruit Metro M4 Express) - blue LED (Pin 2)

Result 0 (background only) - white LED (Pin 8)

The serial output baud rate is 9600. Since micro:bit's default rate is 115200, I had to reset it in the beginning.

let result = ""
serial.redirect(
 SerialPin.USB_TX,
 SerialPin.USB_RX,
 BaudRate.BaudRate9600
)

basic.forever(function () {
 result = serial.readString()
 if (result == "0") {
 pins.digitalWritePin(DigitalPin.P0, 0)
 pins.digitalWritePin(DigitalPin.P1, 0)
 pins.digitalWritePin(DigitalPin.P2, 0)
 pins.digitalWritePin(DigitalPin.P8, 1)
 } else if (result == "1") {
 pins.digitalWritePin(DigitalPin.P0, 1)
 pins.digitalWritePin(DigitalPin.P1, 0)
 pins.digitalWritePin(DigitalPin.P2, 0)
 pins.digitalWritePin(DigitalPin.P8, 0)
 } else if (result == "2") {
 pins.digitalWritePin(DigitalPin.P0, 0)
 pins.digitalWritePin(DigitalPin.P1, 1)
 pins.digitalWritePin(DigitalPin.P2, 0)
 pins.digitalWritePin(DigitalPin.P8, 0)
 } else if (result == "3") {
 pins.digitalWritePin(DigitalPin.P0, 0)
 pins.digitalWritePin(DigitalPin.P1, 0)
 pins.digitalWritePin(DigitalPin.P2, 1)
 pins.digitalWritePin(DigitalPin.P8, 0)
 }
})

Step 4: Connect your device's serial port

Download and unzip p5.js serial control program. Connect your device to USB and run the p5.serialcontrol.exe (for Windows). You may have to set it allowed to run in your antivirus program.

Once the program launched, open the serial port of your device. If you are not sure, open Device Manager to see which COM port it has.

Remember to close the COM port in p5.serialcontrol whenever you need to flash code onto your board! Otherwise it will be blocked.

After the serial port is connected and set in the p5.js sketch, everything would be good to go.

Step 5: Employ the power of AI!

Go back to the p5.js script editor and click Run. After a short while a webcam window should appear beside the script. You may see your device's serial port light blinking, indicating the data it received.

If you forget to open the serial port, nothing wrong will happen. The p5.js script would simply run as usual.

In the demo below I can indeed send image recognition results to my micro:bit:

Another demo here is using an Arduino Nano and a mini servo to indicate the sound recognition results: (The background noise is not a result. A result would only be returned when the model recognized something.)

Result 1 (finger snapping) - turn to 0 degrees

Result 2 (clapping) - turn to 180 degrees

I added a small delay at the end, for the servo needs some time to finish its turn.

Below is the Arduino code for controlling two LEDs based on 3 labels.

Remote control possibilities?

It is possible to control something not directly connected to your computer. One possible way is to use HC-05 Bluetooth module on the microcontroller as a wireless serial port.

If you are using micro:bit, you can use one to simply resend results to others via the "radio" function.

# data[].attributes.attachment_link.title
Use Teachable Machine AI to Control Anything

# data[].attributes.attachment_link.description
How to easily employ AI image/sound recognition for your microcontrollers, even if you know nothing about machine learning. Find this and other hardware projects on Hackster.io.

# data[].attributes.headline
마이크로비트 시리얼 연결

# data[].attributes.subject
마이크로비트 시리얼 연결

# data[].attributes.attachment_link.description
Microsoft MakeCode for micro:bit에서 ❤️ 으로 만들었습니다.

# data[].attributes.headline
도구를 화용한 문제해결

# data[].attributes.subject
도구를 화용한 문제해결

# data[].attributes.body
https://padlet.com/jhpark0154/tool

# data[].attributes.attachment_link.readable_text
Netlify is the modern development platform for Enterprises to realize the speed, agility and performance of a scalable, composable web architecture.

Netlify Composable Web Platform

Streamlined orchestration, simplified and unified workflows, and real-time updates across infrastructure, workflows, websites and teams - all supported by Enterprise-grade security, services, and a world-class partner ecosystem.
Explore platform

3 solutions 1 platform

Netlify Connect

Unify all content

Netlify Connect is a data unification layer that gives web teams the freedom to create world-class websites, online stores, and applications with data from any existing or new content source.

Netlify Core

Deploy faster

Netlify Core is a frontend cloud solution for developers to build and deploy future-proof digital solutions with modern, composable tooling that works with all modern frameworks.

Netlify Create

Click, edit, publish

Netlify Create gives digital teams the freedom to autonomously perform content and website updates faster than ever before with an intuitive visual editor.

We aspire to be the most player-focused gaming company in the world, and Netlify absolutely carries the same spirit of aspiring to be the most developer-focused technology company in the world... Ultimately, there was a sense of deep collaboration, understanding and meeting our business requirements, and providing extremely knowledgeable and highly professional solutions every single step along the way.

# data[].attributes.attachment_link.title
Scale & Ship Faster with a Composable Web Architecture | Netlify

# data[].attributes.attachment_link.description
Realize the speed, agility and performance of a scalable, composable web architecture with Netlify. Explore the composable web platform now!

# data[].attributes.attachment_link.readable_text
GitHub's redesigned navigation is enabled for all users as a public beta.

In May, we experienced four incidents that resulted in degraded performance across GitHub services. This report also sheds light into three April incidents that resulted in degraded performance across GitHub services.

We surveyed 500 U.S.-based developers at companies with 1,000-plus employees about how managers should consider developer productivity, collaboration, and AI coding tools.

# data[].attributes.attachment_link.description
We are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022.

# data[].attributes.attachment_link.description
The study data comes from 11.3 million index pages gathered from top twenty Google results, for about 30 million keywords.