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.
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.
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.
De behuizing wordt met behulp van een 3D printer gemaakt. De hiernaast afgebeelde behuizing heeft uitsparingen voor drie 5-pins connectoren (V1.1, V1.2 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.
Theoretisch werkt de Arduino, door de diode, op een spanning van 3,7 - 0,7 = 3 Volt.
In de praktijk is de (gemeten) batterijspanning 3,85 V en de spanning op de Arduino 3,23 Volt.
Wanneer het PCB met de Arduino net te strak in de behuizing gedrukt moet worden, kan deze met een vijl bijgewerkt worden. Het is belangrijk de vier hoeken van het PCB een beetje te afronden.
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.
In de onderstaande video ziet u dat de badge zonder USB voeding kan werken. De houder is nog een oud model zonder de V1.2 aansluiting.
De functies van de drukknoppen zijn als volgt...
s1 - s5 de ingevoerde verschillende teksten
s6 scroll snelheid verlagen
s7 scroll snelheid verhogen
s8 helderheid display
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.
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)
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.
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.
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.
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...)
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 lichtkrant. 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 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...
THE QUESTION IS... To PIE Or Not To BE Produceren - Installeren - Energie
PIE IS METAAL... INSTALLATIE... EN ELEKTRO... TECHNIEK
METEN IS WETEN, GISSEN IS MISSEN
EduTechSoft - MetTech - Easy ReLais
NIET GEMETEN IS ALTIJD MIS
Scroll Snelheid Lager minimaal 50
Scroll Snelheid Hoger maximaal 1000
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 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 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.
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...
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.