Jag gjorde mig ett nytt verktyg idag. Bilden nedan visar hur verktyget ser ut. Jag gissar att man för 50-100 år sedan utan problem skulle ha identifierat verktyget som något välbekant och väldigt användbart.
Vad använder man verktyget till? Jag fyller på artikeln efter några dagar med mera info.
Fig. Ett gammalt även idag användbart verktyg tillverkat av en ”vantskruv” dock icke marin sådan. Vantskruven har modifierats med vinkelslip och 3D-skrivare (handtag). Kostnad totalt ca. 10 Euro (100 SEK).
Pentax har i många år byggt fina systemkameror som ofta har varit vattentäta/väderskyddade. Statusmässigt ligger Pentax antagligen lite i skuggan av Nikon och Canon samt engefär jämbördigt med Sony. Pentax sägs ha en mycket pålitlig användargrupp som sägs bestå främst av äldre män som använde Pentax i sin ungdom. Pentax var en av de stora tekniska innovatörerna på 1960-70-talet dock så att Nikon på det professionella området körde förbi.
I likhet med alla moderna systemkameror så monteras objektiv via en snabbfattning, bajonett. Den av Pentax utvecklade K-bajonetten har använts på licens av flera andra tillverkare vilket betyder att man har tillgång till mängder av högklassig optik på den begagnade marknaden ofta för en spottstyver.
Min Pentax K5 stomme fick plötsligt ett fel. Den tryck-knapp som frigör objektivet lossnade och försvann. Kameran är helt användbar men för att byta objektiv behövdes en liten bit tex. pianotråd som man kunde använda för att trycka ner ett frigöringslås. Inte bekvämt och allt annat än vattentätt.
Jag vet att somliga Pentaxägare har fått reservdel gratis via Pentax men det har varit oklart vilka vägar detta har skett. Då jag googlade kring detta stötte jag på nedanstående länk:
Länken går till en 3D-utskriven frigöringstangent. Eftersom jag har en egen 3D-skrivare så var det naturligt att testa om det här kunde vara en lösning.
Den 3D-utskrivna nya tangenten har en axel som är mycket tunn. Detta är oftast ett stort problem vid utskrift. Utskriften av en tunn spets går så snabbt att plasten inte hinner stelna mellan plastlagren vilket leder till att komponenten ändrar form och sjunker ihop. Lösningen på detta är väldigt enkel. Om man har något annat storre objekt som man kan skriva ut samtidigt så lönar det sig att göra detta. Det större föremålet ger tid för det lilla att svalna vilket höjer kvaliteten. Ett annat lika enkelt alternativ är att i stället för att skriva ut endast ett enda litet föremål så skriver man ut, i mitt fall nio st. Efter utskrift väljer man det exemplar som blev bäst.
Frigöringsknappen för objektivet syns nere yngeför vid kl. 7 strax vänster om objektivet. Den utskrivna delen är redan på plats då jag glömde att ta en bild av situationen före den nya komponenten monterades.
Notera hur jag skrev ut 9 st nya tryck-knappar av vilka jag använde endast en.
Belysningen råkar framhäva den sandpapprade sidan av den nya frigöringsknappen. I normal belysning reagerar man inte på att delen är 3D-utskriven och inte orginal.
Lyckat ”hack”! Det är alltid trevligt då man lyckas förlänga livet på en teknisk mojäng som har ett litet men mycket störande fel. Nu blir det naturligtvis intressant att se hur länge den nya delen håller.
En digitalkamera, t.o.m. en högkvalitativ sådan kostar idag ingenting eftersom man tillverkar någon miljard per år för montering i främst mobiltelefoner. Eftersom kameror massproduceras så kommer det alltid att finnas ett överskott som bl.a. kan användas av tekniskt intresserade amatörer.
Jag stötte för en tid sedan på ESP32-CAM som bygger på en ESP32 mikroprocessor med kameramodulen OV2640. Hela paketet kostar $6.99 och inklusive transport kostade paketet ungefär 10 Euro (100 SEK).
ESP32-kortet har storleken ca. 40×25 mm. Trådarna som är kopplade till kortet är strömförsörjning via USB samt serielinje för att kunna följa med vad som händer på kortet. Serieförbindelsen behövs inte i ett senare skede och strömförsörjningen kommer att skötas med laddningsbara batterier.
Vad innehåller paketet?
Processorn är en ESP32 med dubbla kärnor, 512 kByte SRAM och 4 MByte pseudostatiskt RAM. Processorn kör på en klockfrekvens upp till 240 MHz och har alla vanliga anslutningar för periferienheter SPI, I2C, serielinje etc. samt inbyggd WiFi alltså trådlöst nätverk utan extra komponenter. En enkel utvecklingsomgivning som finns för Linux, Windows och MacOS är Arduino IDE. För att skriva program för ESP32 behövs en IDE version som är någorlunda ny, jag kör 1.8.13.
Hur lägger jag in webbservern för kameran om den inte finns från början?
Hämta Arduino IDE för ditt operativsystem. Googla ”Arduino IDE xxxxc” där xxxx är ditt operativsystem.
Starta Arduino IDE och lägg till kortfamiljen ESP32 via File/Preferences
Nere i fönstret finns ett fält för Additional Boards Manager URLs .
Gå därefter till Tools/Board/Board Manager . Skriv ESP32 i fältet Filter your Search. Board managern visar vad den hittar (esp32) klicka på Install varvid systemet automatiskt laddar ner de hjälpprogram, drivrutiner, bibliotek och exempel man behöver. Om man tidigare har laddat ner hjälprutiner för ESP32 så meddelar Board manager status: Installed för paketet.
Hämta kameraprogrammet i File/Examples/ESP32/Camera/CameraWebServer . Programkoden öppnas automatiskt i fönstret.
För att programmera ESP32 behöver jag en USB till Serial konversionsmodul som kostar några Euro. Moderna datorer saknar en konventionell serieport varför det behövs en USB-modul som skapar en serieport via USB-porten. Jag beställde en ”USB To TTL FT232RL FTDI Serial Adapter Converter Module For Arduino 3.3V 5V Mini” tillsammans med ESP32-CAM modulen.
Spänningen i USB seriemodulen väljs via en jumper (bygel) till antingen 3.3 V eller 5V. Väljer man 3.3V måste stiftet VCC på USB modulen kopplas till 3.3V på ESP32. Om man väljer 5V kopplas VCC i stället till 5V på ESP32. Det är viktigt att inte klanta och koppla 5V till 3.3V på ESP32 eftersom detta kan leda till att man släpper ut rök. Som känt fungerar all elektronik på rök eftersom elektronik tenderar att sluta fungera om man släpper ut röken.
USB-modulens RX kopplas till UOT på ESP32 och på motsvarande sätt kopplas TX på USB-modulen till UOR på ESP32. Notera att Transmit (sänd) på ena sidan alltid kopplas till Receive (mottag) på andra sidan och tvärtom.
Koppla GND på USB-modulen till GND på ESP32.
För programmering kopplas ytterligare IO0 till GND på ESP32. Byglingen av IO0 till jord signalerar Arduino IDE att uppladdning av program till ESP32 önskas. Då man vill köra ett uppladdat program kopplar man bort denna bygel.
Koppla i USB till datorn där Arduino IDE är aktivt. Kontrollera i Tools/Port att en serieport t.ex. /dev/ttyUSB0 under Linux har detekterats. Kontrollera samtidigt att Upload speed är satt till t.ex. 9212000 bit/sekund (kör man på lägre hastighet kan uppladdningen bli besvärande långsam). Sätt Tools/Partitition Scheme är satt till Huge APP . Glömmer man att organisera minnet till Huge App så kommer kompileringen att misslyckas.
Vi kan nu försöka kompilera exempelprogrammet via Sketch/Verify/Compile. Kompileringen gick inte igenom för mig vid första försöket eftersom en pythonmodul <serial> inte hittades. Det gick att identifiera problemet genom att felet låg i ett program med typen .py medan språket som används under Arduino IDE normalt är C/C++.Notera att felet inte låg i ESP32 vebbserverprogrammet utan det var ett hjälpprogram från ESP32 som behövde modulen. Felet avhjälptes genom att ladda in serial:
sudo apt install python-serial
Modifiera därefter programkoden så att du lägger in WiFi SSID samt password. Dessutom måste man välja kameramodell. I mitt fall fungerar alternativet:
#define CAMERA_MODEL_AI_THINKER
Man väljer kameramodell genom att ta bort kommentaren före ifrågavarande #define. En kommentar börjar med ”//”.
Nu gick kompileringen igenom och programmet kan laddas upp till ESP32. Tryck på Reset på ESP32, en mycket liten trycktangent bredvid 3.3V anslutningen. Välj nu Sketch/Upload och om allt går korrekt så börjar programmet laddas upp (tid kanske 30-60 sekunder beroende på vilken uppladdningshastighet man valt). Då uppladdningen har lyckats kopplar man ur programmeringsbygeln IO0-GND för att köra programmet.
Starta Tools/serial Monitoroch kontrollera att hastigheten är vettig t.ex. 115200. Tryck på ESP32 Reset varefter ESP bör skriva diverse text till monitorn. I texten hittar vi den IP adress som ESP32 har fått via det lokala WiFi nätverket.
Vi öppnar nu en vebbläsare (jag använder Firefox) och lägger in den IP-adress vi fick oss tilldelad och som vi grävde fram åt oss från texten på monitorskärmen. I mitt fall fick jag adressen http://192.168.10.42/. Notera att den angivna adressen ovan inte är verklig och den kommer inte att fungera i ditt fall.
Ett fönster med kamerakontroller på vänster sida öppnas i vebbläsaren. Längst ner finns kontrollerna Get still, Start stream . Tryck på Start Stream varvid ESP32 börjar sända video över WiFi till datorn. Det är nu möjligt att via kontrollerna ändra ljushet/mörkhet, kontrast, upplösning etc. Fritt fram att experimentera.
Följande steg?
Följande steg blir att planera och skriva ut ett lämpligt skal samt förse ESP32 med ett laddningsbart batteripaket så att jag kan hänga systemet på fågelbordet och avslöja våra stora (vitsvanshjortar 😉 ) småfåglar som länsar fågelbordet på nolltid.
Källor:
Det finns en hel del artiklar på engelska om hur ESP32 skall kopplas för programutveckling. Nedan enast ett exempel. Vid problem lönar det sig oftast att Google på den felkod man får. Det finns oftast någon annan som har stött på samma problem och en lösning kan ofta hittas direkt.
Jag hjälpte idag min hustru med att kopiera bilder från telefonen till hennes bärbara dator. Då jag öppnade datorn för att börja kopieringen märkte jag att datorns skal vid gångjärnen till bildskärmen glipare rätt duktigt. Från sidan kunde man se att centralenhetens två halvor öppnade sig med mer än fem millimeter vid bakkanten … inte bra. Orsaken var att sex stycken skruvar inte längre hade grepp om gångjärnet då bottenplattans skruvfesten hade tryckts in d.v.s. skruvarna drog inte längre ihop plattorna eftersom det mothåll skruvhuvudena borde ligga mot var borta (de hade brutits sönder och små plastbitar låg inne i datorn.
Fig. 1 Den fixade datorn är av märket Acer. Jag har set motsvarande problem i flera andra datorer d.v.s. det beskrivna felet är vanligt och inte kopplat specifikt till just den här datorn.
Det ovan beskrivna problemet är rätt vanligt på portabla datorer eftersom påfrestningarna på skruvar och de komponenter skruvarna säkrar är stora till följd av att bildskärmens infästning förutom att den skall vara rörlig även måste ha så stor friktion att skärmen hålls i önskat läge.
Om problemet inte åtgärdas kommer något av följande problem som kan vara besvärlga att åtgärda att dyka upp:
Datorns bottenplatta spricker och en reparation blir besvärlig eftersom det är svårt att limma stora tunna plastkomponenter.
Kablarna till bildskärmen skadas vilket är värsta fall leder till att datorn slutar fungera då man släpper ut röken den kör på (All elektronik kör på rök vilket bevisas av att då röken släpps ut så fungerar apparaten inte längre 😉 ) .
Skärmens infästning blir så glapp att den inte hålls i rätt läge.
Fig. 2 Det finns ingenting kvar av de ytor mot vilka skruvhuvudena har legat. De metalliska ytor man skymtar hör till den komponent mot vilken baksidan är fäst. Hålet genom vilket skruven skall spännas mot framsidans metallinsättning är helt enkelt större än skruvens huvud till följd av skada.
Efter lite funderande kom jag fram till att jag kunde konstruera insättningar i hålen som med superlim kunde fästas mot bottenplattan. För att insättningen skulle fästa bättre gjorde jag den aningen konisk vilket i viss mån bör förhindra att delen av skruvkraften dras loss.
Programmet som skapar skruvadaptern är mycket enkelt. Genom en aningen konisk cylindrisk komponent cylinder(r1=2.55,r2=2.35,h=3.5,$fn=64) borras ett hål för en 2.6 mm skruv translate([0,0,-1])cylinder(r=1.35,h=10,$fn=64) . Jag råkade ha lämpliga tillräckligt långa skruvar i miljonlådan som kunde kapas till önskade längder. De exakta dimensionerna ner till en tiodels millimeter är svåra att uppnå i ett steg för så här små komponenter. Vid utskrift tenderar lite plast att pressas ut åt sidorna vilket gör hål något mindre än vad de teoretiskt borde vara och komponentens ytterdimensioner brukar vara något större än önskat.
Jag skrev ut en första version som visade sig har för litet skruvhål och längden på pluggen visade sig vara onödigt stor efter provning mot den skadade dastorn. Jag ändrade designen en aning och fick de komponenter jag behövde. Utskriftstid för sex stycken pluggar var mellan tre och fyra minuter.
Notera att programmet ovan skapar endast en plugg. Jag kan importera många pluggar till utskriftsprogrammet. I examplet nedan skriver jag ut sex pluggar parallellt.
Bilden nedan är tagen från bildskärmen medan skrivaren skriver ut. Ju rödare komponenten är desto varmare är den d.v.s. de ljusröda områdena är de senast utskrivna.
Bottenplattan, de rundade områden (blå) som pluggarna står på är en hjälpkonstruktion som håller pluggarna på plats medan utskrift sker. Bottenplanet skärs bort innan pluggarna används.
Fig. 3 Utskriftsprogrammet visar hur komponenterna ser ut för tillfället.
Fig. 4 Den färdiga komponenten. Den svarta pluggen limmas i hålen (fig. 2) så att skruven som i detta läge är för lång skruvas fast och pluggen hålls i korrekt läge. Efter att limmet torkat kapas skruven till önskad längd genom att klippa av den med en Abico-tång. Skruven har dimensionen 2.6 mm. Rutnätets storlek är 7 mm.
Konklusion
En enkel reparation som verkar ha lyckats perfekt. Slutresultatet är sannolikt att datorn kan användas ytterligare något år innan den kommer till sin vägs ände.
Man hittar idag mängder av intressanta elektroniska moduler som är relativt enkla att kombinera ihop till något man inte hittar färdigt på butikshyllan.
Jag köpte i slutet av senaste sommar en radiostyrd drönare (drone) av typen Dji Phantom 3 Professional. Jag betalade inte speciellt mycket för drönaren eftersom kameran inte fungerade. Det här blev en ny inkörsport till rc-flygandets värld, jag har sysslat med RC-flygande för kanske tjugo år sedan, och samtidigt ett intressant sätt att lära sig modernare teknik på området. Efter många om och men flyger nu drönaren och kameran fungerar men vissa störningar kan förekomma. Bildkvaliteten är god.
Fig. 1 Bilden är tagen med den reparerade drönaren ca. 50 m ovanför gårdsplanen till vårt hus på Sommarö i Esbo skärgård. Man ser Helsingfors i bakgrunden. Den vita röken kommer från ett kraftverk vid Drumsö bro.
Reparationen av drönaren gav inspiration till att eventuellt modifiera ett existerande RC flygplan med fast vinge så att förbränningsmotorn byts mot elmotor och kamera monteras så att flygaren kan beundra utsikten från flygplanet. Jag har ett lämpligt flygplan som bör vara lätt att modifiera. Ett elflygplan ger möjlighet att flyga betydligt friare än tidigare eftersom planet är väldigt tyst i jämförelse med en konventionell förbränningsmotor.
Jag har en hel del RC-servon i miljonlådan och de mekaniska komponenter jag behöver kan jag skriva ut på 3d-skrivare. Jag stötte på en enkel mycket vidvinklig kamera på en kinesisk vebbsida, på samma sida hittade jag en videosändare som sänder inom området 5.8 GHz samt en matchande mottagare som kan kopplas till dator och i princip mobiltelefon. Kameran kommer att av datorn uppfattas som en vebbkamera och det är möjligt att spela in videosignalen om så önskas. I princip borde samma sak gå att göra på mobiltelefonen men jag har någon typ av kompatibilitetsproblem som gör att telefonen inte åtminstone ännu fungerar som bildskärm.
Det första experimentet med kameran blir en jordbunden fjärrstyrd kamera som jag tänker studera våra rådjur med. Det springer en flock på 5-6 rådjur på området. Att bygga en radiostyrd kamera betyder att jag inte genast i försöksskedet slår sönder systemet … hoppas jag.
Fjärrstyrd viltkamera
Jag beslöt att använda två RC-servon för att styra kameran i sid- och i höjdled. Ett RC-servo monteras i systemets bas och styr kameran horisontellt. Ett annat servo monteras på en 3d-utskriven L-formad bit. Kameran är via en enkel adapter kopplad till detta servo som alltså vrider kameran i höjdled.
På den L-formade biten limmades två 3d-utskrivna fickor/hållare för videosändaren och ett styrkort för kameran.
Spänningsmatningen till systemet görs via en såkallad UBEC som är en chopper spänningsregulator som förvandlar en inspänning på 5,5 -27V till konstant 5V spänning som kameran, servona och RC-mottagaren behöver. En chopper/hackare har en mycket bättre verkningsgrad än en linjär spänningsregulator. En god verkningsgrad är speciellt viktig i ett RC-flygplan där mycket el behövs för drivmotorn.
Styrningen av kameran kan göras med en normal RC-sändare och matchande mottagare. Jag har åtminstone två sändare liggande som bör fungera.
Tillverkning av de mekaniska komponenterna
De mekaniska komponenterna konstruerades i programmet OpenScad som egentligen är ett programmeringsspråk för 3d-konstruktioner. Precis samma slutresultat fås naturligtvis också genom att använda ett CAD-program (det finns många gratisversioner) som kan generera STL-kod d.v.s. som kan översätta CAD-bilden till STL-kod som förstås av 3d-skrivarens styrprogram. För mig känns OpenScad bekvämt genom att jag har skrivit programkod i tiotals år. Ett CAD-program som jag använder sporadiskt och således hinner glömma kräver mera jobb än att skriva koden direkt. Det är självklart att det här kan verka konstigt för personer vana vid helt grafiskt konstruerande. OpenScad har ett relativt bekvämt användargränssnitt där jag i grafisk form kan se resultatet av kodskrivandet … skillnaden mot ett rent CAD program är eventuellt inte speciellt stor.
Styrprogrammet, i mitt fall ”RepetierHost”, använder ett ”slicer”-program som skivar konstruktionen i 0,2mm höga skivor som omvandlas till 0,2mm höga och 0,4mm breda plaststrängar som lager för lager bygger upp komponenten jag har skapat. Utskriften av de olika delarna tog 5 minuter till ca. en och en halv timme beroende av komponentens storlek. De större komponenterns skrevs ut med en fyllnadsgrad på 50% vilket betyder att komponenten inuti består till ca. 50% av luft. Delarna som kopplas till servona skrevs ut med en fyllnadsgrad på 100% för att göra dem möjligast styva och starka.
Fig. 2 Hållare för servot som vrider kameran i horisontell riktning. Uppe till vänster finns askens lock med plats för ett kullager som gör konstruktionen stadigare.
Fig. 3 Locket med plats för kullagret konstrueras med hjälp av två moduler.
Modulen (subrutinen) ballBearingBase() skapar den fyrkantiga bottenplattan med ett 10.5 mm hål i mitten. Detta görs så att en låda (cube) skapas från vilken man tar bort en cylinder med diametern 10.25 mm. Därefter skapas hållaren för kullagret d.v.s. den centrala ringstrukturen genom att lägga en cylinder med diametern 26 mm ovanpå den fyrkantiga plattan varefter man tar bort en cylinder med diametern 22.8 mm vilket leder till att endast ringstrukturen blir kvar.
Modulen ballBearing() använder sig av den tidigare skapade plattan med ringstruktur och hål i mitten och tar bort fyra cylindrar med radien 2 mm d.v.s. borrar fyra st 4 mm hål för fastsättningsskruvar. Skruvarna fästs så att man smälter fast fyra gängade mässingsholkar i lådans hörn.
Fig. 4 L-biten i vilken servot som vrider kameran i vertikalriktningen. Den lilla biten till vänster trycks fast i servots axel. Denna lilla bit limmas fast i L-bitens skåra närmast betraktaren. Orsaken till att det lönar sig att skriva ut den lilla biten separat är att det är mycket svårt att utan specialteknik skriva ut ”överhäng”. L-biten låg med servoöppningen mot skrivarens bottenplatta Det enda överhäng som fanns var skåran för limning av den lilla biten … detta klarar skrivaren utmärkt. Den lilla biten skrevs ut som på bilden.
Fig. 5 Kameran komplett men utan RC-mottagare för styrning av servona. Jag väntar ännu på några delar.
Servot för styrning i horisontalriktning är den lilla blå komponenten till vänster om kameran. Ett likadant mikroservo används för att vrida hela L-delen horisontellt. Det horisontella vridservot finns inne i den fyrkantiga asken som till storleken motsvarar ungefär två små tändsticksaskar. Under den fyrkantiga lådan kommer det att monteras en ungefär lika stor ask i vilket jag monterar RC-mottagaren och spänningsregulatorn UBEC. Ovanför servot finns det hållare för två olika elektronikmoduler Närmast kameran ser man kamerans kontrollpanel med fem tryckknappar. Bakom kontrollpanelen finns videosändaren som sänder på 5.8 GHz. Man skymtar antennens bas (mässing). Hela antennen är ungefär 60 mm lång varav den aktiva delen utgör ungefär 30 mm. Den aktiva delen utgör sannolikt ungefär en halvvågsantenn. Våglängden vid 5.8 GHz är ungefär 52 mm.
Kamerans dimensioner är ca. 30 mm i riktningen för den optiska axeln i övrigt ungefär kvadratisk 25×25 mm.
De följande stegen
Följande steg blir nu att fixa till ett batteripaket, jag har hittills använt ett laboratorienätaggregat.
Skriv ut fastsättning som tillåter montering t.ex. mot en trädstam.
Testa radiolänkens räckvidd. Jag förväntar mig åtminstone nåra hundra meters räckvidd vilket tillåter mig att ställa den portabla datorn i farstun och sitta inne i värmen medan jag tittar på rådjuren i skogen.
Jag återkommer med en senare artikel med bildmaterial på hur det hela fungerar i praktiken.
Min goda vän Anders kom över en portabel, batteridriven, ljudanläggning som ursprungligen har planerats för en Apple mobiltelefon eller iPod … eller båda. Telefonen kunde ställas och stå i ett fack överst på spelaren och lådan kunde då spela upp musik som fanns lagrad på telefonen.
Förstärkarlådan hade några små problem:
Den var stendöd . Gissningen var att batteriet/ackumulatorn var död varför anläggningen som sådan inte visade några livstecken.
Musikanslutningen via iPhone/iPod var oanvändbar eftersom det inte längre finns telefoner med en mångpolig anslutning … alla använder idag USB i någon form eller ännu enklare trådlös överföring via WiFi eller Bluetooth.
Anders bytte batteriet/ackumulatorn som är ett litet ”motorcykelbatteri”. Ett nytt problem dök upp. Det såg ut som om batteriet inte laddades trots att lådan var kopplad till nätström. Orsaken var att lådans huvudsäkring hade brunnit. Efter byte av säkring verkade lådan fungera.
Förstärkaren har ingångar för mikrofon eller Line In d.v.s. den är nog användbar men inte helt bekvämt. Kunde man månne modernisera lådan så att den inte skulle behöva någon USB-anslutning utan vilken som helst modern telefon/platta med Bluetooth skulle kunna användas som musikkälla?
Fig. Den modifierade portabla spelaren ser ut så här. Där det svarta locket nu finns fanns tidigare en dockningsstation för iPhone/iPod. Under locket finns en Bluetooth adapter som är kopplad till baksidan av de vit/röda BNC kontakterna.
Jag hittade en lovande Bluetooth modul som jag beställde från kina. Som vanligt beställde jag två eftersom det alltid finns risk att man får ett defekt exemplar. Delarna är relativt billiga vilket gör att förlusten inte är så stor om ett exemplar flyttas till miljonlådan.
Fig. Frontpanelen kan skruvas loss vilket gör att det är relativt enkelt att komma åt baksidan. Här löder jag signalkablarna från bluetooth modulen till Line In ingången. Lödningarna görs på baksidan vilket blir snyggt.
Till vänster på spelaren syns den gamla dockningsstationen. Vi tar 5V från en USB-kontakt som tydligen har använts för laddning. Vi slipper på detta sätt att söka efter 5V inne i apparaten … eller att montera en egen spänningskälla för Bluetooth. iPhone kontakten plockades bort men den vita kontrollpanelen lämnades kvar under ett nytt 3D-utskrivet lock … som råkade bli svart eftersom mitt vita filament råkade vara nästan slut. Bluetooth modulen är det lilla röda kretskortet vid min högra hand.
Fig. Det finns en egen på/av strömbrytare som ursprungligen användes för att ladda en iPod. Vi använder denna strömbrytare för att slå på eller stänga av Bluetooth. Med Bluetooth avstängd torde Line In att gå att använda som förut utan problem.
Det slutliga testet
Då modifikationen var gjord och den gamla dockningsstationen hade mätts så att jag skulle kunna designa ett nytt lock så var det tid att testköra.
Vi kopplade på Bluetooth från strömbrytaren bak på förstärkaren och kunde inte se någon rök, röktestet var alltså ok. Elektronik har den intressanta egenskapen att den tydligen är beroende av rök för att fungera … släpper man ut röken så fungerar det inte längre!
Jag kopplade på Bluetooth i min telefon och hittade efter en kort stund en ny Bluetooth enhet med id koden JZ-B5W2 som telefonen trodde var Bluetooth hörlurar. Så långt helt OK!
Jag valde nu slumpmässigt ett teststycke från youtube och satte igång uppspelningen av videon.
Video: Telefonen kopplar utan problem till bluetooth modulen och därifrån vidare till spelaren och ljudstyrkan är mer än tillräcklig och ljudkvaliteten OK d.v.s. den förväntade för denna typ av musikspelare.
Slutkommentar
Det var intressant att se hur enkelt det var att modifiera och modernisera en gammal musikspelare. Med Bluetooth anslutning så blev spelaren plötsligt helt användbar och kommer antagligen att tjäna i ytterligare att antal år.
Jag planerar att göra samma modifikation i min 2x30W ”klassiska” Radio-förstärkare. Jag räknar med att också i den kunna koppla Bluetooth till t.ex. Line In eller till bandspelaringången. Strömförsörjningen fixar jag antagligen via ett separat litet strömaggregat för nätström som jag räknar med att finna plats för på insidan. Genom att använda nätström direkt via eget nätaggregat så slipper jag att söka efter en lämplig spänning på ett obekant kretskort.
Om någon läsare råkar ha en klassisk Hi-Fi förstärkare som nu samlar damm till följd av att man så sällan spelar vinyl eller CD så går det att ta kontakt och diskutera en modifikation som kan ge trotjänaren, som ofta ljudmässigt är mycket högklassig, nytt liv!
Vi lever i en absurd värld där världens politiker använder ofantliga summor på att utan vetenskapliga och tekniska kunskaper försöka lösa ett ickeproblem d.v.s. ”den globala uppvärmningen”. Lösningen är som man kan vänta sig absurd. En hörnsten i den politiska lösningen är användning av vindkraft som industrialiserar ofantliga arealer tidigare relativt orörd natur. Följden är extrem naturförstörelse och stora risker för utrotningshotade djur bl.a. örnar som inte är vana att reagera på hot uppifrån …
Jag råkade av en slump stöta på en relativt lång video som behandlar ny teknik på supraledningens område. Man har under de senaste åren lyckats utveckla supraledare som tillåter ungefär tio gånger högre magnetisk fältstyrka jämfört med magneter man använder på t.e.x. testreaktorn ITER. Resultatet varkar vara att man kan krympa ITER kraftigt vilket gör en testreaktor hanterlig och egentligen väldigt billig t.o.m. jämfört med konventionella fissionskraftverk. Målet är en första kommersiell testreaktor inom några år byggd med hjälp av 3d utskrivna metallkomponenter d.v.s. samma teknik Space X har använt vi tillverkningen av motorer. 3d utskrivna komponenter tillåter att kylkanaler kan byggas in i komlicerade komponenter med mycket små tekniska problem och till låg kostnad.
En konventionell Tokamak fusionsreaktor utnyttjar ett kraftigt magnetfält till att hålla det extremt heta plasmat samlat utan att det rör vid reaktorns väggar. Man har haft stora problem med många typer av instabiliteter där t.ex. plasmat inne ireaktorn plötsligt slår knut på sig själv så att inneslutningen förstörs och plasmat nuddar vid reaktorkärlet. Resultatet blir att plasmat förorenas och via strålning förlorar mera energi vilket leder till att plasmat kallnar och ingen fusionsreaktion är möjlig.
Det har visat sig att problemen har blivit lättare att hantera ju högre magnetfältstyrka man har.
Energivinsten d.v.s. förhållandet mellan insatt elektrisk energi till plasmat och den genererade fusionsenergin skalas med magnetfältet i tredje potens d.v.s. B³. Om det nu visar sig att det pålitligt går att konstruera magneter som är 10 ggr kraftigare än tidigare så ökar energivinsten med en faktor på 1000x vilket gör att reaktorn kan krympas kraftigt med samma energiutbyte som den tidigare generationens reaktorer. Resultatet är att reaktorn blir mycket billigare att bygga och ny teknik gör att reaktorn kan byggas modulärt vilket i hög grad förenklar service.
En fusionsreaktor av den beskrivna typen använder en blandning av Deuterium D och Tritium T som bränsle. Tritium är en isotop som inte finns på jorden i tillräckliga mängder. Däremot så kan man producera tritium genom neutronbestrålning av t.ex. Litium. Då en fusionsreaktor har startats så kommer den att producera mera tritium än vad den förbrukar d.v.s. man kan producera tritium för start av nästa reaktor o.s.v. Deuterium finns i jordens oceaner för hundratals miljoner års förbrukning. Om mänskligheten i en framtid efter hundratals miljoner års energiproduktion börjar lida brist på deuterium så finns det gasgiganter i solsystemet från vilka man kan utvinna deuterium…
Hur mycket bränsle skulle en 1000 MW fusionreaktor kräva jämfört med ett stort kolkraftverk med samma effekt? Kolkraftverket kräver ungefär 2,7 miljoner ton (2700000000 kg) kol per år. Ett motsvarande fusionskraftverk kräver ca 250 kg bränsle av vilket ungefär hälften är deuterium som finns i havsvatten och resten tritium. Man uppskattar att totalmängden tritium i hela världen idag är ungefär 30 kg. En fusionsreaktor kommer dock att producera tritium genom att bestråla Litium. Det behövs alltså en relativt liten mängd tritium för att starta reaktorn varefter den själv producerar det tritium den behöver och mer därtill.
Notera att det verkar sannolikt att extremt kraftiga magneter också kommer att göra det lättare att producera fusionsenergi med andra metoder. Jag tänker t.ex. på Bussards Polywell Polywell elektrostatiska fusionsreaktor. Polywell reaktorn skalar i förhållande till B-fältet och radien med:
Pf∝B⁴R³
Det blir mycket intressant att se vilken effekt den nya teknologin har på fusionens område!
Det här är en inledning till något som torde bli en serie artiklar.
Jag har i olika sammanhang funderat över hur man enkelt kunde mäta amplituden hos vibrationer i plattorna på en fiol så att fiolen hela tiden är spelbar. Jag är alltså inte i första hand intresserad av att mäta vibrationerna i ett fritt svängande lock eller bottenplatta som inte har limmats till sargerna. Naturligtvis kan samma mätteknik användas också för detta men jag är mera intresserad av ett spelbart instrument.
Jag har tidigare tittat på möjligheterna att använda en lysdiod och en ljusdetektor (en ljuskänslig diod i revers bias). Tanken var att mäta variationerna i ljusstyrka då plattan till följd av vibrationerna rör sig i förhållande till detektorn. Jag fick aldrig mätaren att fungera pålitligt varför jag gick vidare till andra problem …
För en tid sedan råkade jag hitta en intressant video på youtube som behandlar precis mitt problem och där mätningen sker på nästan identiskt sätt jämfört med mitt tänkta system ovan. Skillnaden är att man i stället för en LED (lysdiod) använder en kombinerad laserdiod och ljusdetektor i samma förpackning. En laser producerar koherent ljus d.v.s. alla ljusvågor från lasern är i fas vilket gör att ljuset som reflekteras från ytan också kommer att vara (ungefär) i fas. Ungefär i fas eftersom ytan vi belyser är ojämn i mikrometerskala. Eftersom det reflekterade ljuset är någorlunda fasrelaterat till laserljuset så kommer vi att se interferens mellan laserljuset och det reflekterade ljuset. Då laserljuset ligger i samma fas som det reflekterade ljuset får vi ett signalmaximum. Då laserljuset ligger i motfas får vi ett minimum där ljuset delvis släcks ut.
Titta på videon så att du förstår vad som händer … det är fråga om en relativt enkel process.
Vilka delkomponenter behöver jag för en mätare av plattors rörelser
Jag behöver:
En laserdetektor i stort sett byggd som på videon. I praktiken använder jag 3-d skrivare till att bygga en hållare för lasern och hjälpelektroniken. Eventuellt använder jag någon tunn tejp som laserreflektor. En liten tunn tejpbit bör inte ändra svängningsförhållandena märkbart.
En separat mikrofon för att mäta ljudnivån så att olika instrument kan jämföras. Eventuellt kan lasersignalens lågfrekventa signal användas också som mikrofon men experiment får utvisa om detta fungerar.
En apparat för att generera en specifik ton i instrumentet. Jag har som första approximation tänk mig en enkel apparat för att knäppa på strängen med reproducerbar amplitud. Jag tänker mig ett mekaniskt finger som är fjäderbelastat så att strängen släpps att vibrera vid en känd kraft (Usom bestäms av fjäderns töjning). Ögonblicket då fingret släpper från strängen detekteras med en mikrobrytare som då startar datainsamlingen.
Hur görs mätningen
Då plattan svänger ger laserns ljusdetektor ut en växelspänning där antalet toppar mellan svängningspunkterna ger antalet våglängder som plattan rör sig. Eftersom jag knäpper på strängen så kommer amplituden att först vara stor d.v.s. vi får ett stort antal våglängdstoppar/dalar under plattans rörelse. Rätt snabbt kommer svängningsamplituden att avklinga mot noll.
Om vi vet, mätt med mikrofon, vilken strängens grundfrekvens d.v.s. tiden för en svängningsperiod på strängen är så kan vi beräkna plattans svängningsamplitud på följande sätt.
Antag att plattans svängningsamplitud är 0,1 mm d.v.s. rörelsen 0,2 mm (200 um) och svängningsfrekvensen är 200 Hz (lös G-sträng på en fiol). En svängningsperiod är då 5 ms. Laserns våglängd är 0,65 um (mikrometer, rött ljus) vilket betyder att vi bör få 200/0,65 = 307 signaltoppar/dalar från lasern. Då svängningen i plattan klingar av minskar amplituden och antalet toppar/dalar från lasern minskar successivt mot noll. Om vi lyssnar på lasersignalen så kommer vi att höra ett frekvenssvep från maximifrekvensen
fmax = 307/0.005 = 61,5 kHz
Om vi tar den mätta lasersignalen och beräknar Fourier-spektret på signalen så bör vi utan problem kunna se vilken maximifrekvensen är. Maximifrekvensen ger ett direkt mått på svängningsamplituden om vi känner grundtonen:
s = f_max*lamda*T
där
f_max = maximifrekvensen i lasersignalens fourier spektrum.
lamda = laserns våglängd 0,65 um
T = 1/f_grundton
Exempel (numeriska värden tagna ovan):
s = 61500 Hz * 0,65 um * 0,005 s = 200 um
Svängningsrörelsen är 200 um från minimum till maximum.
Jag väntar på laserdioder av typen ADL65052TL. Det enda kriteriet jag hade gällande val av laserdiod var att det skall finnas en ljusdiod i samma kapsel. Notera att många laserdioder som säljs nuförtiden saknar ljusdetektorn och således inte lämpar sig för ovanstående applikation.
Mätsystemet
Ovanstående övningsexempel ger data för hur mätsystemet måste konstrueras. Om vi vill täcka hela instrumentet från låga G upp till A på E-strängen så kommer den svängande strängens grundfrekvens att ligga mellan 200 Hz och ca. 1000 Hz.
Exemplet ovan visade att vi om vi tänker oss en amplitud på +/- 0,1 mm får ut en signal på 61,5 kHz från den lösa G-strängen. Om vi vill mäta G på E-strängen så ligger strängens frekvens på 800 Hz vilket med samma amplitudantagande ger en lasersensorfrekvens på 4*61,5 kHz = 246 kHz och ur samplingskriteriet ser vi att lasersignalen bör mätas minst med frekvensen 2*246 kHz = 492 kHz. För att vara på den säkra sidan bör vi sampla signalen i kanske 800 kHz under den tid då vi ligger nära maximal svängningsamplitud. Om vi antar att vi mäter 1/50 sekund så kommer vi att lagra 16000 mätvärden a’ 2 bytes d.v.s. vi behöver lagringsutrymme för 32000 mätvärden.
Ovanstående betyder att vi kan göra ett grovt val av hårdvara för vår mätare. Jag gissar att en Arduino Due som använder en ARM processor och kör på 84 MHz bör vara kapabel att sampla tillräckligt snabbt. Enligt specifikationerna bör processorn vara kapabel att sampla upp till 1 MHz. Processorn har 96 kbyte snabbt RAM minne vilket bör räcka till för buffert och analys. En Arduino Due kostar mellan 10 och 50 Euro beroende på varifrån man köper den … och om det är fråga om en orginal Due eller en kinesisk kopia. Mätsignalen måste förstärkas så att vi ligger vettigt i förhållande till AD-konverterns arbetsområde och upplösning 10 eller 12 bitar beroende av hur processorn konfigureras.
Kommande artiklar:
Laserdetektorns konstruktion och eventuella problem i samband med bygge.
Borax fås i ren form direkt ur jorden och normalt krävs ingen rening överhuvudtaget. Detta betyder att taget i små mängder så kan rent Borax 99% avsett för olika ändamål också användas som kosttillskott.
Användare av borax är krukmakare/keramiker där ämnet torde användas som tillsats för glasyren. Smeder använder borax som fluxmedel. Vill man alltså köpa Borax över disk så kan det löna sig att fråga i en specialbutik för krukmakeri eller i motsvarande för smide.
Själv har jag köpt borax över nätet och påsarna jag har beställt har kommit igenom utan problem i allmänhet. En beställning från turkiet misslyckades (ingenting levererades) och en annan försändelse kom fram problemfritt. Jag har inte beställt från Indien eller Kina eftersom jag uppfattar att det kan finnas en risk att jag får något annat ämne. Sannolikt är även dessa leverantörer Ok helt enkelt för att ämnet är billigt och det inte finns någon anledning att förfalska ett billigt ämne.
Om man använder PayPal så är antagligen ebay den mest praktiska köpkanalen. Sök på ”Borax”.
Dosering
Det uppskattade behovet av Borax är 10-15 mg per dag räknat i ren Bor. Detta betyder att den önskade dosen Borax är ca. 70-100 mg. Ett enkelt sätt att få en uppfattning om denna mängd är naturligtvis att använda en elektronisk våg som väger med precisionen ca. 0,01 gram. En våg som används för att väga krut vid självladdning är sannolikt ok. På ebay hittar man många alternativ som kostar några euro d.v.s. några tior i svenska kronor.
Vågen på bilden kostar under 4 euro (40 kr).
Doseringssked
Ett annat alternativ är att med 3d-skrivare skriva ut en doseringssked som mäter upp ca. 70 mg borax. En måttsked kan se ut t.ex. så här:
Skeden på bilden mäter upp ca. 70 mg. Jag brukar böja själva skopan till 90 graders vinkel genom att värma ändan och därefter böja den då materialet är varmt. Formen på den böjda skeden framgår av följande bild. Skeden är fylld av en ca. 70 mg stor dos Borax.
Den med skeden uppmätta dosen kontrollvägs på min lilla elektroniska våg.
Den uppmätta mängden anges till 0,07 gram d.v.s. 70 mg. I verkligheten ligger mängden mellan 60 och 80 mg vilket är helt OK. En skopa av denna typ motsvarar ca. 11 mg ren bor vilket ligger långt under de nivåer man via normal mat kommer upp till i t.ex. Israel.
Länken borax_sked länkar till filen borax_sked.zip . Då denna fil unzippas så hittas borax_sked.stl som kan användas till att direkt skriva ut skeden på 3d-skrivare. Åtminstone i Finland finns det publika 3d-skrivare på många bibliotek. Utskriftstiden är någon minut.
Det är alltid kul att lära sig något nytt och att tvingas motionera de små grå cellerna innanför det grå håret med problemlösning och felsökning av något man aldrig har lekt med tidigare.
Det är snart påsk igen, som baha’i ser jag fram mot baha’i nyår Naw Ruz … i båda fallen har ägg en plats i måltiderna i anslutning till dessa högtider. Det är för övrigt intressant att se hur många sedvänjor med en ursprungligen Zoroastrisk bakgrund (från det antika Persien) lever kvar i olika sedvänjor från Afghanistan till Spanien. Sedvänjorna har helt enkelt modifierats så att de passar ihop med den lokala religionen varefter man kan glömma varifrån sedvänjorna kommer.
I den Nordiska traditionen hör ägg, ofta snyggt målade, till påsktraditionen. Man färgar ägg på olika sätt. Själv minns jag hur man kokade ägg tillsammans med lämpliga växter för att ge äggen en trevlig färg. Senare har jag många gånger ritat figurer på ägg tillsammans med barnen. Vad är då naturligare än att använda moderna hjälpmedel för att göra mera avancerade utsmyckningar t.ex. i form av geometriska mönster som är alltför arbetsdryga eller komplicerade för att göras för hand.
Videon ovan visar en Ägg skrivare som dock ser relativt komplicerad ut 🙂 . Det här projektet använder dock betydligt bättre, och dyrare stegmotorer än vad jag använde.
Jag hittade en variant som kan skrivas ut med 3d skrivare och som såg snygg och väl genomtänkt ut. Bygget av den varianten och problem i anslutning till detta bygge beskrivs i den här artikeln. Jag utgick från den här äggplottern:
Vad behöver jag för projektet
Filerna som behövs för 3d utskrift av mekaniken hittar man på thingiverse i form av en stl-fil. Stl är en beskrivning av hur de mekaniska delar som skall skrivas ut med 3d skrivare ser ut. Innan skrivaren kan skriva ut komponenten måste stl-filen vidarebehandlas av ett lämpligt program som skär upp föremålet i en serie skikt som 3d skrivaren sedan kan rita ut skikt för skikt och på såsätt långsamt bygga upp hela det föremål som skrivs ut. Jag använder programmet slic3r för att vidarebehandla stl-filen. Skrivarprogrammet jag använder är Repetier-Host V1.6.2.
Problem #1
Min 3d skrivare klarar av att skriva ut föremål med dimensionerna ca. 200x200x200 mm³. Det visade sig att alla delar till Ägg skrivaren fanns i samma fil som kräver en betydligt större skrivare än den jag har. Alternativen är då att antingen hitta någon firma med en skrivare med tillräckligt stor byggyta … eller att modifiera stl-filen så att bitarna kan skrivas ut på min skrivare. Jag valde det senare alternativet.
Då jag själv konstruerar föremål som skall skrivas ut på 3d skrivare så använder jag programspråket openscad för att designa föremålen. Jag kan enkelt läsa in en stl-fil i openscad:
Jag använder helt enkelt kommandot import( … ); för att läsa in stl-filen som ett enda stort föremål. Därefter använder jag kommandot difference() på den inlästa filen och använder stora lådor (klossar) som skär bort de delar jag för tillfället inte vill se. Det spelar inte någon roll på vilket område på skärmen den kvarvarande delen finns, den centreras automatiskt av skrivaren.
Jag klippte söner stl-filen i tre olika föremålsgrupper d.v.s. skalet blev två olika bitar och de små mekaniska delarna blev en egen grupp. De olika beskurna delarna skrevs sedan ut separat. Jag antar att motsvarande funktionalitet finns i de flesta CAD-program som stöder 3d utskrift.
Utöver plastdelarna behövde jag två stycken små kullager, skruvar i olika dimensioner som jag klippte till lämpliga längder med hjälp av en Abico-tång. Lager hittade jag på en lokal järnaffär och skruvar har jag på lager i olika dimensioner.
Hopplockning av styrelektroniken
Skalet är konstruerat för en Arduino UNO med stor USB (typ B) kontakt. Jag har olika varianter av processorkortet på lager så jag valde helt enkelt en som fysiskt var kompatibel med en Arduino Uno. Processorkortet kostar kanske sex dollar på ebay.
Ett litet RC-servo av lämplig storlek hittade jag i miljonlådan (Tower Pro micro servo 9g). Ett servo kan beställas från ebay för någon dollar.
Jag hittade stegmotorn inklusive drivkort ULN2003 hos en elektronikaffär i Åbo och beställde den över nätet (https://www.triopak.fi/fi).
Jag monterade styrelektroniken utan att ännu bygga in den i det 3d utskrivna skalet. Jag ville enkelt kunna testa servot och stegmotorerna utan att ideligen öppna skalet på apparaten. Det började nu dyka upp problem …
Problem #2
Jag kunde utan problem kompilera drivprogrammet och ladda ner det på Arduinokortet. Då jag försökte få kontakt med äggskrivaren genom programmet Inkscape dök det upp problem. Ritprogrammet Inkscape för vilket det finns en tilläggsdel för att driva äggskrivaren verkade inte över huvudtaget kunna se Arduinoprocessorn.
Problemet visade sig bero på att då jag via min dator försöker komma i kontakt med Arduinon så skickar datorn via USB en DTR signal (data terminal ready) som på UNO är kopplad till Reset d.v.s. UNOn startade om då jag öppnade kommunikationen mot UNO. I sig är detta inget problem, jag behöver bara vänta på att Arduino Uno startar om varefter linjen är öppen och bör fungera i fortsättningen.
På en linuxdator söker Inkscape efter äggskrivaren genom att öppna en serieförbindelse i taget varefter programmet väntar på att UNO startar om varefter Inkscape skriver ‘v\r\n’ d.v.s. ber om äggskrivarens versionsinformation. Om svaret kommer inom en vettig tid så vet Inkscape var äggskrivaren finns och kan börja skicka kommandon till skrivaren. Orsaken till problemet är att en Linuxdator har tillgång till en stor mängd potentiella serieportar ocxh det krävs lång tid för att beta av alla portar … så lång tid att jag gav upp 😉 . Den lösning jag fastnade för var att läsa av om Arduino Uno var kopplad till min dator. Detta kan kontrolleras med hjälp av kommandot:
lsusb
Bus 002 Device 005: ID 248a:8367 Bus 002 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 002 Device 060: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Man kan enkelt identifiera den egna anslutna USB-enheten i mitt fall Arduino Uno-kortet genom att först ge kommandot lsusb utan att kortet är anslutet varefter man ansluter kortet och ger kommandot på nytt. Den nya rad som dyker upp innehåller den kod jag vill ha. Jag har märkt ut den aktuella raden med fet stil ovan.
Kommandot listar alla USB anslutna apparater på datorn. I princip har UNOn en unik identifikationsadress. Jag modifierade Inkscapes sökprogram så att det först tittade efter min specifika Arduino UNO innan den försöker söka igenom alla andra serieportar. Äggskrivaren hittas nu snabbt och bekvämt utan problem.
Eggbot tilläggsdelen för Inkscape finns i en linuxdator i katalogen:
~/.config/inkscape/extensions
Programmet jag modifierade var: ~/.config/inkscape/extensions/ebb_serial.py .
Jag lade in mitt Arduino UNOs id i raden:
if port[2].startswith(”USB VID:PID=1A86:7523”):
Koden 1A86:7523 fick jag från lsusb-kommandot ovan.
Problemet med att Arduino UNO startar om då en yttre enhet försöker ansluta över USB kan elimineras genom att bryta en förbindelse på kretskortet om Arduinon är en äkta Arduino Uno. I mitt fall är det fråga om en kopia från vilken man har lämnat bort den här egenskapen. Nackdelen med att kapa ifrågavarande hopptråd är att programmeringen blir besvärligare. Inom ca. en sekund efter att man börjar ladda upp program till Arduinon måste man trycka på reset på Arduinokortet … reset-tryckningen har eliminerats i Arduino Uno genom att låta DTR sköta saken men då dyker det upp ovanstående problem.
Problem #3
Min ena stegmotor av typen 28BYJ-48 var defekt. Stegmotorn råkade vara kopplad till armen som styrde pennan. Något kugghjul inne i motorns kuggväxel (64 ggr nedväxling) är defekt vilket leder till att motorn stoppar i ett specifikt läge. Jag bytte ut motorn varefter det fungerade.
Problem #4
Då jag testade stegmotorerna med en verklig bild genom Inkscape så visade det sig att motorerna gick relativt varma och de snurrade endast i en riktning. Orsaken var att instruktionerna för hur styrsignalerna fron Arduino skulle kopplas till drivkortet var felaktiga. In/ut pinnarna 2,3,4,5 styr IN1, IN2, IN3 och IN4 på stegmotorns drivkort. Det visade sig att jag för korrekt funktion måste kasta om pinnarna 3 och 4. Kopplingen till stegmotorn blev då:
pin 2 –> IN1
pin4 –> IN2
pin3 –> IN3
pin5 –> IN4
På mitsvarande sätt måste pinnarna för den andra stegmotorn kopplas:
pin 8 –> IN1 (drivkort #2)
pin10–> IN2
pin9 –> IN3
pin11–>IN4
Bilden visar processorkortet Artduino UNO till vänster (blått) samt två stegmotordrivkort (vita) baserade på kretsen ULN2003. Drivkorten är inget stegmotorkontrollkort utan uttryckligen en serie transistorer som kan kopplas på och av under processorkontroll. Arduinin kontrollerar bitmönstret för varje steg. För att en stegmotor skall stega måste en serie bestämda bitmönster genereras som genererar önskade magnetfält inne i stegmotorn och bitmönstrena måste skickas till motorn i korrekt ordning och ordningsföljden byter om man vill backa …
En stegmotorkontroller behöver egentligen endast två signaler steg och riktning en kontrollkrets kan oftast också justera strömmen genom stegmotorn vilket kan användas till bl.a. att justera motorns effekt och motorns temperatur. En riktig stegmotorkontroller innehåller egen intelligens och den genererar själv korrekta bitmönster för stegning framåt och bakåt. Det finns avancerade stegmotorkontrollers som också på egen hand klarar av att accelerera och decelerera. Man kan inte abrupt ändra stegfrkvensen på en stegmotor eftersom den då kan tappa bort steg vilket blir pinsamt om maskinen som styrs inte mäter den exakta positionen … vilket i allmänhet inte görs om man använder stegmotorer.
De fyrpoliga sladdarnas ledare i mitten (på de vita korten eller på arduino men inte båda) måste kastas om för att stegmotorn skall stega i båda riktningarna.
Efter att ett antal gånger ha plockat ihop äggskrivaren och sedan isär igen började grundfunktionerna se korrekta ut. Hålen i de 3d utskrivna mekaniska bitarna tenderade att vara för små vilket krävde filande samt varmluftsblåsare. Då ett hål nästan är korrekt kan man värma komponenten varefter man pressar på den med milt våld varvid passningen blir exakt. Någon bit värmde jag så mycket att den ändrade form vilket löstes genom att skriva ut en ny bit.
Ägghållaren vid rotationsstegmotorn använder en O-ring som friktionsyta mot ägget. Vid den fria axeländan som är kullagrad finns motsvarande något mindre O-ringsyta som trycks mot ägget med hjälp av en metallfjäder. Metallfjäderns längd kan justeras med hjälp av en mellanbricka som kan skrivas ut med 3d skrivare i olika tjocklekar. Tanken är att ägget skall vara stadigt monterat men man får inte trycka så hårt att ägget går sönder. Det är extremt viktigt att ägget inte rör sig medan äggskrivaren skriver eftersom detta dödar all precision. Mer om injustering senare i artikeln. Jag är inte övertygad om att min konstreuktion som använder O-ringar nödvändigtvis fungerar speciellt bra. Tiden får utvisa och då måste något annat system prövas.
Pennans drivmekanik. Den lilla stegmotorn till höger i bilden vrider pennan kring centrum av ägget. Vi ser den vita servoarmen som används för att höja/sänka pennan. Pennan trycks mot ägget av dess egen tyngd. Vi ser o-ringen vid rotationsmotorn som fungerar som friktionsyta för att hålla ägget på plats. Den fjäderbelastade hållaren för äggets spetsiga ända syns nere till höger.
Äggskrivaren sedd från en annan vinkel. Observera att pennans lyftservo är monterat på den vertikala armen som är monterad på stegmotorn i mitten.
Arbetsprocess för att rita på ett ägg
Vi använder programmet Inkscape som är ett öppet källkodsprogram som finns att ladda ner gratis för Windows, Masc och Linux. Jag kör sedan många år endast Linux och jag har inte ens Windows installerad på mina två arbetsmaskiner. Nedanstående är inte någon ingående instruktion för hur man använder Inkscape. Det finns goda instruktioner för detta om man googlar Inkscape.
Då vi monterar ägget är det viktigt att det är möjligast väl centrerat vilket vi kan kontrollera t.ex genom att utan penna vrida ägget ett varv. Detta kan vi enkelt göra genom att skapa en Inkscape bild med storleken 4070×800. Från dokumentets vänstra kant till dokumentets högra kant dras en rät linje mitt på dokumentet. Använd View/Zoom Out så att hela bildytan kan ses då strecket ritas från kant till kant. Om vi utan penna ”skriver ut” detta dokument så kommer ägget att vridas 360 grader runt sin axel. Genom att hålla ett lämpligt föremål som referens mot skrivarbasen kan vi kolla om avståndet mellan referensföremålet hålls konstant genom varvet eller om avståndet varierar. Om vi sder betydande variationer lönar det sig att försiktigt flytta ägget vid någondera ändan så att felet blir så litet som möjligt. Det lönar sig att experimentera.
En hjälpbild som består av endast ett enda streck tvärs över bilden kan användas till att kontrollera att ägget roterar precis ett varv och att det sitter korrekt monterat utan att kasta av och an då det roterar.
Under Extensions/Eggbot/ hittar vi EggBot control. Med denna kontroll kan vi kontrollera att lyftning/sänkning av penna fungerar samt skriva ut en bild i Inkscape. Vi börjar med att skriva ut (utan penna) vår räta linje för att kontrollera att ägget är centrerat och att det roterar precis ett varv.
Vi öppnar nu ett nytt dokument antingen så att vi skapar det själv eller så att vi laddar ner ett mönster vi gillar från nätet. Vi måste nu justera bildens storlek så att den precis fyller hela ägget utan att överlappa. För min skrivare med 28BYJ-48 stegmotorer och ULM2003 styrkretsar skall dokumentets storlek sättas till ungefär 4070(bredd) x 800 (höjd). Den bild vi har läst in kan manuellt justeras till den bredd vi vill ha.
Ett test av utskrift från Inkscape visar att skrivaren i princip fungerar men det är extremt viktigt att:
Ägget centreras korrekt så att det inte blir några kast då det roterar
Pennan ställs in till lämplig höjd så att den ritar också vid ytterlägena
Pennan ställs i mittläge innan ritningen påbörjas. Det finns annars risk för att pennan slår i ägghållaren i ändläget vilket kan lösgöra ägget delvis så att det gungar av och an.
Provritning gav resultatet nedan vilket inte ännu är så bra.
Då man tittar noga på bilden ser man att det är en springa mellan ägget och tjockändans O-ring vilket gör att denna ända av ägget abrupt hoppar av och an med intressanta resultat vid utritningen. Jag glömde att dra fast skruven som håller pennan vilket ledde till att pennan gungade av och an beroende av pennans rörelseriktning.
Jag kommer att modifiera tjockändans fastsättning för att åtgärda felen. Jag är helt optimistisk på att skrivaren ännu kommer att fungera helt OK.
Tack till alla kända och okända på nätet som har lagt ner mycket arbete på både utveckling av programvara och hårdvara.
Den extremt billiga och samtidigt kompakta stegmotorn 28BYJ-48 är inte bra till följd av att den är utväxlad. Kugghjulen i kuggväxeln är aldrig perfekta och speciellt i en sådan här billig motor så finns det glapp d.v.s. om vi ritar en linje i en rörelseriktning och sedan byter riktning så kommer det att finnas ett obestämt område till följd av glapp. Lösningen skulle vara bättre stegmotorer som inte är utväxlade men detta betyder samtidigt att en stor del av mekaniken måste förnyas. Byter man stegmotorerna så får man dock mycket bättre exakthet vid ritandet.
Modifierad fastsättning av ägget
Jag konstaterade ovan att ägget gungade av och an i upphängningen gjord av O-ringar. Orsaken var att O-ringens dimension i förhållande till ägget blev fel. Ägget låg antagligen delvis direkt mot ändplattan vilket gjorde att det kunde glida sidlänges vilket i sin tur gjorde ritandet mycket inexakt.
Jag hittade röda flaskkorkar av gummi (se bild nedan). I finland är det här traditionella korkar som man speciellt hittar på hösten vid saftningstider. Jag köpte en påse korkar och klippte sönder en som blev en ca. 7 mm djup mjuk ägghållare. Resultatet blev mycket bra och precisionen förbättrades radikalt.
Med den modifierade hållaren blir ritandet reproducerbart, räta linjer som går runt hela ägget träffar startpunkten igen efter ett varv … något som inte hände tidigare.
Notera den 3d utskrivna pennhållaren. Jag skrev också ut en hållare för tre pennor i vilka pennorna kan förvaras utan kork. Den extra pennadaptern gör det mycket enklare att montera pennerna exakt och lika för alla pennor.
Planerade vidare modifiationer
Det finns fortfarande ett tydligt kännbart glapp i pennans stegmotor till följd av stegmotorns växellåda med utväxlingen 1:64 d.v.s. stegmotorn roterar 64 varv då den utgående axeln roterar ett varv.
Jag beställde en Nema 13 stegmotor som har ungefär samma dimensioner som den nu använda 28BYJ-48 men helt utan utväxling. Då jag får stegmotorn så planerar jag att först köra den med den existerande drivkretsen och om det fungerar OK så använder jag den. Alternativet är att jag byter ULN2003 drivkortet mot en kontroller av den typ som finns i dagens 3d-skrivare. Exempelvis A4988 eller DRV8825 av vilka jag uppfattar den senare som marginellt bättre.
En stegmotor av annan typ kommer att kräva modifikation av ritarmen d.v.s. jag blir tvungen att designa en egen variantmed något annorlunda dimensioner. Fastsättningen av armen i stegmotoraxeln kommer att säkras med skruv vilket inte är falllet nu.
Beslutar jag mig för att byta ut stegmotorkontrollern så blir jag antagligen tvungen att skriva ut en modifierad bottenplatta eftersom A4988 och DRV8825 saknar skruvhål och därför kräver en annan fastsättning.