Eerder schreef ik hier over jongleerkubussen. Maar kubussen zijn helemaal niet handig om mee te jongleren. Niet dat jongleurs zich daar wat van aantrekken: die jongleren ook met bijvoorbeeld fakkels, wijnglazen en/of kettingzagen, en niet omdat die nu zo ergonomisch gevormd zijn. Maar ik wilde toch iets dat wat minder vierkant was, om mee te jongleren.

Dat is gelukt, dus ik het kader van “result first”, hieronder een filmpje:

Na vangen veranderd de kleur. Dit kan in meerdere modi: in de slow-motion is het alleen rood, groen en blauw. In de “normale snelheid” doorloopt elke bal een vaste set mengkleuren.

Ik heb (beter) leren jongleren mede dankzij deze video van Matt Gray en Tom Scott, en door de supergoede en humoristische tutorials van Taylor Glenn. Zo goed als Taylor Glenn zal ik nooit worden, maar het is gewoon leuk om af en toe wat nieuws bij te leren.

In het filmpje lijkt “blauw” erg paars. Mijn camera verslikt zich in deze kleur blauwe LED. Hieronder een foto van een rode, groene en blauwe jongleerbal waarbij de kleuren zijn bewerkt om beter overeen te komen met de realiteit:

3 jongleerballen die licht geven, 1 rood, 1 groen, 1 blauw.

En dan nu de technische achtergrondinformatie:

De elektronica voor de jongleerballen is kleiner dan die voor de jongleerkubussen. Voor de jongleerkubussen had ik in software een step-up leddriver gemaakt. Dat is mooi en aardig, maar niet per se noodzakelijk om mee te gooien. Het kan compacter en simpeler.

De jongleerballen gebruiken dus simpelweg een step-up naar 5V, en serieweerstandjes voor de LED’s. Dat is compacter en simpeler. (Alle foto’s kunnen worden aangeklikt voor een groter formaat).

De kubussen konden worden opgeladen via de schroefjes. De jongleerballen hebben een USB-aansluiting om te laden.

De jongleerkubussen zijn geprint uit PETG. Dat is nogal hard en stug. Stevig, maar niet super comfortabel om te vangen, zeker niet als je misgrijpt en de kubus op het peesje tussen duim en wijsvinger land. De jongleerballen zijn geprint uit TPU. Er zit een PETG tussenring met schroefdraad in om beide helften te verbinden, en een klein PLA vulstukje dat eveneens uit PETG zou kunnen. Het ontwerp staat hier op thingiverse.

Ze zijn verassend goed valbestendig, al treed af en toe een reversibele spontane demontage op. (De helften springen los, maar de schroefdraad blijft heel, dus het is een kwestie van weer opnieuw vastdraaien). De printjes zitten aan de zijkant vastgeklemd in de flexibele jongleerbal, de batterij zit met een klein stukje foam tape vast in een eigen compartimentje.

Het schema van de elektronica vind je hier.

De printjes zijn gesoldeerd met behulp van hete lucht en bismuth-soldeerpasta, zonder gebruik te maken van een stencil. De pasta bevat een no-clean flux, hoeft niet in de koelkast bewaard te worden, en smelt bij 165 graden Celsius. Die laatste eigenschap maakt het ideaal om met hete lucht te verwerken (zonder b.v. de kunststof delen van connectoren onbedoeld te laten smelten).

Het eerste printontwerp bevatte een foutje omdat een footprint van een fabrikant niet klopte. Dit is inmiddels aangepast, zowel door de fabrikant als door een patch op de printjes. Hieronder een macrofoto van de patch op de print: 1 pootje van de spanningsregelaar is van de print gelift en met een draadje vastgezet waar het hoort. Ongeveer net zo ‘makkelijk’ als Mills Mess >:)

De software voor de jongleerballen is gebaseerd op die van de jongleerkubussen, en staat op github. Er zijn uiteraard nog vele uitbreidingen en verbeteringen mogelijk ;).

Op moment van schrijven kan de software het volgende:

Vangen wordt gedetecteerd door het einde van een vrije val te detecteren: De accelerometer doet intern “vrije val detectie”, wat dit makkelijk maakt.

Er zijn meerdere modi: Vast rood, groen of blauw of na een vangst van kleur veranderen tussen rood, groen en blauw, of mengkleuren. Er is een puzzelmodus waarbij de bal in de juiste hoek(en) gekanteld moet worden, dan een aantal maal opgegooid, om de puzzel op te lossen. Als dit lukt knippert de bal in diverse kleuren. Er kan van modus gewisseld worden door 3x op de bal te tikken.

Als de bal een tijdje stil ligt, zal deze in een energiezuinige slaapmodus vallen na langs alle kleuren te faden. Wakker maken kan met een “zwiep” beweging.

Mijn camera maakt nog steeds paars/roze van precies specifiek het blauw uit de LED’s die ik in deze jongleerballen heb toegepast. Op de foto hieronder is de jongleerbal eigenlijk net zo blauw als de andere blauwe LED’s, maar de camera ziet er roze / paars in.

RGB leds fotograferen blijft lastig. Tenzij ze uit staan.

Heb je na het lezen van deze blogpost een vraag over de jongleerballen? Laat een comment achter! (Of eventueel: stuur me een mailtje).

Post thumbnail

Toen ik Aart vertelde over die ereader waar ik eerder over schreef bleek hij nog een ED060SC7 schermpje te hebben liggen, met daarbij een “inkterface” printje. Het inkterface printje bevat o.a. de voeding voor het e-ink schermpje, en de juiste connector om het op het schermpje aan te sluiten.

Inkterface

De voeding voor dit soort e-paper schermpjes is ietwat ingewikkeld, omdat ze +15 V, -15 V, +22 V en -20 V nodig hebben, naast de 3,3 V voeding voor de logica en een “contrast” spanning die van scherm tot scherm varieert maar vaak ergens tussen de -1 V en -2 V ligt.

Met de voeding in handen, en de juiste connector, moet er een microcontroller aan te hangen zijn. En met de heldere informatie en software van essentialscrap/eink moet er toch beeld op te krijgen zijn? Zeker als ik er b.v. een STM32 tegenaan gooi.

Dat viel ietwat tegen. Ik ben zo eigenwijs geweest het werkend te willen krijgen zonder de uGFX library (die essentialscrap gebruikt), en ook nog op andere hardware dan waar het voor bedoeld is. Grote kans dat ik daar ergens een vauwdtje heb gemaakt.

Ik wilde een snelle proof-of-concept, dus zodoende ben ik na wat zoeken uitgeweken naar de software van Zephray (github), omdat dit zonder uGFX kan werken en toch tekst en afbeeldingen kan tonen. Ik heb de agendafunctie etc. overgeslagen en alleen het deel van Zephray’s project gebruikt dat het scherm aanstuurt. Hiermee had ik al snel beeld. Na ervoor te zorgen dat het in- en uitschakelen van de voeding goed werkte (voedingen moeten op volgorde worden ingeschakeld) zelfs een stuk beter beeld. Maar wel in spiegelbeeld…

Eerste min-of-meer succes om beeld op het schermpje te krijgen

Beter beeld na op correcte volgorde inschakelen van de voedingen

Zephray’s software is echter bedoeld voor een ED060SC4 scherm. De ED060SC7 is anders dan de -sc4, en daardoor staat de tekst in spiegelbeeld. Na de X en Y as om te wisselen (in epd.c, rondom regel 602) staat de tekst wel goed:

Beeld!

Doordat de STM32F103C8T6 die ik gebruik te weinig RAM heeft om het hele scherm te bufferen stuur ik slechts een deel van het scherm aan. (De software van Zephray is bedoeld voor een STM32F207VET6, die is wat vetter qua ram). Maar de niet-aangestuurde rechter 2/3 is net zo wit als de achtergrond van de wel aangestuurde linker 1/3, dus dat valt niet zo op…

Essentialscrap heeft een slimme manier slechts een deel van het scherm te bufferen. Zephray heeft een slimme manier om grijstinten te tonen, waarvoor het nodig is om het hele scherm te bufferen. Voor deze snelle proof of concept heb ik niet geprobeerd beide slimmigheden te combineren, maar gewoon slechts een deel van het scherm gebufferd en slechts dat deel aangestuurd.

Nu weet ik dus dat dit scherm niet defect is, en dat ik de aansturing ervan voor elkaar kan krijgen. Dat bied weer mogelijkheden voor verder geknutsel met e-ink, bijvoorbeeld ook met het ED060XH3 of ED060XG1 scherm uit de ereader(s) waar dit mee begon.

Lichtwekker is een lineaire klok, op basis van een WS2811 ledstrip en een koudwit / warmwit witte ledstrip die rug aan rug in een plexiglas buis zitten.

Op wektijd worden de kleurenled’s gebruikt om een simpel zonsopkomst-effect na te doen (1 voor 1 gaan de rode LED’ s van onder af naar boven toe aan, daarna wordt er groen bijgemengd zodat een soort geel ontstaat, ook weer 1 voor 1 van onderaf), waarna de warmwitte kant van de witte ledstrip wordt aangezet.

De tijd wordt weergegeven op de 60 LED’ s van de WS2811 ledstrip, er gaan toevalligerwijs ook 60 minuten in een uur en 60 seconden in een minuut, dus dat komt heel mooi uit: van onderaf schuift een rode led steeds 1 plekje op om de minuten en seconden weer te geven. Met blauwe LED’ s is een 5 / 15 minuten schaal aangebracht. De 24 uur in een dag worden van bovenaf weergegeven met groene LED’s.

11:14:03

Dit zorgt er voor dat de klok ook in het donker en zonder bril goed af te lezen is:

11:14:05

De LEDstrips zijn rug-aan-rug tegen elkaar geplakt (met papier ter isolatie ertussen), en ingebouwd in een plexiglas buis. De buis staat op een voetje waarin de electronica is weggewerkt en waarop 2 schakelaar zitten voor de bediening. Bovenaan de plexiglas buis zit een 3e schakelaar.

Naast het weergeven van de tijd en de functie als wekker, kan deze klok gebruikt worden als warmwitte / koudwitte lamp, de fastled showreel en fire2012 animaties tonen, en kun je er 1D pong op spelen.

De tijd wordt opgeslagen/bijgehouden in een DS3231 Real Time Clock IC, vandaar dat ik daar eerder mee zat te spelen. De chipjes op de goedkope modules wijken soms erg af, zo bleek, daarom heb ik een losse DS3231MZ+ gekocht.

Ik heb dit projectje in elkaar gezet op gaatjesprint. Er is geen schema, maar de software staat op github. De pin-out valt daar wel uit te destilleren, de hardware bestaat verder uit een 12V voeding voor de 12V warmwit / koudwit ledstrip, enkele fetjes om deze ledstrip te schakelen, een stepdown naar 5V voor de WS2811 ledstrip, de RTC, en de arduino die alles aandrijft.

Meer foto’ s van de constructie staan in een van de show-your-projects topics op circuitsonline.net.

Als je het nabouwt, of b.v. een variant maakt met een RGBW ledstrip, vind ik het leuk dat te horen 🙂 (Let er dan gelijk op dat de print niet aan de USB connector hangt)