HuskyLens - AI Mach...
 
Notifications
Clear all

HuskyLens - AI Machine Vision Sensor

28 Posts
12 Users
25 Likes
4,812 Views
(@dronebot-workshop)
Workshop Guru Admin
Joined: 5 years ago
Posts: 1076
Topic starter  

HuskyLens is an AI Machine Vision sensor based upon the powerful Kendryte K210 processor.  Today we will take a look at this amazing device, both by itself and with an Arduino.

The Kendryte K210 processor is a 64-bit RISC microcontroller which has been designed for machine vision and voice recognition applications. I’ve picked up a few sensors based upon this powerful microcontroller, and today we will look at one of them - the HuskyLens.

The DFRobot HuskyLens packages the power of the K210 with a video camera, small TFT screen and a microSD card socket. This powerful, yet inexpensive, device can perform several machine visions tasks including face recognition, object classification, object detection and line following, plus many more.

Today we will take a detailed look at the HuskyLens. After updating the firmware, we will put the device to the test in all of its different modes.

After that, we will hook a simple Arduino Uno to the HuskyLens and observe the data we can get back from it. 

We will also see how we can perform more advanced functions with Arduino and HuskyLens, such as updating the text on the screen.  And we will also see how to save our trained models using the microSD card.

I’ll even give you a quick peek at a small robot I’m deigning around the HuskyLens!

Here is the Table of Contents for today's video:

 

00:00 - Introduction

00:00 - Look at HuskyLens

00:00 - Firmware Update

00:00 - Face Recognition demo

00:00 - Object Tracking Demo

00:00 - Object Recognition Demo

00:00 - Line Tracking Demo

00:00 - Color Recognition Demo

00:00 - Tag Recognition Demo

00:00 - Object Classification Demo

00:00 - HuskyLens with Arduino - UART Mode

00:00 - HuskyLens with Arduino - I2C Mode

00:00 - Modifying HuskyLens Text

00:00 - Using the microSD Card

00:00 - Conclusion

 

As I said I have a few sensors based upon the Kendryte K210, the HuskyLens is only one of them. I’ll be showing you more of these advanced machine learning devices in future episodes.

"Never trust a computer you can’t throw out a window." — Steve Wozniak


   
robotBuilder, YurkshireLad, Spudger and 1 people reacted
Quote
(@sj_h1)
Member
Joined: 4 years ago
Posts: 167
 

Can this device be programmed/setup via Arduino I2C.

 


   
ReplyQuote
Spudger
(@spudger)
Member
Joined: 2 years ago
Posts: 11
 

What an amazing amount of tech/ AI on such a tiny form factor, very impressive device ... just wow!

Spudger

The rocket worked perfectly, except for landing on the wrong planet.- Wernher Von Braun


   
ReplyQuote
(@dronebot-workshop)
Workshop Guru Admin
Joined: 5 years ago
Posts: 1076
Topic starter  
Posted by: @spudger

What an amazing amount of tech/ AI on such a tiny form factor, very impressive device ... just wow!

Yes, it's very impressive. As are the other Kendryte K210 based sensors that I'm playing with.

Posted by: @sj_h1

Can this device be programmed/setup via Arduino I2C.

Not quite sure that I follow the question?  I used I2C in my demonstrations (except, of course, the UART demo). Could you be more specific as to what you'd like to do with it?

😎

Bill

"Never trust a computer you can’t throw out a window." — Steve Wozniak


   
Spudger reacted
ReplyQuote
robotBuilder
(@robotbuilder)
Member
Joined: 5 years ago
Posts: 2042
 

@dronebot-workshop

Yes amazing with its built-in machine learning technology. Also another well presented demonstration of the technology and how to use it by your good self.

One day any budding robot builder will be able to go into the electronics shop, or order online, a Chinese made positronic brain to plug into their robot body also made in China and be good to go.

Once floating point arithmetic was done in software, then came the math coprocessor. Graphic routines were once written in software, then came the graphic chips. Once neural networks were written in software now the process is being accelerated by hardware for "deep learning".

This old dinosaur remembers the old Z80 days learning how to do floating point arithmetic in software or draw a line on the screen or generate sounds and music by sending numbers out the computer i/o port to a DAC connected to an amp and speaker.

 


   
ReplyQuote
Oracid
(@oracid)
Member
Joined: 5 years ago
Posts: 18
 

Hi all

Thank Guru for this forum. I am a fan of your channel.

I am French, nobody is perfect, and I apologize for my English.
The HuskyLens seems like a dream machine, but one of my friend said to me that an ESP32 Cam is the same and very cheaper.

So, I wonder. What is the difference between the HuskyLens and the ESP32 Cam ?
Thank you in advance for your answer.


   
ReplyQuote
(@sj_h1)
Member
Joined: 4 years ago
Posts: 167
 

@dronebot-workshop You demonstrated several "training" modes and following modes. Cab those be done via I2C

 


   
ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 5 years ago
Posts: 1037
 

@oracid 

The ESP32 Cam doesn't have the intelligence built into as does the HuskyLens.

SteveG


   
ReplyQuote
(@dronebot-workshop)
Workshop Guru Admin
Joined: 5 years ago
Posts: 1076
Topic starter  
Posted by: @oracid

I am French, nobody is perfect, and I apologize for my English

No apologies necessary, my French is terrible, and I live in Montreal!

Posted by: @oracid

The HuskyLens seems like a dream machine, but one of my friend said to me that an ESP32 Cam is the same and very cheaper.

They are by no means the same. While the 32-bit ESP32-CAM is capable of simple recognition tasks, it has nowhere the power of the 64-bit Kendryte K210.  It certainly can't recognize a cow, and programming it to track an object is difficult (but not impossible).

Also, the HuskyLens is meant to be used as an external sensor, while the ESP32-CAM is a microcontroller with I/O ports, WiFi and Bluetooth. So they aren't even really in the same category.

A better comparison would be to compare the HuskyLens with the Pixy 2 camera, a much older technology. The HuskyLens is much more powerful, and cheaper too.

Not to mention that the ESP32-CAM doesn't come with a 2-inch display, which is where a lot of the cost of the HuskyLens is incorporated.

But your friend is correct about one thing, the ESP32-CAM is much cheaper. You can buy five of them for the price of one HuskyLens. But, again, you are really comparing two different categories of device.

The real beauty of a device like the HuskyLens is what I referred to at the beginning of the video - it's an "edge computing" device. So it does all the hard work, making it easier for the microcontroller.

I'll be reviewing some more similar sensors that use the Kendryte K210, these are from Seeedstudio, and they bring out many of the K210 I/O pins. I have three of them, and one of them even has an ESP-32 onboard for wireless connectivity. 

Posted by: @sj_h1

You demonstrated several "training" modes and following modes. Cab those be done via I2C

I think you are asking if you can use the microcontroller in place of the training buttons, is that correct?  If so, then I don't think you can. But keep in mind you need also the screen for training, and the buttons are mounted on top of the screen.

😎

Bill

"Never trust a computer you can’t throw out a window." — Steve Wozniak


   
Oracid reacted
ReplyQuote
Oracid
(@oracid)
Member
Joined: 5 years ago
Posts: 18
 

@dronebot-workshop

Thanks Codecage.

Thank you Bill for taking the time to give this very long and clear answer.
I ordered a HuskyLens and hope to use it as a line follower on my future quadruped. 
Maybe I should install it on a Gimbal. I will be very proud to show you the result.
Thanks again.

'https://www.youtube.com/user/oracid1/videos'


   
ReplyQuote
Oracid
(@oracid)
Member
Joined: 5 years ago
Posts: 18
 

Hi. Happy New Year everyone an stay safe.

I'm trying to install the driver that I have downloaded from Silicon Labs, https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
I have downloaded the "CP210x Universal Windows Driver". But I suck! Which file should I run? I don't see anything executable and in my Device Manager, in PORT (COM & LPT), I don't see Silicon Labs, as described on this page, https://wiki.dfrobot.com/HUSKYLENS_V1.0_SKU_SEN0305_SEN0336
Thank you in advance for your help.


   
ReplyQuote
Oracid
(@oracid)
Member
Joined: 5 years ago
Posts: 18
 

It seems ok ! I have just connected the HuskyLens at the USB and the driver appears in the Device Manager.


   
ReplyQuote
Oracid
(@oracid)
Member
Joined: 5 years ago
Posts: 18
 

Hi everybody

I made a line follower with my HuskyLens, thanks to Bill.


   
Inst-Tech reacted
ReplyQuote
Inst-Tech
(@inst-tech)
Member
Joined: 2 years ago
Posts: 554
 

@oracid. Hi... ! Was just admiring your tank robot and as wondering what version of the HuskyLens you managed to upload to your Huskylens, and what PC system OS are you using? ie Windows, Mac, Linus.. mine came with ver: 0.4.7aStable, and I'm running on windows 7 platform.. couldn't get the HuskyLens Uploader_v2.1 to load on my system, so I can't install the new ver: firmware 0.5.1a so I can use all the functionally of the HuskyLens.. The divice runs ok on the version it came with, but the huskylens.setCustomName() function doesn't work.. I suspect it because of the lower version installed from the vendor. IF you can help, let me know.. and BTW, great job getting it to run around chasing that line!...lol

kind regards;

  LouisR

LouisR


   
ReplyQuote
Oracid
(@oracid)
Member
Joined: 5 years ago
Posts: 18
 

@inst-tech Hi. Thank you.

I work on Windows 10 and now on Windows 11. My version is Pro 05.1aNorm

I don't know much about HuskyLens, but I have compile with the functiun "huskylens.setCustomName("Oracid",ID1);" and everything is ok.

Hope you get through. Do not hesitate to ask.

Here is my last code which run a little Cannon Carriage robot (2 wheels and a skate):

CannonCarriage-LINE_TRACKING-V2-ref.ino

// 07/02/2022 - Cannon Carriage robot
#include <HUSKYLENS.h>
#include <Servo.h>
void(* resetFunc) (void) = 0; // soft reset function
Servo sR,sL; // right servo and left servo
int R, L; // right servo value, left servo value
HUSKYLENS huskylens; int ID1=1; // HuskyLens objet

void setup() {
delay(400); // for soft reset consideration
Serial.begin(9600); // Serial initialization
pinMode(6,INPUT_PULLUP); // start/stop/reset button attachment
sL.attach(2);sL.write(90); // right servo, 0->FW, 90->stop, 180->BW
sR.attach(3);sR.write(90); // left servo, 0->FW, 90->stop, 180->BW
Wire.begin(); // I2C initialization
while (!huskylens.begin(Wire)) {Serial.print("\n Check I2C"); delay(100);}
huskylens.writeAlgorithm(ALGORITHM_LINE_TRACKING); //Switch to line tracking.
Serial.print("\n\t To start, click on the Start button"); while( digitalRead(6) ); delay(400);
}

void loop() {
if (! digitalRead(6)) resetFunc();
huskylens.request(ID1);
HUSKYLENSResult result = huskylens.read();
int e = map(result.xTarget,0,320,-90,90); //Serial.print(String()+("\n err=")+err); // getting and maping error
if ( e < 0) { L=-e; R=0; } else { L=0; R=e; } // error makes turning left or right
sL.write(L); sR.write(R); // left and right servos order
}

 

 

 

 

 

 

 


   
Inst-Tech reacted
ReplyQuote
Page 1 / 2