Interface
&
Badge

hmmm... To PIE or not to BE ;-)

Wissel volledig scherm

PIE Elektrotechniek.
Leren door spelen met een Arduino interface.

TM 1638 V1.3


Arduino Nano


TM 1638 V1.1

Arduino Nano... 'use to learn' en 'learn to use'
 
     Snel naar...
     Voorwoord

Eerder heb ik al eens het één en ander gemaakt waarbij de TM1638 V1.1, die erg goedkoop is, gebruikt werd. De Digitale Arduino Klok is op zich een heel betaalbaar werkstukje, maar een 'goede' behuizing had ik nog niet gemaakt.

Getriggerd door de badge, welke bij het bezoek aan de NOT altijd gebruikt wordt, ontstond de gedachte aan een elektronische badge. Hier zou bijvoorbeeld een naam of een statement (lichtkrant) op weergegeven kunnen worden.

Bij eerdere projecten bleek het bedraden van de verschillende onderdelen, Arduino, TM1638 en DS1302 toch wel een probleempje waar een oplossing voor gevonden diende te worden.

Door het weglaten van de DS1302 en gebruik te maken van connectoren met een complete kabel, is het aansluiten sterk vereenvoudigd.

Een powerbank met USB kabel geeft ook te veel losse componenten. om het geheel als electronische badge / lichtkrant te kunnen gebuiken. Daarom bestaat de voeding uit een 3,7 Volt batterij met een diode. Het blijkt dat ondanks de diode (-0,7 Volt) er voldoende spanning over blijft voor de Arduino en de aangesloten onderdelen. Eventueel kunt u nog een Schottky diode gebruiken, wat ongeveer 0,3 Volt zou kunnen schelen.

Er zijn aparte behuizingen voor de TM1638 V1.1, V1.2, V1.3 en de Arduino Nano met een batterij, welke met een vijf polige lintkabel met elkaar verbonden kunnen worden.

De Arduino Nano, connectoren en een diode worden op een speciaal PCB gesoldeerd, welke precies in de bijbehorende behuizing past..

Wanneer de Arduino Nano met een USB kabel op een computer aangesloten wordt, kan het geheel ook als interface gebruikt en kunnen ook de badge teksten aangepast worden.

     Toepassingen

De breedte en toepasbaarheid van dit project kan niet in enkele zinnen samengevat worden, wel wordt getracht één en ander, mede door de onderstaande links, te verduidelijken.

USE to LEARN
Digitale Technieken.
Mede met behulp van software en de computer en interface (USE to) leert de leerling de werking van En / OF/ NIET schakelingen, logische symbolen, enz. (to Learn).
De drukknoppen van de interface worden gebruikt om de op het scherm afgebeelde schakelaars in de schakelingen te bedienen en de leds op de interface tonen het 'resultaat' van de schakelingen.

EasyProgIntFace.
Het EasyRelais is een programmeerbaar besturingsapparaat welke in de metaal/elektro afdelingen veel gebruikt wordt. Meestal is voor Kader en GL leerlingen een opdracht hierover in het examen opgenomen. Het EasyRelais wordt via Ladder geprogrammeerd.

Met het programma EasyProgIntFace kan op zeer eenvoudige manier de interface (Use) in ladder (to Learn) geprogrammeerd worden. Het bedienen van de uitgangen (leds) kan door middel van de drukknoppen, eenvoudig geprogrammeerd worden.

Ook de MecLab stations van Festo, zoals bijvoorbeeld de Transportband, kunnen hiermee geprogrammeerd en bestuurd worden. Door het gebruik van geluidjes enz. wordt het voor de leerlingen extra aantrekkelijk. Filmpje van de transportband samen met de DoBot.

LEARN to USE
Wanneer de leerling de interface gemaakt heeft, moet er een programma in de Arduino gekopieerd worden. Dat wordt met behulp van het programma Xloader gerealiseerd.

Daarna wordt met behulp van het programma TestArduinoNano getest of de interface naar behoren werkt.

Door het aanpassen van de statements leert de leerling het programma aan te passen.

USEFUL?!
Wanneer het werkstukje niet alleen nuttig, maar ook leuk is om te gebruiken, wordt de aantrekkelijkheid er ook nog van vergroot. Dit kan bijvoorbeeld door er een lichtorgel van te maken.

StartByIntFace is een toepassing om zonder een combinatie van toetsen op het toetsenbord het volume te regelen en/of programma's te starten via een TM1638 V1.1, V1.2 of V1.3 interface.

     Aansluitingen van de Arduino

De Arduino moet volgens het onderstaande schema, aangesloten zijn op een TM1638 V1.1, v1.2 of V1.3.

Arduino
TM1638
PIN
Aand,
V1.1
V1.2
V1.3
27
+5V
VCC
VCC
VCC
4 of 29
GND
GND
STB
GND
5
D2
STB
CLK
DIO
6
D3
CLK
DIO
CLK
7
D4
DIO
GND
STB

 

     PCB (Printed Circuit Board)

Op het PCB wordt/worden...

- de Arduino Nano
- drie 5-pin connectoren
- een 3-pin connector en
- een diode

gesoldeerd.

De diode voorkomt dat de Arduino de batterij probeert te laden wanneer de USB kabel aangesloten is.

Het printje (64 x 35 mm.) past samen met een batterij in een speciale behuizing.

Om de aansluitingen eenvoudig te houden is er gekozen voor 3x 5 pin aansluitingen. Het voordeel van deze layout is dat voor de TM1638 v1.1, v1.2 en v1.3 dezelfde flat cable gebruikt kan worden.

De .ino bestanden (software voor de Arduino) voor V1.1 en V1.3 zijn anders dan die voor V1.2.

Download Fritzing bestand... (voor PCB)
Arduino connectors 03.fzz

 


     Connectoren voor PCB - TM1638 V1.1 / TM1638 V1.3

De aansluitingen van de modules worden met
5-pin haakse connectoren uitgevoerd. Deze is eenvoudig op de TM1638 V1.3 te solderen, maar bij de TM1638 V1.1 en V1.2 moeten eerst de 5-pin headers los gesoldeerd worden.

Helaas zijn de aansluitingen van V1.1, V1.2 en V1.3, voor wat de bedrading betreft, niet gelijk.

Daarom is het PCB is met drie connectoren (V1.1, V1.2 en V1.3) uitgevoerd en kan dezelfde flatcable gebruikt worden.

     Bedrading

De bedrading tussen het PCB en de TM1638 modules wordt uitgevoerd met een flatcable.

Deze zijn in veel verschillende lengtes verkrijgbaar en zijn behoorlijk ongevoelig voor breuk enz.

Link

     Behuizing PCB / Batterij

De behuizing wordt met behulp van een 3D printer gemaakt. De hiernaast afgebeelde behuizing heeft uitsparingen voor twee 5-pins connectoren (V1.1 en V1.3) en een USB kabel.

Voor de batterij (3,7 Volt) moeten er aan twee kanten boutjes, twee draadjes (+ en -) en aan een kant een veertje gemonteerd worden. Met een 3-pins connector wordt de batterij op het printje aangesloten.

Op internet zijn batterijclips te vinden.

Zojuist heb ik daar een paar van besteld.

Wanneer het PCB net te strak in de behuizing gedrukt moet worden, dan kan deze met een vijl bijgewerkt worden. Het is belangrijk de vier hoeken van het PCB een beetje te afronden.

Downloads... Solid Edge 2022 29-1-2023
Behuizing Arduino Batterij 06.par
Behuizing Arduino Batterij 06.stl

Omdat de bovenstaande methode voor het plaatsen van de batterij lastig te monteren is het de bedoeling de hiernaast staande batterijhouder te gebruiken en die in de behuizing te plaatsen.

De maten zijn l = 57,25 b = 16,57 h = 15 mm. De behuizing zal dus aangepast moeten worden. Op het printje zal dan een schroefbare/klem connector geplaatst kunnen worden.

 

     Behuizing TM1638 V1.1

Voor deze versie zijn meerdere behuizingen beschikbaar.

De badge is uiteraard zo plat mogelijk gehouden en blijft de interface volledig zichtbaar. Op zich kan de badge ook prima als tafelmodel gebruikt worden.

Het tafelmodel kent verschillende uitvoeringen. Bij één daarvan is de interface 'onzichtbaar' in de behuizing opgenomen.

De badge behuizing voor de TM1638 V1.1 is uiteraard kleiner dan die van de V1.3 versie.

In de gaten of sleuf aan de bovenkant, kan een keycord of knijper vastgemaakt worden.

De uitsparing aan de linkerkant is voor de 5-pin connector.

Downloads... Solid Edge 2022

Behuizing TM1638 v1_1 03.par
Behuizing TM1638 v1_1 03.stl

Op mijn eigen printer met PLA blijkt dat de uitsparing voor het printplaatje 0,4-0,6 mm. kleiner is dan metABS. Hieronder de download met iets grotere maten. (9-2-2024)

Behuizing TM1638 v1_1 04 PLA.par
Behuizing TM1638 v1_1 04 PLA.stl

't Is soms een kwestie van 'proberen en missen' ofwel 'gissen en missen'.


Badge behuizing voor TN1638 V1.1

Er is ook een behuizing waarbij de TM1638 v1.1 geheel ingesloten is.

Deze bestaat uit meerdere geprinte onderdelen. Op deze manier kan er ook nog een tekst op de behuizing geplaatst worden.

Downloads... Solid Edge 2022
Behuizing TM1638 v1_1 case 04.par
Behuizing TM1638 v1_1 case 04.stl

Naamplaat TM1638 v1_1 01.par
Naamplaat TM1638 v1_1 01.stl

De drukknopjes vallen meer op met een iets uitstekend gekleurd deeltje.

Behuizing TM1638 v1_1 case 06.par
Behuizing TM1638 v1_1 case 06.stl

knopje TM1638 v1_1 01.par
knopje TM1638 v1_1 01.stl

Naamplaat TM1638 v1_1 01.par
Naamplaat TM1638 v1_1 01.stl


Behuizing versie 04

 


Behuizing versie 06

     Behuizing TM1638 V1.2

Voor deze versie is één behuizing beschikbaar.

Let er op dat de 5-pin connector aan de onderkant geplaatst wordt. In de bijbehorende behuizing wordt de flat cable aan de achterkant naar buiten gevoerd.

De benodigde software wijkt behoorlijk af van V1.1 en V1.3.

Deze interface is niet geschikt voor het programma Digitale Technieken omdat het gelijktijdig indrukken van meerdere knoppen niet ondersteund wordt.

Wanneer u StByInFa.ino gebruikt, moet de bibliotheek TM1638plus_Model2.h in de IDE omgeving geïnstalleerd zijn. In StByInFa.hex zitten de alle benodigde bibliotheken in één bestand.

De behuizing voor de TM1638 V1.2 heeft een desktop opstelling. Op zich zijn hiermee de teksten en leds beter zichtbaar.

Download...

Solid Edge 2022
Behuizing v1_2.par
Behuizing v1_2.stl

 



Desktop behuizing TM1638 V1.2

     Behuizing TM1638 V1.3

Versie 1.3 is in vergelijking met V1.1 groter en voorzien van twee kleuren leds.

Op zich zijn deze, op de aansluitingen na, nagenoeg compatible. Op dit moment maken alleen de programma's Lichtorgel en Test Arduino Interface gebruik van de twee kleuren leds.

TM1638 V1.3 platte behuizing...

De behuizing voor de TM1638 V1.3 is uiteraard groter dan van de V1.1 versie.

De uitsparing aan de bovenkant is voor de 5-pin connector.

Deze is geschikt om te gebruiken als eenvoudige interface behuizing.

Downloads... Solid Edge 2022
Behuizing TM1638 v1_3 01.par
Behuizing TM1638 v1_3 01.stl

TM1638 V1.3 Desktop behuizing...

Voor het 3D printen gebruikten wij op school veelal ABS, maar hadden veel moeite om te voorkomen dat de hoeken omhoog kwamen.
Momenteel gebruik ik PLA waarmee dat probleem opgelost is, maar ik moet nu rekening houden met krimp. Voor het hiernaast afgebeelde werkstuk scheelde dat voor de breedtemaat van het printje zo'n 0,4 mm.

Downloads... Solid Edge 2022
Behuizing TM1638 v1_3 01 Desktop.par
Behuizing TM1638 v1_3 01 Desktop.stl

 


Behuizing TM1638 V1.3

 



Desktop behuizing TM1638 V1.3

     Test of de Interface goed werkt

Wanneer de Interface met een TM1638 V1.1 of V1.3 gemaakt is, kan deze met het onderstaande Windows programma getest worden. (Dit programma is niet geschikt voor het testen van V1.2!)

Uit de afbeelding (mouseover) valt het volgende op te maken.

  • de Arduino Nano is verbonden via Com 30
  • de lumileds zijn gewone leds geworden.
  • de leds E3, E5, E7 en E8 van de TM1638 V1.1 zijn aan
  • de trimmers van de ingangen zijn drukknoppen geworden
  • alleen ingangen S3, S6 en S7 worden bediend (Oeps een foutje, 2 x S6...)
  • Ingangen 6-8 zijn in dit testprogramma opgenomen

Download Handleiding.pdf (Wordt nog verder aan gewerkt)

Download voor Windows... 15 februari 2024 (22:23 u.)
Setup Test Arduino Nano.exe II of
Setup Test Arduino Nano.zip II

Om het programma te kunnen gebruiken moet wel eerst het bestand Send Tekst.ino.hex in de Arduino geladen worden en uiteraard volgens het schema, aangesloten zijn op een TM1638 V1.1 of V1.3.

Na het uploaden van Send_Tekst.hex in de Arduino zal op de display in out komen te staan.

Download voor Arduino...
Download Xloader samen met de .hex bestanden. (Send_Tekst.ino.hex, Scroll_Tekst.ino.hex en Klok.ino.hex)
Uitpakken en start XLoader.exe, de .hex bestanden staan in de map Badge.

Voor de Test Arduino Interface moet dus Send_Tekst.ino.hex in de Arduino geladen worden.

     Badge. Maak een statement!

30 februari 2024
Vandaag heb ik tijdens het bezoek van basisschoolleerlingen de badge gebruikt als naamplaatje. Het viel wel op, maar collega's vragen verder niet naar het hoe of wat. Leerlingen juist wel,
- wat is het?
- hoe werkt het?
- hoe is het aangesloten?
- gebruikt u misschien een Arduino?
- enz.
Fijn dat de doelgroep er inderdaad belangstelling voor blijkt te hebben.

Het bleek trouwens dat de badge niet makkelijk zichtbaar blijft bij het gebruik van een keycord. Ik heb hem daarom maar met twee binder clips vastgezet.

De TM1638 V1.1 en V1.3 zijn geschikt om gebruikt te worden als badge. Wanneer het PCB net te strak in de behuizing gedrukt moet worden, dan kan deze met een vijl bijgewerkt worden.

Na het uploaden van Scroll_Tekst..ino.hex in de Arduino, zal op de display de tekst THE QUESTION IS... enz. als lichtkrant getoond worden. Door de beperkte matrix worden hoofd- en kleine letters doorelkaar gebruikt. Soms is enige fantasie nodig om bepaalde letters te ontcijferen.

Het vedient aanbeveling de teksten aan te passen, dat kan alleen met het Scroll_Tekst.ino bestand.

De functies van de de drukknoppen TM1638 V1.1 en V1.3 S1 tot en met 8 zijn...

  1. TTHE QUESTION IS... To PIE Or Not To BE Produceren - Installeren - Energie
  2. PIE IS METAAL... INSTALLATIE... EN ELEKTRO... TECHNIEK
  3. METEN IS WETEN, GISSEN IS MISSEN
  4. EduTechSoft - MetTech - Easy ReLais
  5. NIET GEMETEN IS ALTIjD MIS
  6. Scroll Snelheid Lager minimaal 50
  7. Scroll Snelheid Hoger maximaal 1000
  8. Helderheid Hoger tot 4, daarna Helderheid 1 enz..

Om bepaalde letters leesbaarder te maken worden hoofd- en kleine letters doorelkaar gebruikt.

De broncode staat op GitHub. Ik heb alleen code toegevoegd om met s6 en s7 de scroll snelheid en met s8 de helderheid aan te kunnen passen. Die code is hieronder te downloaden.

Download voor Arduino...
Scroll_Tekst.ino (.ino bestand zonder libraries)
Scroll_Tekst.zip (.ino bestand zonder libraries gezipt)
Scroll_Tekst.ino.hex (.hex bestand voor gebruik met XLoader)
Scroll_Tekst.ino.hex.zip (.hex bestand voor gebruik met XLoader gezipt)

Download Xloader samen met de .hex bestanden. (Send_Tekst.ino.hex, Scroll_Tekst.ino.hex en Klok.ino.hex)
Uitpakken en start XLoader.exe, de .hex bestanden staan in de map Badge.

Voor de Badge moet dus Scroll_Tekst.ino.hexin de Arduino geladen worden.

     Klok

Door het weglaten van de klokchip, welke gebruikt werd bij een eerder project, is het bedraden vereenvoudigd, maar is daarmee dan ook de klokfunctie verdwenen? Niet helemaal, er zijn een paar beperkingen.

In de Arduino kan namelijk ook de na het instellen van de tijd de huidige tijd berekend worden. Bij het aansluiten of na een spanningsuitval moet de klok dus weer geset worden.

Na het uploaden van Clock.ino.hex in de Arduino zal op de display de tijd beginnend met 00-00-01 weergegeven worden en daarna per seconde oplopen.

  • S1 en S2 - verhogen of verlagen van de uren
  • S3 en S4 - verhogen of verlagen van de minuten
  • S5 - set de seconden op 0
  • S6 - Display in- of uitschakelen
  • S7 en S8 - verlagen of verhogen van de helderheid

Er zijn wel een paar nadelen...

  • De klok is minder nauwkeurig
  • Wordt om de 50 dagen gereset
  • Geen datum en dagweergave

De broncode van deze klok staat op github. Ik heb alleen code toegevoegd om met s7 en s8 de helderheid aan te kunnen passen. Deze code is hieronder te downloaden.

Download voor Arduino
Download Xloader samen met de .HEX bestanden. (Send_Tekst.ino.hex, Scroll_Tekst.ino.hex en Clock.ino.hex)
Uitpakken en start XLoader.exe, de .hex bestanden staan in de map Badge.

Voor de klok moet dus Clock.ino.hex in de Arduino geladen worden.

     Lichtorgel

De Interface / Badge kan ook als lichtorgel toegepast worden. Niet het volume maar de frequenties van op de computer afgespeeld geluid, worden op het scherm en op een aangesloten interface weergegeven.

  • Er wordt nog aan een beschrijving en handleiding gewerkt. (Tijdelijke link)
  • Het lichtorgel bestuurt maximaal 6 veschillende interfaces. Oeps, links en rechts zijn verwisseld :-(

Download voor Windows...
Setup Lichtorgel Stereo v1.4.89.exe
Setup Lichtorgel Stereo v1.4.89.zip

Download voor Arduino...
Download Xloader samen met de .HEX bestanden. (Send_Tekst.ino.hex, Scroll_Tekst.ino.hex en Clock.ino.hex)
Uitpakken en start XLoader.exe, de .hex bestanden staan in de map Badge.

Voor het lichtorgel moet dus Send_Tekst.ino.hex in de Arduino geladen worden.

     StartByInterFace

Het programma StByInFa is een snel startmenu voor veelgebruikte Windows programma's.

Er kunnen 16 programma's geselecteerd worden waarmee dan met een muisklik of een van de knoppen van de interface programma's gestart kunnen worden.

Voor de TM1638 V1.2 wordt na het uploaden van StByInFa.ino.hex in de Arduino StByInFa op de display weergegeven.

Voor de TM1638 V1.1 en V1.3. wordt Send Tekst.ino.hex gebruikt.

De Windows software is voor alle versies wel gelijk.

De TM1638 V1.1 en V1.3 werken dus wel met het programma StartByIntFace, maar er zijn vanzelfsprekend maar 8 drukknoppen beschikbaar. Alleen de eerste 8 snelkoppelingen werken via de interface. De rest kan natuurlijk ook met de muis op het scherm gestart worden.

Voor de TM1638 V1.1 en V1.3 moet dus het bestand Send Tekst.ino.hex in de Arduino staan.

Download voor Windows... 20-5-2023
StartByIntFace Setup.exe
StartByIntFace Setup.zip

Handleiding 20-5-2023

Download Xloader samen met het .HEX bestand. (StByInFa.ino.hex)
Uitpakken en start XLoader.exe, het .hex bestand staat in de map Badge/TM1638 V1.2

Voor StByInFa met de TM1638 V1.1 en V1.3 moet Send_Tekst.ino.hex in de Arduino geladen worden, deze staat in de map Badge.

     CH380 windows driver

Wanneer de Arduino op een Windows computer aangesloten wordt, moet er eenmalig een driver geïnstalleerd worden.

Soms gaat dat automatisch maar het kan ook zijn dat de driver gedownload en handmatig geïnstalleerd moet worden.

Hiernaast staan links met meer informatie daarover.

Installeren en downloaden

CH340 Windows driver download en info

     Xloader en .hex bestanden

De .hex code kan niet aangepast worden. Wil je toch de code aanpassen, gebruik dan de .ino software/download. Een voordeel van het .hex bestand is dat de libraries er al in zitten.

De .hex software plaatst u als volgt in de Arduino...

  • Download XLoader met de .hex bestanden
    Alle benodigde .hex bestanden staan ook in dit bestand
  • Klik met de rechtermuistoets op het gedownloade bestand en pak het uit. (Alles uitpakken o.i.d.)
  • Start XLoader of XLoader.exe
  • Selecteer onder Hex file de map Interface en Badge
  • Selecteer het gewenste .hex bestand
  • Selecteer het juiste Device Uno(ATmega328)
  • De COM poort, dat kan een cijfer van 1 tot 256 zijn
    Geen cijfer?
    - Sluit de Arduino Nano aan op de computer!
    - Is de CH340 driver geinstalleerd?
  • Zorg ervoor dat de Baud rate op 115200 staat, wanneer het niet werkt selcteer dan bij Device een andere Baud rate en probeer het opnieuw.
  • Klik op Upload

Als het goed is wordt het gekozen .hex programma in de Arduino geladen en daarna meteen gestart.

Er kunnen zich problemen voordoen wanneer er bijvoobeeld een Old Bootloader gebruikt zou moeten worden. Op zich zou, voor zover ik het kan nagaan, alleen de Baud rate anders moeten zijn. Probeer bijvoorbeeld dan een van de andere Devices of stel de snelheid in op 57600 Baud.

Wanneer het uploaden vastloopt, trek dan even de USB steker los en en weer vast en probeer het dan met andere instellingen nog eens.

Bij mij werkte de instelling Uno(ATmega328) op Arduino's met Old en New, wat dus eigenlijk niet zou moeten kunnen.

     Arduino & Libraries

Een library (bibliotheek) is programma code die je kunt toevoegen (of meerdere) aan je eigen .ino code. Daarmee kunnen complexe functies eenvoudig toegevoegd en uitgevoerd worden.

Een gebruikte bibliotheek wordt aan het begin van het programma ingesteld. Er is verschil tussen het gebruikt van "" of <>. Bijvoorbeeld...

#include <TM1638.h> Het TM1638.h bestand wordt gezocht in het bibliotheek pad van de IDE..

#include "TM1638.h" Het TM1638.h bestand wordt eerst gezocht in het pad van het .ino bestand, daarna in het bibliotheek pad.

Het gebruik van de libraries leidt nogal eens tot problemen. Hoewel aan het begin van het programma de gebruikte libraries staan, worden deze niet automatisch in de IDE gedownload. Je moet de library (eenmalig) handmatig toevoegen.
Hulpmiddelen / Bibliotheken beheersen / enz.

Het is nogal eens zoeken naar de juiste library en versie. Soms moet een oudere versie gebruikt worden, maar wanneer wel of niet is niet altijd even duidelijk.

De online IDE is op zich prima wanneer u het niet erg vindt de site rechten op de USB poorten te verlenen. Ook hier doet het probleem van de libraries zich voor wanneer een (ver)oude(rde) versie gebruikt moet worden. Op zich laadt de online versie de te gebruiken bibliotheken wel automtisch.

Voor online is wel account nodig en is de compileer tijd per dag beperkt.

Door dit alles kost het mij wel veel tijd om het voor nieuwe gebruikers enigzins behapbaar te houden.

Bron: Arduino reference