domenica 19 novembre 2017

Christmas Lights with WS2811 strip and RemoteXY app










Few days ago a friend of mine described me a project he was doing with his son and a led strip and Arduino.

As always small projects with lights or sounds are very interesting for young kids as they stimulate their fantasy and capture their attention.

Based on that I have decided to buy the same  RGB Led Strip WS2811 12mm  5V  from Amazon:






Led Strip

The led strip is made of 50 led RGB WS2811 which are individually addressable. The strip is solid and built with good quality and made for external use.

As Christmas Holidays period is approaching I think this is the perfect project to develop with my daughter: Lights for a Christmas tree which is programmable from a mobile app.



Mobile App

The mobile app is based on RemoteXY  service and it is quite simple.  It provides a vertical switch with 10 different button options.

Each button is associated to a different light effect implemented on the strip.

The full RemoteXY project is available here

In addition I have shared the entire source code on my GitHub 
















Circuit

The figure below shows the connection of the different components






As you can see the led strip has been represented by a single WS2811 led.
In place of the battery pack I have used a mobile phone charge (5V 1 A)

Note:
if you have a more powerful charger (like 2A) please use it as it will get to lower temperature of operations 


It is very important to note that the negative (-) wire from the charger is connected to the GND pin of nodeMCU in order to allow the proper behavior of the led strip.

The data line of the strip is connected on pin D4 by a 470 Ohm resistor.

I have also added a 1000 uF capacitor between the power wires of the strip. 
The capacitor is not strictly mandatory but highly suggested in order to avoid possible tension spike at the input of the strip.


Implementation

Below some picture of my implementation







For the sake of simplicity I have mounted the nodeMCU on a breadboard. A strip board would be good as well.










Above the detail of the connection of the data line pin of the strip.






Here some details of the connection between the charger (black wires on the left) and the strip wires (white and red on right). As you can see the cap is plug and the blue wire is connected between the nodeMCU GND pin and the negative (-) power wire.





Test

Below you can see the led strip on the wall of my studio ready for testing.
According to Italian tradition I cannot have the xmas tree before December 8th :) so I need to wait few more weeks to install the led strip on the tree :)







Here the video showing all the 10 different lighting effect implemented in this project.






Obviously you can implement your own lighting effects and the limit is only your fantasy.
If you want share your effects so it can help other people.






Luci di Natale con striscia led WS2811 e App Mobile RemoteXY










Alcuni giorni fa' un mio carissimo amico mi ha parlato di un gioco carino che stava facendo con suo figlio con una striscia led programmabile ed Arduino.

Come sempre i progetti con luci e suoni sono adattissimi ai piu' piccoli in quanto catturano la loro attenzione e stimolano la loro fantasia. 

Allora ho deciso anche io di comprare la stessa Striscia RGB Led WS2811 12mm a 5V da Amazon:






Striscia Led

La striscia led e' composta da 50 led RGB WS2811 e quindi indirizzabili singolarmente. La striscia e' realizzata bene ed ogni Led e' protetto per uso esterno.

In questo periodo pre Natalizio e' il progetto perfetto da fare con mia figlia: realizzare delle luci di Natale per il nostro albero che siano programmabili tramite un'app mobile.




App Mobile

L'app mobile e' realizzata con RemoteXY  ed e' molto semplice.  Fornisce un selettore verticale con 10 possibili scelte.
Ogni scelta corrisponde ad un effetto luminoso differente.

Il progetto RemoteXY e' disponibile qui

Inoltre ho condiviso tutto il codice disponibile sul mio GitHub 
















Circuito

Nella figura sotto lo schema delle connessioni





Come potete vedere la striscia led e' rappresentata da un solo led WS2811.
Per il pacco batterie io ho utilizzato un caricatore per cellulare da 5V 1A.

Nota:
Se avete a disposizione un caricatore che puo' erogare piu' corrente utilizzatelo in modo da evitare possibili surriscaldamenti.


E' importante notare come il meno (-) dell'alimentazione vada collegato con il pin GND del nodeMCU in modo da far funzionare correttamente la striscia.

La linea dati della striscia e' collegata al pin D4 tramite un resistore da 470 Ohm. 

Ho anche aggiunto un condensatore da 1000 uF tra i fili di alimentazione della striscia. 
Il condensatore non e' strettamente obbligatorio ma consigliato per evitare sbalzi di tensione ai capi della striscia.


Realizzazione

Sotto le foto della mia realizzazione 







Per praticita' ho montato il nodeMCU su una breadboard. Una scheda millefori andrebbe bene ugualmente.












Sopra il dettaglio della connessione del pin dati della striscia led.





Sopra il dettaglio dei collegamenti tra i fili del caricatore per cellulare (neri a sinistra) e i fili (bianco e rosso) di alimentazione della striscia. Come potete vedere e' presente il condensatore e il filo blu che proviene dal pin GND del nodeMCU.

Io ho utilizzato un mammut ma altre soluzioni sono possibili in caso ne siate sprovvisti.








Test

Sotto potete vedere le luci appese alla parete del mio studio pronte per essere testate.
Ovviamente dopo 8 Dicembre le montero' sull'albero ma per il momento non e' possibile. :)






Qui il video che dimostra i 10 effetti luminosi implementati in questo progetto.





Chiaramente potete sbizzarrirvi con la fantasia ed implementare altri effetti luminosi. 
Se lo fate condivideteli qui sul blog cosi' ne potranno beneficiare tutti









giovedì 16 novembre 2017

Remote Control a 2 Channel Relay board with RemoteXY











A recurring question on some Arduino and ESP groups on Facebook goes like: "how to remotely control a relay?"

In this post I show a simple and quick way to remotely control a 2 Relay module through a mobile app using the RemoteXY service.

Pre-requisite to this post is a previous I have written : "Remote Control NodeMCU with RemoteXY" in which I introduce the development of mobile apps to control nodeMCU projects.


The Circuit





As shown in the above figure, the 2 Channel Relay module has 4 pins:

  • GND
  • IN1
  • IN2
  • Vcc

Those pins need to be wired in the following way:

  • Module: GND --> nodeMCU:GND
  • Module: IN1 --> nodeMCU:D4
  • Module: IN2 --> nodeMCU:D5
  • Module: Vcc --> nodeMCU:Vin

Note:

Those wire connections assume that the nodeMCU is powered with 5V.
In such situation on the module Vin pin there will be 5V which is the right voltage to provide to the Relay module.

If you power you nodeMCU with a different voltage, please make sure you adapt the voltage available on Vin to be exactly 5V.



Graphic Interface






Build this simple graphic interface by using 3 labels and 2 switch in the RemoteXY editor.

The switch si should be named:
  • switch_1
  • switch_2

Now in the configuration panel, bottom right, let's configure each switch in a way that they connect to pin D4 and D5 on the nodeMCU














Configuration 

Let's configure RemoteXy in this way





Don't forget to specify your WiFi name and password






Source Code


Here the link  of the shared RemoteXY project. Once on RemoteXY you can download the source code to upload on your nodeMCU


Testing


Below a short video showing the behavior of the application












Controllo Remoto di un modulo Relay a 2 canali con RemoteXY











Una domanda ricorrente sui gruppi Arduino e ESP di Facebook e': "come controllo un rele' da remoto?"

In questo post faccio vedere un modo semplice e veloce per controllare un modulo a 2 Rele' tramite un applicazione mobile sfruttando un servizio chiamato RemoteXY.

Questo post si basa sui concetti descritti in un mio post precedente: "Controllo Remoto di NodeMCU con RemoteXY - Accensione Led" in cui ho introdotto lo sviluppo di una semplice app per controllo remoto di un nodeMCU.


Circuito Elettrico





Come si vede in figura il modulo Relay a 2 canali espone 4 pin


  • GND
  • IN1
  • IN2
  • Vcc

Questi pin vanno collegati nel seguente modo:

  • Modulo: GND --> nodeMCU:GND
  • Modulo: IN1 --> nodeMCU:D4
  • Modulo: IN2 --> nodeMCU:D5
  • Modulo: Vcc --> nodeMCU:Vin

Nota:

Questi collegamenti assumono che il nodeMCU sia alimentato a 5 V.
Cio' significa che sul pin Vin ci saranno 5V adatti ad alimentare il modulo Releay.

Se alimentate il vostro nodeMCU con una tensione differente assicuratevi di adattare la tensione in modo che sul pin Vcc del modulo Releay ci siano 5 V








Interfaccia Grafica





Realizzate questa semplice interfaccia grafica dall'editor di RemoteXY usando 3 label e 2 switch.

Gli switch si devono chiamare:
  • switch_1
  • switch_2

Ora nel pannello di configurazione in basso a destra, configurate ognuno degli switch in modo da collegarli ai pin D4 e D5 di nodeMCU














Configurazione

Configurate RemoteXY in questo modo




Non dimenticatevi di impostare il nome della vostra rete WiFi e la password di accesso.





Codice


Qui il link del progetto condiviso su RemoteXY da cui potete scaricare il codice da caricare sul vostro nodeMCU


Funzionamento


Qui un video che dimostra il funzionamento dell'applicazione











lunedì 30 ottobre 2017

The EggPainter


In this post I describe how I have realized the EggPainter and I show all the steps in a video
Then I show how to test the EggPainter and how to print on some eggs and some table tennis ball







Building Steps

In the below video all the necessary steps to build the EggPainter from scratch. In the remaining part of the post some additional details and useful information










Egg Painter

The EggPainter is a full project available on githiub. Its creator has shared all the necessary elements to build the EggPainter project







In order to realize the EggPainter project the following components are mandatory:
  • Arduino Uno
  • Stepper motors
  • Case
  • Supporting components


A key characteristic of this project is that all the STL file for 3d printing have been provided by the author. In other words a user can print with a normal 3d printer all the necessary elements to build the project. Obviously the Arudino and other electronic or mechanical components should be procured elsewhere.


Kit

The Kit I have used (I didn’t print it myself) is coming from Russia and when I have open it looked like that:












As it is possible to see all the necessary components to build the EggPainter are available in this kit








Disclaimer:

During the building of the EggPainter I have faced a major problem with this kit. Once I have closed the case with the bolt and nuts the remaining space for wiring it was absolutely not enough. In other words I was not able to properly close the case with the original kit.








For this reason I have thrown away all the provide cabling and rebuild it from scratch. In any case for a maker with some basic capabilities it should not be a complex task.
Below the EggPainter fully assembled after my modifications 















Firmware

The EggBot firmware is available here
Let’s now follow the below steps:
  1. Download the .zip file and unzip it in a preferred directory 
  2. Open the EggDuino.ino file in the Arduino IDE
  3. Compile the code and upload it to your Arduino Uno
  4. Quit from the Arduino IDE

At this stage the controlling software of the EggPainter is fully loaded on Arduino control board.








Printing Software

In order to print some vector art drawing it is necessary to instruct the Arduino board with the proper commands. This can be achieved through the use of a software called InkSpace.
Perform the following steps:
  1. Download Inkspace from here (Note:windows user should download 32 bit version)
  2. Install Inkspace and run it
  3. Download the EggBot extension from here 
  4. Unzip the file and copy its content in the directory shown here Edit > Preferences > System: User
  5. Restart InkSpace

If the above steps have been successfully completed you should see EggBot in the Extension menu







Testing

Now we can move into testing phase as we have all the necessary elements to operate the EggPainter
In the below video I show how to test the EggPainter and check that all the motors are properly working.
The test is executing from the Manual tab in the EggBot menu







If everything works fine and the pen is goin up and down, the horizontal and pen motors spin in two directions then the EggPainter is ready for printing

Stampa

In order to print let’s import a SVG file in Inkspace (File menu -> Import) and let’s adapt the drawing area to:
  • 3200 x 800 px for eggs
  • 4150 x 600 for table tennis balls

I really suggest you to experiment with those values and to find the right one for your print.
Below some pictures and video of printing done by me
















Happy Egg Printing everyone!!! :)







domenica 29 ottobre 2017

Kit EggPainter


Alcuni giorni fa' il FabLab Pavone di Torino mi ha gentilmente fornito un Egg Painter che e' un clone dell'original EggBot.

In questo post descrivo come ho realizzato l'Egg Painter e faccio vedere in un video tutti i passaggi.

Alla fine effettuo anche il test e poi stampo su delle uova e su delle palline da ping pong.








Montaggio

Ecco qui il video completo del montaggio. Nel resto dell'articolo i dettagli e altre informazioni utili














Egg Painter

Questo Egg Painter e' un progetto completo disponibile su githiub. Il suo autore ha condiviso tutti gli elementi necessari per realizzare l'Egg Painter.






Per realizzare l'EggPainter sono necessari i seguenti elementi principali:

  • Arduino Uno
  • Motori passo-passo
  • Involucro
  • Supporti

La particolarita' di questo progetto e' che il suo creatore fornisce i file STL per l'involucro e per i supporti in modo da poterli stampare con una normale stampante 3D



Kit

Il kit da me utilizzato e' stato acquistato dalla Russia e alla sua apertura si presenta cosi':


















Come si puo' vedere include tutti i componenti necessari per assemblare l'EggPainter







Nota Importante:

Ho personalmente riscontrato un gravissimo problema con questo kit. Una volta chiuso l'involucro con le apposite viti lo spazio per i fili del cablaggio e' assolutamente insufficiente.








Per questo motivo ho dovuto rifare tutto il cablaggio da zero e NON ho potuto usare i fili forniti nel kit in quanto inadeguati.

Tuttavia questo per uno smanettone con un po' di manualita' non e' un problema.


Ecco qui l'EggPainter completamente assemblato e pronto per il primo utilizzo

















Firmware

Il software da caricare e' disponibile qui

Ora seguite i seguenti passi:


  1. Scaricare il file .zip e scompattatelo in una directory a piacere.
  2. Aprire il file EggDuino.ino nell'IDE Arduino
  3. Compilare il codice e caricarlo su Arduino Uno
  4. Chiudere l'IDE Arduino

In questo modo abbiamo caricato il software di controllo dell'EggPainter sulla scheda Arduino Uno contenuta nel EggPainter stesso.








Software di Stampa

Per poter stampare e' necessario fornire alla scheda Arduino Uno i comandi corretti.
Per fare questo utilizziamo un software che si chiama InkSpace.

Eseguite le segueenti operazioni:
  1. Scaricate Inkspace da qui (Nota: per gli utenti Windows scaricate la versione a 32 bit)
  2. Installate Inkspace e lanciatelo
  3. Ora scaricate l'estensione EggBot da qui
  4. Scompattatela e copiate i file nella directory indicata qui Edit > Preferences > System: User
  5. Riavviate InkSpace

Se tutto e' stato eseguito correttamente dovreste vedere EggBot nel menus Extension






Test

Ora abbiamo tutti gli elementi per verificare se il nostro EggPainter funziona.
Nel video faccio vedere come testare il funzionamento dei vari motori dell'EggPainter. Per farlo basta andare nel menu Manual dell'estensione EggBot





Se tutto funziona correttamente, se la penna va su' e giu', se il motore orizzontale gira in entrambe le direzioni e se il motore della penna gira in entrambe le direzioni allora sei pronto per la stampa.


Stampa

La stampa avviene da InkSpace importando un file SVG e adattandolo all'area di stampa.

Per la stampa su uovo settare le dimensioni dell'area di stampa a: 3200 x 800 px

Mentre per la stampa su palline da ping pong impostare l'area di stampa a 4150 x 600 px

Tuttavia dovete sperimentare e trovare le impostazioni piu' corrette per il vostro EggPainter


Di seguito alcune foto delle fasi di stampa ed il video della stampe che ho effettuato














Buona Egg Stampa a tutti!!! :)