Taula de continguts:

MicroPython IoT Rover basat en WEMOS D1 (ESP-8266EX): 7 passos (amb imatges)
MicroPython IoT Rover basat en WEMOS D1 (ESP-8266EX): 7 passos (amb imatges)

Vídeo: MicroPython IoT Rover basat en WEMOS D1 (ESP-8266EX): 7 passos (amb imatges)

Vídeo: MicroPython IoT Rover basat en WEMOS D1 (ESP-8266EX): 7 passos (amb imatges)
Vídeo: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, Desembre
Anonim
Image
Image
MicroPython IoT Rover basat en WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover basat en WEMOS D1 (ESP-8266EX)

** Actualització: he publicat un nou vídeo per a v2 amb llança **

Organitzo tallers de robòtica per a nens petits i sempre busco plataformes econòmiques per construir projectes intrigants. Tot i que els clons Arduino són econòmics, utilitza el llenguatge C / C ++ que els nens no coneixen. A més, no té un WiFi integrat que és imprescindible per als projectes IoT. D’altra banda, tot i que Raspberry Pi té WIFI i els nens poden programar-lo mitjançant Python, continua sent una plataforma cara per controlar pocs ports GPIO per encendre i apagar els dispositius. Necessito alguna cosa entremig que tingui funcions WIFI i Python. Sembla que vaig trobar la meva resposta a MicroPython en una placa econòmica basada en ESP8266.

Què és Micropython?

Segons el seu lloc web, MicroPython és una implementació senzilla i eficient dels llenguatges de programació Python 3 que inclou un petit subconjunt de la biblioteca estàndard Python i està optimitzat per funcionar en microcontroladors i en entorns restringits (com ESP8266). Es tracta essencialment de Python IDE en un xip. Un dels principals avantatges és que podeu crear codi i canviar-lo sobre la marxa mitjançant un client de navegador web anomenat Webrepl. (Intenteu fer-ho a Arduino.) També podeu veure les dades del sensor en temps real a Webrepl en lloc de confiar en el registre de dades o una pantalla LED a Arduino.

Què és ESP8266?

En resum, penseu-ho com un Arduino amb capacitat de xarxa integrada. Podeu utilitzar l’Arduino IDE per programar plaques ESP8266 en C / C ++ o podeu fer-lo flash amb NodeMCU o MicroPython. En aquest projecte, faré flashing MicroPython a una placa ESP8266.

Vaig decidir obtenir un WEMOS D1 basat en ESP8266-12EX per a aquest senzill projecte on navegaré per un cotxe de dues rodes motores mitjançant un navegador web. Hi ha altres taules dissenyades per a MicroPython, però volia una cosa barata que pogués llençar si no complia els meus criteris. Com era d’esperar, complia tots els meus requisits i molt probablement incorporaré WeMos i Micropython a futurs projectes.

Pas 1: parts

Parts
Parts
Parts
Parts
Parts
Parts
Parts
Parts
  • Wemos D1 o qualsevol placa basada en ESP8266
  • Protecció del motor (estic fent servir un L293D barat d’Aliexpress)
  • Suports de bateries per a 4 x AA i 9V (4 bateries AA per a motors i 9V per a la placa Wemos)
  • Xassís de cotxe 2WD
  • Cables Dupont

Pot necessitar un soldador, un tornavís i una pistola de cola per muntar-ho tot.

Pas 2: Muntatge de maquinari

Muntatge de maquinari
Muntatge de maquinari
Muntatge de maquinari
Muntatge de maquinari
Muntatge de maquinari
Muntatge de maquinari

En primer lloc, munteu el xassís segons les instruccions.

A continuació, enganxeu en calent altres components tal com es mostra.

Els cables del motor s’han de soldar als terminals del motor i utilitzar cola calenta per reforçar les juntes dels terminals.

S'ha col·locat un petit interruptor al suport de la bateria 4AA. Això activarà / apagarà l’escut del motor.

Pas 3: cablejat

Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat

Seguiu el meu esquema de cablejat com es mostra.

Wemos a Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** ometeu D4 D5 IN3 GND -> GND

Escut del motor al motor / potència:

Un terminal -> Motor esquerre

Terminal B -> Motor dret VCC -> Bateria (+) GND -> Bateria (-)

Pas 4: Instal·lació de MicroPython

En primer lloc, Wemos té un xip sèrie / USB basat en CH304G. Aquest és el mateix xip que es troba als clons Arduino barats i heu d’instal·lar un controlador adequat per a Mac o PC. Seguiu les instruccions d’aquest lloc per instal·lar el controlador.

Connecteu Wemos a l'ordinador i confirmeu que l'ordinador podria detectar Wemos. Al Mac, executeu l'ordre següent i veureu un dispositiu anomenat /dev/tty.wchusbserial640.

$ ls -lt / dev / tty * | cap

crw-rw-rw- 1 roda d'arrel 17, 4 de març 23:31 /dev/tty.wchusbserial640

Si esteu a l'ordinador, podeu utilitzar aquesta instrucció com a referència.

A continuació, haureu de configurar Python 2 o 3 al vostre ordinador, ja que l'eina flash, esptool.py, es basa en Python. Tot i que la guia de MicroPython pot afirmar que l'eina només funciona amb Python 2.7, he pogut executar-la a Python 3 sense cap problema. Descarregueu la versió més recent de Python des de https://www.python.org i seguiu les instruccions d’instal·lació del vostre PC o Mac.

Per últim, haureu d’instal·lar MicroPython a Wemos. El lloc MicroPython té un excel·lent tutorial sobre com configurar MicroPython a ESP8266. Simplement seguiu les instruccions d’instal·lació a Introducció a MicroPython a l’ESP8266.

A continuació es mostren les ordres que he fet servir:

$ esptool.py --port /dev/tty.wchusbserial640 erase_flash

esptool.py v1.3 Connexió…. S'està executant el flaix de Cesanta … Esborrar el flaix (pot trigar una estona) … L'esborrat ha trigat 10,5 segons

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin

esptool.py v1.3 Connexió…. S'està executant el flaix de Cesanta … Els paràmetres de flaix s'estableixen a 0x0240 S'han escrit 589824 bytes a 0x0 en 50,8 segons (92,8 kbit / s) … Sortint de …

MicroPython ja està instal·lat al vostre tauler.

Pas 5: configureu la xarxa

Configuració de la xarxa
Configuració de la xarxa

Tot i que ara MicroPython està instal·lat al vostre Wemos, encara no està connectat a la vostra xarxa. Primer haureu d’habilitar la xarxa. Al Mac, executeu l'ordre SCREEN per iniciar la sessió del terminal sèrie a Wemos.

$ screen /dev/tty.wchusbserial640 115200

Quan vegeu una pantalla en blanc, premeu RETORN per veure una sol·licitud:

>>

(Nota: per sortir, escriviu CTRL-A CTRL-)

Ara, activem l’accés de client web. Escriviu "import webrepl_setup" per executar el programa de configuració. Introduïu E per activar WebREPL i, a continuació, configureu la contrasenya. Reinicieu per activar els canvis.

>> importació webrepl_setup

Estat d'inici automàtic del dimoni WebREPL: desactivat Voleu (E) habilitar o (D) habilitar-lo executant-se a l'arrencada? (Línia buida per sortir)> E Per habilitar WebREPL, heu d'establir la contrasenya Nova contrasenya: xxxxx Confirmar contrasenya: xxxxx Els canvis s'activaran després del reinici. Voleu reiniciar ara? (sí / n) y

Per últim, descarregueu el client Webrepl al vostre equip. Això és opcional, però el client inclou altres eines útils que és possible que vulgueu utilitzar més endavant. Per exemple, webrepl_cli.py és una ordre per copiar fitxers a Wemos en sintaxi similar a scp. Utilitzeu git per descarregar el client. (Instal·leu l'eina git si encara no la teniu.)

git clone

Obriu el navegador web i, al camp URL, introduïu la ubicació del fitxer del client webrepl descarregat, com ara:

fitxer: ///Users/xxxxx/wemos/webrepl/webrepl.html

Això hauria de mostrar el client webrepl al vostre navegador. Abans de connectar-vos-hi, primer us heu de connectar al seu punt d’accés WIFi. Si mireu la WIFI disponible per al vostre ordinador, veureu que una xarxa comença amb MicroPython-xxxx. Connecteu-vos a aquesta xarxa. (Advertiment: un cop us connecteu a aquesta xarxa, perdreu l'accés a Internet.)

Torneu al vostre client webrepl i feu clic a Connecta. Hauria de demanar una contrasenya. Introduïu la vostra contrasenya de Wemos i hauríeu de connectar-vos.

Benvingut a MicroPython!

Contrasenya: WebREPL connectat >>>

El vostre Wemos continua funcionant en mode AccessPoint. Tot i que està bé, prefereixo que funcioni en mode d’estació, on es connecta a la xarxa Wi-Fi de casa meva, de manera que el meu ordinador pugui accedir-hi a través de la Wi-Fi domèstica i tingui accés a Internet. Per fer-ho, haureu de crear un fitxer anomenat boot.py amb configuració de xarxa i penjar-lo a Wemos.

Aquí hi ha una mostra boot.py. Canvieu el ssid i la contrasenya a la vostra xarxa WIFI de casa. A més, vull donar-li una IP estàtica de 192.168.0.32. Canvieu-lo a l'adreça IP disponible de la vostra WIFI domèstica.

boot.py (el podeu descarregar des de baix)

importar gc

import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) if not sta_if.isconnected (): print ('connecting to network …') sta_if.active (True) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') mentre no sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Utilitzeu el formulari "Enviar un fitxer" del client Webrepl per enviar el fitxer boot.py al vostre Wemos. Premeu el botó de reinici per reiniciar. Si encara esteu connectat mitjançant USB mitjançant l’ordre SCREEN, veureu:

connectant-se a la xarxa … configuració de xarxa: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') El dimoni WebREPL va començar a ws: //192.168.4.1: 8266 El dimoni WebREPL va començar a ws: //192.168.0.32: 8266 Webrepl iniciat en mode normal no ha pogut obrir el fitxer 'main.py' per llegir MicroPython v1.8.7-7-gb5a1a20a3 el 09-01-2017; Mòdul ESP amb ESP8266 Escriviu "help ()" per obtenir més informació. >>>

Això valida que el vostre Wemos estigui connectat a la vostra WIFI de casa mitjançant l'adreça IP de 192.168.0.32.

Podeu fer ping a aquesta adreça IP per validar-la.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 bytes de dades

64 bytes de 192.168.0.32: icmp_seq = 0 ttl = 255 temps = 9.334 ms 64 bytes de 192.168.0.32: icmp_seq = 1 ttl = 255 temps = 11.071 ms..

Pas 6: Instal·leu el programa principal

Instal·leu el programa principal
Instal·leu el programa principal
Instal·leu el programa principal
Instal·leu el programa principal

Per últim, haureu d’instal·lar el programa principal que continuarà funcionant al vostre Wemos.

Torneu al navegador web i executeu el programa client webrepl. Canvieu l'adreça IP a l'adreça IP del vostre Wemos. En el meu cas, ara és 192.168.0.32. Introduïu la vostra contrasenya de Wemos i ara hauríeu d'estar connectat a Wemos.

Carregem el programa main.py adjunt. Baixeu-vos el fitxer adjunt al vostre ordinador. Feu clic a Tria un fitxer per triar el main.py descarregat i feu clic a Envia al dispositiu.

Haureu de prémer el botó Resta per carregar el programa main.py. Després de prémer el botó Restableix, veureu:

s'està connectant a la xarxa …

configuració de xarxa: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

El dimoni WebREPL es va iniciar a ws: //192.168.4.1: 8266 El dimoni WebREPL va començar a ws: //192.168.0.32: 8266 S'ha iniciat el webrepl en mode normal Escoltant, connecteu el navegador a …

Això significa que el vostre programa main.py està activat i apareix al port 80.

Per provar, obriu el navegador web i introduïu

S'hauria de mostrar la pantalla de control del cotxe tal com es mostra al vídeo. Si els cables estan connectats correctament, els botons de control enviaran senyals adequats als ports GPIO per moure el cotxe.

Pas 7: Millores futures

A la llista v2 es troben els següents elements pendents:

  • Utilitzeu PWM per controlar la velocitat del motor
  • Millorar la interfície web. Potser utilitzeu un marc aREST. No crec que aREST lib estigui disponible a MicroPython en aquest moment, així que és possible que hagi de piratejar-lo.

Gràcies per llegir aquest instructiu. Segueix-me a Facebook, Youtube i Instructables per obtenir més projectes en el futur.

Recomanat: