top of page
Buscar

Como conectar a câmera huskylens com Lego mindstorms Robot Inventor

Neste post, iremos aprender como conectar a câmera com Inteligência Artifical huskylens com o lego mindtorms robot inventor. Trata-se de um processo bastante simples desde que você siga as instruções corretamente.


Primeiro, faça as conexões a seguir:


Obs: Recomenda-se utilizar uma fonte externa para se alimentar a câmera uma vez que a bateria do Lego pode não ser o suficiente para fazê-la funcionar.


Após isso, instale a biblioteca da huskylens em seu lego:


import ubinascii, uos, machine,uhashlib

from ubinascii import hexlify

b64="""TQUCHyCLCOgQTgAHLExpYnJhcnkvcHlodXNreWxlbnMucHk5KDA5UGUlRYAdHx8fK2YkJCQkJCQkJEQkJGQgixSLEoupAIAQEHNsZWVwX21zEBB0aWNrc19tcyoCGwh0aW1lHAUWARwFFgFZgFEbDHN0cnVjdBYBgBAASCoBGwBzHABIFgBIWYAQCmF0YW4yEA5kZWdyZWVzKgIbCG1hdGgcBRYBHAUWAVmAEAhwb3J0KgEbBmh1YhwDFgFZMgIWCGJ5dGUjABYMSEVBREVSIwEWDEZBSUxFRDIDEQB8oCI+NAI0ATAeFg5SRVFVRVNUFhxSRVFVRVNUX0JMT0NLUxYcUkVRVUVTVF9BUlJPV1MWHlJFUVVFU1RfTEVBUk5FRBYsUkVRVUVTVF9CTE9DS1NfTEVBUk5FRBYsUkVRVUVTVF9BUlJPV1NfTEVBUk5FRBYaUkVRVUVTVF9CWV9JRBYoUkVRVUVTVF9CTE9DS1NfQllfSUQWKFJFUVVFU1RfQVJST1dTX0JZX0lEFhZSRVRVUk5fSU5GTxYYUkVUVVJOX0JMT0NLFhhSRVRVUk5fQVJST1cWGlJFUVVFU1RfS05PQ0sWIlJFUVVFU1RfQUxHT1JJVEhNFhJSRVRVUk5fT0sWJlJFUVVFU1RfQ1VTVE9NTkFNRVMWGlJFUVVFU1RfUEhPVE8WJFJFUVVFU1RfU0VORF9QSE9UTxYuUkVRVUVTVF9TRU5EX0tOT1dMRURHRVMWNFJFUVVFU1RfUkVDRUlWRV9LTk9XTEVER0VTFiZSRVFVRVNUX0NVU1RPTV9URVhUFiRSRVFVRVNUX0NMRUFSX1RFWFQWGlJFUVVFU1RfTEVBUk4WHFJFUVVFU1RfRk9SR0VUFi5SRVFVRVNUX1NFTkRfU0NSRUVOU0hPVBYuUkVRVUVTVF9TQVZFX1NDUkVFTlNIT1QWPFJFUVVFU1RfTE9BRF9BSV9GUkFNRV9GUk9NX1VTQhYcUkVRVUVTVF9JU19QUk8WMFJFUVVFU1RfRklSTVdBUkVfVkVSU0lPThYWUkVUVVJOX0JVU1kRBRYaUkVUVVJOX0lTX1BST4AWNEFMR09SSVRITV9GQUNFX1JFQ09HTklUSU9OgRYyQUxHT1JJVEhNX09CSkVDVF9UUkFDS0lOR4IWOEFMR09SSVRITV9PQkpFQ1RfUkVDT0dO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

"""


def calc_hash(b):

   return hexlify(uhashlib.sha256(b).digest()).decode()


# this is the hash of the compiled mpy

hash_gen='3af861ba999a2843b8873036adb9cbca23d288a637a3cec237b68da3cddd34b0'


pyhuskylens=ubinascii.a2b_base64(b64)

hash_initial=calc_hash(pyhuskylens)


try: # remove any old versions of pyhuskylens library

   uos.remove('/projects/pyhuskylens.py')

   uos.remove('/projects/pyhuskylens.mpy')

except OSError:

   pass


print('writing pyhuskylens.mpy to folder /projects')

with open('/projects/pyhuskylens.mpy','wb') as f:

   f.write(pyhuskylens)

print('Finished writing pyhuskylens.mpy.')

print('Checking hash.')

pyhuskylens_check=open('/projects/pyhuskylens.mpy','rb').read()

hash_check=calc_hash(pyhuskylens_check)


print('Hash generated: ',hash_gen)

error=False

if hash_initial != hash_gen:

   print('Failed hash of base64 input : '+hash_initial)

   error=True

if hash_check != hash_gen:

   print('Failed hash of .mpy on SPIKE: '+hash_check)

   error=True


if not error:

   print('pyhuskylens library written succesfully. Resetting....')

   machine.reset()

else:

   print('Failure in pyhuskylens library!')




Uma vez que a biblioteca foi devidamente instalada, você já pode usar a placa. Um projeto bastante interessante é o seguidor de rostos, que pode ser visto a partir de antonsmindstorms.com



 
 
 

Comments


Seja o primeiro a saber das novidades

2024 Mundo do Arduino

bottom of page