Att fasta

20/02/2019

Många religioner har en eller flera påbjudna fasteperioder. Vid första påseende kan fasta verka vara någonting som endast är ägnad att stärka karaktären hos de troende utan andra fördelar, detta är dock en felaktig föreställning.

Fasta ger många medicinska fördelar

Fasta ger förutom karaktärsbyggande fördelar också direkta medicinska fördelar.  Jag beskriver nedan fasteperioden i min egen religion, jag är bahai. Motsvarande fasta finns i många andra religioner även om det kan finnas små skillnader som jag dock uppfattar vara oväsentliga.

Bahaifastan är en period från början av mars fram till vårdagjämningen. Under fasteperioden strävar man att undvika mat och dryck mellan solens uppgång och nedgång. Det är intressant att se att olika individer uppfattar fastan mycket olika. Vissa individer lider av en fruktansvärd hunger medan andra verkar klara av att vara utan mat och dryck helt utan problem. Orsaken till de här skillnaderna är, uppfattar jag, vilken typ av kost personen som fastar äter under de tillåtna tiderna.

Då kroppens metabolism går över från normalt ätande till att bränna lagrat fett, övergången kräver bortåt ett dygn beroende av vad som äts om fastan inte är total, så kommer kroppen först att ge sig på de egna vävnaderna. I början av fastan kommer alltså kroppen först att tömma glukosförrådet (socker) därefter bryts en liten mängd vävnader, sannolikt sådana vävnader som även annars snart skulle ha eliminerats. Efter 16-30 timmar går kroppen over till att bränna fett. Insulinnivån är nu låg vilket även gäller blodsockernivån. Ur kroppens fettförråd hämtas fett (ketoner) som i de flesta fall kan användas av kroppens celler direkt i stället för socker. T.ex. hjärnan använder ketoner som ett normalt reservbränsle … ur naturens synvinkel skulle det knappast ha varit speciellt bra om en individ efter en snabb språngmarch skulle stänga av hjärnan då det inte finns fritt socker … människosläktet skulle inte ha blivit långlivat. Det finns dock en celltyp som inte kan utnyttja ketoner och det är cancerceller. Fasta med lågt blodsocker gör att en eventuell cancer går på sparlåga och eventuellt elimineras av kroppens immunsystem som varande defekta vävnader som borde putsas bort. Min personliga uppfattning om fasta utan dryck är att detta ökar kroppens stress i viss mån vilket eventuellt hjälper immunsystemet att känna igen defekta vävnader.

Problem vid fasta

Om man fortsätter att äta som man gör normalt utanför fastan … under de tider då detta är möjligt så blir nyttan av fastan relativt liten. Ett uppehåll i ätandet på ungefär tolv timmar sänker blodsockret men kroppen hinner inte gå in i fettbränningsmod och resultatet är att personen som fastar kommer att vara vrålhungrig varje kväll då ätande igen är tillåtet. Hungern är lyckligtvis relativt lätt att hantera:

Att hantera hungern

Det är välkänt frän medicinsk forskning att socker snabbt tar bort hungerskänslan och blodsockret stiger snabbt. Man vet också från forskningen att kroppen då blodsockret sjunker kommer att uppfatta sjunkande blodsocker som hunger. Resultatet blir lätt ett ”jo-jo” ätande där man med korta intervall äter något för att hantera hungern men eftersom man äter kolhydratrika mellanmål så blir man mycket snabbt hungrig igen.

Det visar sig dock att mättnadskänslan effektivare styrs av fett. Om personen äter tillräckligt mycket fett i stället för kolhydrater (socker, bröd, pasta ….) så kommer blodsockerhalten att stiga endast lite efter t.ex. morgonens måltid. Om blodsockerhalten inte stiger och vi via fett säger åt kroppen att vi är mätta så kommer vi inte heller att uppleva en våldsam hunger några timmar efter måltiden eftersom blodsockret hålls konstant utan någon snabb nedgång.
Fett och alldeles särskilt mättat fett har demoniserats i över 50 år utan hållbara vetenskapliga belägg.  Det mättade animaliska fettet har ersatts med olika typer av fröoljor som modifierats på kemisk väg så att de blir fasta och kan användas som margarin. De här fetterna är onaturliga för vår kropp och sannolikt skadliga … tänk dig att du äter industrifett … vaselin. De konstgjorda fetterna är normalt gråa och smaklösa och därför färgas de och smaksätts artificiellt så att de skall påminna om smör.  Det är intressant att se vad som händer i Sverige där man de senaste 10-15 åren främst genom läkaren Annika Dahlqvist haft en stort intresse för LHCF kost (extremt lite kolhydrater och mycket naturligt fett).

HearthHealth_butter_sweden.png

Bilden visar trenden för smörkonsumtion i Sverige i samma kurva som hjärtsjukdomar.  Bilden är tagen ur videon ”Reversing Obesity & Diabetes – The Low Carb High Fat Diet – holytext.org” som hittas på youtube.

”Vi der hur trenden för män, den övre kurvan, var långsamt minskande sedan början av 1990-talet för att därefter kraftigt minska samtidigt som smörkonsumtionen går upp kraftigt. Lite mera dramatiskt kan man presentera detta som:

HearthHealth_butter_sweden2.png

Notera hur hjärtsjukdomarna halveras hos män då mängden mättat fett i form av smör ökar. Betyder detta att det är smöret som är den magiska medicinen mot hjärtsjukdomar, diabetes etc. ? Knappast! Min gissning är att den ökande smörkonsumtionen är ett indirekt mått på hur väl LCHF kosten har slagit igenom i Sverige. Smörkonsumtionen ökar eftersom det är ett hälsosamt fett som är lätt att komma över. I andra delar av världen äter man t.ex. i stället rätt stora mängder kokosfett.

Bekväm fasta

Man kan fasta relativt bekvämt så att man äter en fet och mycket kolhydratfattig måltid på morgonen. Ett exempel är en brittisk frukost med ägg, bacon, smör men inget rostat bröd. Brödet kan bytas ut mot olivolja, avocado, fet ost etc. Inga drycker med socker d.v.s. ingen juice, inget socker i kaffet. Gärna kan man lägga till lite sallad, tomater etc. som har vuxit ovan jord då dessa grönsaker är fattiga på kolhydrater. Avocado innehåller extremt mycket nyttigt fett och därmed väldigt lite kolhydrater. Gillar man att dricka mjölk så skall det vara helmjölk eftersom helmjölk innehåller nyttigt fett. Fettri mjölk som, då fettet är borttaget, till största delen består av mjölksocker vill vi inte ha eftersom detta skapar hungerkänsla genom att blodsockret påverkas.

På kvällen kör man igen med samma princip d.v.s. man väljer så lite kolhydrater som möjligt men accepterar fett i sådana mängder som kroppen accepterar. Vi äter alltså precis så mycket det känns bra och så länge vi är hungriga men inte mera. Det finns inget behov av att stuffa sig full eftersom det fett vi äter hållern hungern borta länge.

Varför fet fastemat

Avsikten med den feta maten är att tvinga ner kroppens insulin- och sockernivå. Lågt insulin betyder att kroppen signalerar till fettcellerna att det är tid att börja ta ut fett ur kroppens fettlager. Så länge insulinet är högt kan kroppen inte ta ut fett ur de egna förråden utan kroppen fortsätter att lagra fett. Insulin är det hormon som befaller kroppen att lagra fett.

Då kroppen väl har gått över i fettförbränningsläge så försvinner hungern eftersom kroppen normalt i vårt västerländska samhälle har fettförråd som räcker många veckor. Det finns inget behov av någon kraftig hungerssignal eftersom kroppen inte lider brist på mat. Vi är konstruerade för att utan några större problem kunna vandra i flera dagar helt utan mat.

Ätande av t.o.m. relativt små mängder kolhydrater leder till att kroppen inte går över i fettförbränningsläge utan den växlar mellan hög sockernivå och förstadiet till fettförbränning d.v.s. kroppen producerar socker som tas ur de egna musklerna och organen … resultatet är en våldsam hunger. Hantering av hungern är alltså helt beroende av att man strikt undviker kolhydraterna under hela fasteperioden.

Risker med fasta

Personer med diabetes bör följa med blodsockernivån eftersom blodsockret, eventuellt efter en mycket kortvarig höjning, sjunker kraftigt. Lösningen är då inte att kompensera med socker och kolhydrater utan att minska på insulinet. Det vi eftersträvar är naturligtvis en betydligt lägre insulinnivå vilket löser många av de problem som uppstår vid diabetes typ 2.

Sammanfattning

  • Fasta är nyttigt och kroppen mår bra av fasta.
  • Fasta kombinerat med mycket lite kolhydrater och kraftigt höjt fettintag tar bort hungern som förorsakas av snabba blodsockersvängningar. Förutsättningen för att ta bort hungern är att man inte över huvudtaget äter ”normal” kolhydratrik kost.
  • Demoniseringen av mättat fett är en myt. Det finns inga goda vetenskapliga belägg på detta. Däremot finns det idag en stor mängd publikationer som pekar på de problem vårt överdrivna kolhydratintag skapar hos en stor del av befolkningen.
  • Fastan är en god möjlighet att experimentera med LCHF kost och ett extra bonus är att fastan blir mycket lättare att genomföra eftersom hungern försvinner då mängden fett i maten ökar och mängden kolhydrater kraftigt minskar.
  • Dagens kostpyramid med mängder av kolhydrater som bas bygger på 50 år gammal vetenskap som har bevisats bygga på forskningsfusk. Den på stora mängder kolhydrater baserade kostpyramiden är antagligen osaken till miljoner och åter miljoner människors förtidiga död efter ett långvarigt lidande. Läkarskrået som borde vara väl påläst har mycket svårt att acceptera naturliga metoder för att hantera diabetes typ 2 och övervikt eftersom detta samtidigt betyder att man har gett skadliga råd åt befolkningen i tiotals år och man har orsakat död för miljoner människor i oförstånd.
  • Hur man botar typ 2 diabetes har varit känt i mer än hundra år. Tidigare kallades diabetes för sockersjuka. Typ 2 sockersjuka där personen ännu producerar insulin botas genom att helt enkelt eliminera socker och största delen kolhydrater ur kosten. Detta kan göras helt utan bieffekter, hälsan förbättras dramatiskt och i fall av svår övervikt går vikten ner kraftigt.

Kostråd för personer med diabetes före insulinets tid

I Kostdoktorns video nedan finns en intressant hänvisning till en bok från 1917 med instruktioner angående kost för diabetiker.
1917_diabetic_diet
Utanför bilden visas ytterligare makaroni (pasta) som strikt förbjuden för diabetiker.

Vilken är år 1917 läkarens rekommenderade hälsosamma mat som botar diabetes typ 2?
1917_health_food.png

Vi har alltså inget nytt under solen. Hela problemet med övervikt och diabetes typ 2 är lätt att förstå och botemedlet är självklart. Har man ”sockersjuka” så eliminerar man socker och kolhydrater så väl som möjligt ur kosten. Resultatet är att kroppen läker sig själv i enlighet med de gamla grekernas talesätt ”Låt maten vara din medicin och låt dim medicin vara din mat” men då måste man ju komma ihåg att den medicinska industrin nog skulle göra en brakförlust.

Videon av Kostdoktorn i sverige är intressant att titta på som bakgrund till ovanstående diskussion. Bilderna tidigare i texten är klippta ur nedanstående intressanta video. Notera att jag inte har något att göra med den religiösa organisation som tydligen står bakom videon. Innehållet är bra och innehåller ingen religiös propaganda av någon sort. Notera att språket i videon är Engelska även om föreläsaren är svensk.

 

Kolhydrater, hjärtsjukdom och c-vitamin

14/02/2019

Det verkar rätt klart att socker och kolhydrater i överdrivna mängder på sikt leder till metaboliskt syndrom som i sin tur kan leda till diabetes typ 2 med mänder av följdsjukdomar bland dessa bl.a. kärlsjukdomar.

Det börjar vara utom allt tvivel att de kostråd vi har matats med de senaste 50 åren har varit fullständigt vansinniga och resultatet har varit invaliditet och död för miljoner människor som har försökt följa ”experternas”, forskarnas eller borde man säga fuskarnas råd.

Nobelpristagaren Linus Pauling propagerade för höga doser av c-vitamin som i kombination med Lysin i många fall rätt snabbt löser upp blockeringar i kranskärlen och lättar på bl.a. angina pectoris.

Linus Pauling motiverade c-vitaminanvändningen mycket väl, han var nobelpristagare i kemi vilket betyder att han exakt visste vad han talade om … vilket man inte alltid kunde säga om kritikerna läkare utan två Nobelpris.

Högt kolhydratintag en riskfaktor för kranskärlssjukdomar?

Paulings konstaterande att låga c-vitaminnivåer leder till undermåligt kollagen som i sin tur leder till att blodådror som inte tål det tryck och de rörelser de utsätts för nära hjärtat vilket kroppen kompenserar med att nödreparera med kolesterol vilket på sikt kan leda till blockeringar. Här finns knappast någonting konstigt.

Annika Dahlquist ovan har visat på en mängd fall där patienter efter att de har gått över från en kolhydratrik kost till en ectremt kolhydratfattig men fet kost snabbt blir av med mängder av olika sjukdomar såsom diabetes typ 2 (vuxensockersjuka), ledproblem, hjärtproblem, fibromyalgi o.s.v. Hur stämmer detta överens med Linus Paulings teorier om c-vitaminets centrala roll?

Min tes, som är spekulativ, är att det inte finns någon konflikt mellan Paulings idéer och LCHF kosterefarenheterna. Mitt argument är följande:

Ett högt kolhydratintag speciellt då en person börjar visa tecken på metaboliskt syndrom via förhöjt blodsocker (men inte ännu konkret typ 2 diabetes) via det förhöjda blodsockret effektivt sänker sin c-vitaminnivå även om detta inte kan mätas eftersom blodets c-vitaminnivå är ”normal”. Orsaken är att c-vitamin, som djur själva syntetiserar ur socker men människan inte kan producera,  kemiskt liknar socker i hög grad.  Följden av detta är att kroppen använder samma receptorer (kanaler) för att transportera socker och c-vitamin till kroppens celler. Om det då finns ett överskott av socker i kroppen så kommer sockret att delvis blockera införsel av c-vitamin till kroppens celler.

Min gissning är att blockeringarna inte nödvändigtvis är jämnt fördelade i kroppen. Vissa organ kan lida mera av förhöjda sockernivåer än andra.

Resultatet av höjt blodsocker blir då att kollagenets kvalitet sjunker exakt på samma sätt som om kroppen skulle få för lite c-vitamin. Skadorna blir identiska med hjärtproblem, ledproblem skador på blodkärlen i ögonbottnen etc.

Då en person går över till LCHF diet så får vi två fördelar. Vi sänker kraftigt insulinnivån och blodsockret hålls på en låg och jämn nivå. De sänkta insulinnivåerna leder till att kroppen får en signal att inte lagra energi i form av fett utan kroppen börjar ta ut fett ur förråden vilket leder till bl.a. viktminskning. Den andra effekten är att tillgången till c-vitamin på cellnivå ökar dramatiskt om vi antar att socker och cvitamin har samma sannolikhet att nå cellernas receptorer. Om sockernivån stiger till det dubbla (diabetes) så bör tillgången till c-vitamin halveras vilket lokalt kan leda till skörbjuggsliknande kroniska problem. En kraftig sänkning av blodsockernivån bör på motsvarande sätt leda till att cellernas tillgång till c-vitamin ökar kraftigt vilket är mycket önskvärt.

Hur borde man tänka? Min uppfattning är att skadorna från alltför mycket kolhydrater i kosten delvis går att kompensera genom att höja c-vitaminnivån. För att c-vitaminnivån skall hållas hög måste c-vitamin tillföras flera gånger per dag eftersom c-vitamin inte lagras i kroppen och överskottet c-vitamin utsöndras med urinen. Då kroppen kommer in i ett läge med insulinresistans, d.v.s. kroppen reagerar inte längre på stigande insulinnivåer eftersom cellernas insulinreceptorer är blockerade, så leder detta till en allt svårare dold skörbjugg som syns som tandproblem, ledproblem, ryggproblem, hjärtproblem allt kända problem hos diabetiker.

Lösningen är naturligtvis enkel. Man återgår till tidigare tidsåldrars kost där mängden kolhydrater utgör en bråkdel av dagens nivå. För en person med början till metaboliskt syndrom och diabetes typ 2 lönar det sig antagligen att åtminstone till en början försöka eliminera i stort sett alla kolhydrater för att på detta sätt ge kroppen en möjlighet att reparera sockerskadorna. Sannolikt skadar det inte att samtidigt höja c-vitaminnivåerna genom att ta några gram c-vitamin utspritt över dygnet.

 

Medaljens baksida

14/02/2019

Den Svenska läkaren Nisse Simonsson skriver i facebook gruppen ”Lev frisk längre” att ”Jag skulle på något sätt vilja försäkra mig om att den här artikeln via kontakter och kontakters hjälp kommer till några som kan läsa förstår vad dom läser och har verktyg att agera…”

Vad är det Nisse vill föra fram? Hän hänvisar till en artikel du hittar bakom följande länk:

http://www.webdc.com/pdfs/deathbymedicine.pdf

Dokumentet är långt, tjugofem sidor. Dokumentet är på engelska och jag har nedan översatt/refererat några korta utdrag.

Några godbitar

Det uppskattade antalet dödsfall till följd av en läkare/kirurgs misstag eller till följd av medicinsk behandling eller diagnostik (iatrogena dödsfall) är i USA ungefär 783936 per år. Det är klart att det Amerikanska medicinska systemet är den främsta orsaken till skador eller död i USA. Man kan jämföra dessa 783936 döda med antalet döda i hjärtattack (699967) eller antalet dödsfall i cancer (553251).

Om man tittar på antalet döda under en tioårsperiod så är antalet döda fler än alla stupade i alla de krig USA genom hela sin historia har deltagit i … och det är ganska många (min kommentar) .

Endast mellan 5 och 20% av alla iatrogena händelser rapporteras. Detta betyder att om medicinska fel skulle rapporteras exakt och varje gång så skulle antalet döda vara betydligt högre än 783936. År 1994 konstaterade Leape att hans siffra på 180 000 dödliga medicinska misstag motsvarade att tre fullastade jumbojetplan skulle krascha varannan dag.  Den i artikeln presenterade betydligt högre siffran motsvarar att sex jumbojetflygplan kraschar varje dag.

Det finns en ohelig allians mellan forskning och de medicinska storbolagen:

Vi är helt medvetna om vad som står i vägen för reformer: Starka läkemedelstillverkare och medicinska teknologiföretag tillsammans med andra starka grupper med egna intressen i medicinsk business. De finansierar medicinsk forskning, stöder medicinska skolor och sjukhus och för reklam i medicinska tidskrifter. Med extrema resurser så lockar de vetenskapsmän och akademiker att stöda dem. Denna typ av finansiering kan påverka opinioner från att ha varit försiktiga och professionella till att okritiskt acceptera nya terapier och mediciner. Man behöver endast se på vilka personer som sitter i medicinska och samhälleliga styrelser för att se intressekonflikter. Vanliga människor är oftast omedvetna om dessa intressekonflikter.

Man kan se intressekonflikterna genom att titta på finansieringen av publicerade medicinska avhandlingar:

En ABC news rapport konstaterade att en genomgång av medicinska experiment visade att när ett läkemedelsföretag finansierar en studie så är chansen ca. 90% att medicinen skall uppfattas som effektiv medan en studie finansierad av andra än läkemedelsföretag visar positiva resultat endast i 50% av fallen. Det ser ut som om man inte kan köpa kärlek för pengar men att pengar nog kan köpa önskade vetenskapliga resultat.

Det finns en obehaglig koppling mellan läkemedelsföretag och statliga kontrollorgan gällande rapportering av biverkningar olika läkemedel ger upphov till. Jag tänker främst på modemedicinen olika typer av Statiner. Till statinernas, självklara, bieffekter hör bl.a. minnesproblem som är en följd av att man manipulerar en av grundkomponenterna i hjärnan (kolesterol).

Medicinska farmakologiska texter medger att relativt få läkare någonsin rapporterar om icke önskvärda reaktioner på läkemedel till FDA. Orsakerna går från att läkaren inte vet att ett sådant system existerar till en rädsla för att bli stämd inför domstol. Trots detta är vanliga människor helt beroende av detta dåliga system för att få information om huruvida en medicin eller ett medicinskt ingrepp är skadligt.

Även då ett medicinskt preparat som sådant har önskad effekt finns det problem. Om processerna på ett sjukhus eller på ett vårdhem inte fungerar så kan helt vettig medicinering ge upphov till farosituationer.

En studie från 2002 visar att 20% av patienterna som gavs medicin fick fel medicindos. Nästan 40% av dessa fel uppfattades vara potentiellt skadliga för patienten. I ett sjukhus med 300 bäddplatser var antalet fel 40. Problemen gällande medicineringen var ännu större följande år. Felfrekvensen som farmakologer observerade var i denna studie 24% vilket ger ett potentiellt minimiantal patienter skadade av receptbelagda mediciner 417908.

Potentiellt skadliga mediciner skrivs ut utan att man egentligen vet om patienten faktiskt störs så mycket av sina symptom att medicinering är nödvändig eller man observerar inte att medicinen har biverkningar.

I en studie i New England Journal of Medicine led var fjärde patient av observerbara bieffekter av de mer än 3.34 miljarder recepten år 2002. En av läkarna som producerade studien intervjuades av Reuter och kommenterade: ”Med dessa 10-minuters patienttider så är det svårt för läkaren att uppfatta om symptomen är störande för patienterna.” William Tierney som fungerade som redaktör för studien konstaterade ”… med tanke på det ökande antalet kraftiga mediciner som finns tillgängliga så kommer problemet endast att bli värre.” Medicinerna med de svåraste bieffekterna var SSRI (selective serotonin reuptake inhibitors), NSAIDs (non steroidal anti.inflammatory drug), calcium blockerare. Reuters rapporterade också att tidigare forskning indikerade att 5% av intagna på sjukhus är där till följd av bieffekter av läkemedel. De flesta fall (av bieffekter) rapporteras inte som sådana. Studien kom fram till att en orsak till detta var att i tre fall av fyra läkaren inte klarade av att identifiera medicinens bieffekter eller läkaren brydde sig inte om varningstecknen.

Ibland kan man inte sopa alla problem under mattan:

Ibland bötfäller FDA en läkemedelstillverkare när felen är alltför grova och omöjliga att dölja. I maj 2002 rapporterade The Washington Post att bolaget Schering-Plough Corp som tillverkade preparatet Claritin skulle betala 500 miljoner dollar i böter till FDA för kvalitetskontrollsproblem vid fyra fabriker. Straffet kom efter att gruppen Public Citizen Health Research Group ledd av Dr Sidney Wolfe krävde en kriminell undersökning till följd av att bolaget levererade albuterol astma inhalatorer trots att de var medvetna om att den aktiva ingrediensen saknades …

Big business, en barnafödelse utan komplikationer lär kosta bortåt $80 000. Vem bryr sig om att riskerna, och dödsfallen, ökareller att modern kan få helt onödiga bestående skador. Det finns mycket pengar att hämta.

År 2001 var kejsarsnitt det vanligaste kirurgiska gynekologiska ingreppet. Ungefär fyra miljoner födslar sker per år där 24% (960 000) görs via kejsarsnitt.  I nederländerna föds endast 8% av barnen med kejsarsnitt.  Detta tyder på 640 000 onödiga kejsarsnitt per år, med en dödlighet som är 3 – 4 ggr högre dödlighet än vid normal vaginal födsel och 20 ggr fler skador, sker årligen i USA.

Skötseln av speciellt långliggare var redan i början av 2000-talet usel och den har knappast med facit på hand gällande Finsk åldringsvård blivit bättre:

En rapport från Coalition for Nursing Home Reform konstaterar att åtminstone en tredjedel av nationens 1.6 miljoner åldringsboende kan lida av undernäring och uttorkning vilket leder till förtidig död. Rapporten betonar vikten avv tillräklig personal för att mata patienter som inte är kapabla att äta själva. Det är svårt att sätta ett dödlighetstal på undernäring och uttorkning.  En rapport konstaterar att underrnärda jämfört med icke underrnärda då de tas in på sjukhus har en dödlighet som är fem gånger högre än den välskötta gruppen. Ur denna jämförelse kan man uppskatta antalet förtidigt döda till ungefär 108800 per år.

Ytterligare gällande långvård i USA men med tanke på nyheter i Finland aktuellt också här.

Väldigt lite statistik finns tillgänglig gällande undernäring på akut-vård sjukhus vilket visar hur lite fokus det finns på detta problem.  En amerkansk studie undersökte näringstillståndet hos 837 patienter på ett icke akut sjukhus över en period om 14 månader.  Studien visade att endast 8% av patienterna var adekvat närda, 29% var undernärda och 63% var på gränsen till undernäring. Till följd av detta krävde 25% av de undernärda patienterna överföring till akutvård jämfört 11% av de välnärda. Författarna konstaterade att undernäring hade blivit en epidemi på denna anstalt.

Om man försöker komma åt problemen så blir detta svårt då en korrekt dödsorsak inte ges:

Död till följd av undernäring, uttorkning och fysikaliska begränsningar dokumenteras sällan i dödsattesten.

Då en åldring har ordinerats en medicin så fortsätter man att ge den oberoende av om den behövs eller inte:

… I medeltal gavs patienterna fem läkemedel, författarna konstaterade att i många fall gavs läkemedlen utan en diagnos som skulle ha motiverat användningen.

Så här fungerar big business:

Seniorer ges möjlighet att välja mellan antingen dyra patenterade mediciner eller billiga generiska mediciner. Läkemedelsföretagen strävar efter att hålla de dyraste medicinerna på hyllorna och begränsa tillgången till generiska mediciner trots böter på hundratals miljoner dollar. År 2001 bötfäldes några av världens största läkemedelsföretag 871 miljoner dollar för konspiration för att höja priset på vitaminer.

Min personliga uppfattning är att varje person som vet att han/hon kommer att tas in på sjukhus bör ta med sig egna C, D och B-vitaminer och det är antagligen bäst att inte säga något om detta till personalen. Att vara beroende av sjukhusmaten längre än någon vecka är ett säkert sätt att få en mängd obestämda ytterligare åkommor som inte har något med den ursprungliga sjukdomen att göra.

 

 

C-vitamin några exempel

08/02/2019

Innan världens miljardärer tog över utbildningen i medicin (Rockefeller) och tog död på i princip all medicin som inte byggde på industriellt framställda kemiska preparat så var medicinen baserad på läkarens egen och kollegers erfarenhet d.v.s. patientberättelser. Idag uppfattas denna typ av berättelser som anekdotiska (hörsägen) med mycket lågt bevisvärde.

Det som gäller idag är dubbelblindtest på stora grupper människor och en process for godkännande av nya läkemedel som är så dyr att endast internationella storföretag har råd med den. Processen för att få ett läkemedel godkänt gör samtidigt att naturliga sedan länge kända ämnen inte godkänns eftersom man inte kan patentera från tidigare kända preparat eller naturprodukter … exakt detta har varit det Rockefeller (som myntade uttrycket: Konkurrens är synd) eftersträvade. Alla storföretag idag eftersträvar monopol av olika slag och en patentmedicin ger monopol och i princip fri prissättning under ett antal år.  Ett verksamt billigt ämne är det sista läkemedelsmiljardärerna vill ha på marknaden. Notera att det beryktade Nazityska IG Farben (som tillverkade giften till gaskamrarna) lever och mår bra i dagens läkemedelsindustri.

Några exempel på C-vitaminens egenskaper

Det är välkänt att effekten av en medicin är en funktion av det verksamma ämnet d.v.s. dosen är extremt viktig. Då man testade penicillin på den första patienten, som beklagligtvis dog, så var orsaken till att han dog att man hade alltför lite penicillin. En alltför liten dos har ingen effekt. Exakt samma sak gäller c-vitamin använd som medicin. Moderna rapporter anger att c-vitamin är verkningslös men då har doseringen varit 500 mg till 1g och dessutom ofta taget som engångsdos vilket sänker effekten. De här egenskaperna hos i princip alla mediciner har varit känd länge men de kan också användas för att ge fel bild av ett ämnes effektivitet. Är denna ”forskning” designad för att ge ett köpt resultat. Det kan här konstateras att de verkningsfulla doserna man har rapporterat från 1940-talet och framåt har legat på tiotals gram per dag ofta givet intravenöst i form av askorbat. Maximidoserna har legat kring 200g per dag … igen givet som dropp. Det är rätt självklart att man inte ser någon effekt om man använder en dos som ligger på en tvåhundradel av det pionjärerna angav som en verksam dos.

Fall #1

För några år sedan gick en våg av en allvarlig influensa den såkallade svininfluensan över världen. I allmänhet klarade människor av den här influensan men speciellt relativt unga personer kunde bli mycket svårt sjuka och dödligheten var signifikant. Videon nedan är ett exempel på hur skolmedicinen kolliderar med de anhörigas kunskap och där skolmedicinen fungerar precis som som en av c-vitaminpionjärerna på 1950-talet F.R. Clenner konstaterade:

Some physicians would stand by and see their patient die rather than use ascorbic acid because in their finite minds it exists only as a vitamin.” (F. R. Klenner, MD)

I videon nedan ser vi hur de anhöriga måste hota sjukhuset med domstol för att läkarna skulle gå med på att ge en döende patient cvitamin intravenöst i tillräckliga doser. Samma läkare hade bett familjen om lov att stänga av maskinerna som höll patienten vid liv under intensivvård. Läkarna vägrade ge c-vitamin eftersom det inte fanns ”belägg” på att det kunde vara effektivt och samtidigt konstaterade samma läkare att de aldrig hade försökt ge c-vitamin. Inget överraskande i en värld där det tog 700 år efter att de första boten bot skörbjugg hade hittats innan läkarskrået accepterade medicinen d.v.s. c-vitamin. Samma ofattbara attityd ser vi nedan:

Samma idé fungerar också på djur som ju i princip borde producera allt det c-vitamin de behöver själv. Då djuret blir sjukt så ökar behovet av c-vitamin och om det är fråga om något allvarligt så kan det hända att djurets egen c-vitaminproduktion inte är tillräcklig.

Kalven i vidon ovan överlevde efter att ha fått en maxidos c-vitamin. Djur producerar normalt c-vitamin från socker men om djuret blir sjukt så stiger behovet av c-vitamin kraftigt och djurets egen produktion blir eventuellt otillräcklig. Extra c-vitamin kan ge en kraftig effekt.

Fall #2 (Robert K. McClain Brunswick, OH)

”År 2004 blev jag så handikappad att jag inte kunde dra på mig mina strumpor och underkläder. Mina fyra och 8 år gamla pojkar måste hjälpa mig att klä på mig varje dag. Under tre månader hjälpte min hustru mig upp från golvet på morgonen, jag kunde inte lägga mig i sängen. Jag kunde inte köra bil, inte flyga ett flygplan eller ens sitta i en stol. Jag hade helt förlorat förmågan att fungera normalt. Jag fick diagnosen sciatica som i mitt fall var en följd av att en av dynorna  nere i ryggraden hade en utbuktning som pressade på närliggande nerver. Trycket ledde till inflammation i nerverna. Följden var invalidiserande smärta i nedre delen av ryggen, benen och fötterna. Rent ut sagt var jag helt invalidiserad.”

”Under denna tid utförde två av Clevelands bästa neurologer en wallectomi som kostade $4000 i vilket inte var medräknat pengar som betalades av mitt försäkringsbolag.  De kopplade mig till elektrode,  de knackade, tryckte och stack; de överöste mig med röntgenstrålar och MRI magnetfält. De försökte droga mig med Bextra men två doser av det nu tillbakadragna COX-inhibitorämnet gjorde mig fruktansvärt sjuk. Allt detta var nästan lika dyrt som det var smärtsamt. Jag riskerade konkret att karriär skulle krascha, att jag skulle förlora mitt livs besparingar och t.o.m. mitt hem.”

”Då dessa två doktorer mötte mig sista gången ställde sig den längre av dem bredvid mig och lade armen på min skuldra och sade ‘du måste helt enkelt lära dig att leva med det här tillståndet'”

”Så det var det. Medicinens bästa hjärnor hade kommit till slutsatsen att jag var ett hopplöst fall och att jag antogs försörja min hustru och två barn på det jag eventuellt kunde få ihop stående. Då jag hade linkat till min hustrus bil och krupit in på baksätet var jag förbannad. Jag lämnade kliniken övertygad om att det måste finnas ett bättre sätt att återfå min hälsa än att lita på överbetalda pillermånglare.”

”Fast besluten att hitta ett sätt att bli botad sökte jag igenom nätet gällande allt som hade med inflammation att göra och hur man kunde bota detta på ett naturligt sätt. Helt av en slump stötte jag på http://www.doctoryourself.com och började läsa på gällande ortomolekulär medicin. Jag lärde mig hur näringen (mat, vitaminer, mineraler och spårämnen) kunde användas till att bota en förvånande mängd olika sjukdomar som utgör punningkvarnen i dagens moderna medicin.”

Det såg enkelt ut: Dränk inflammationen med c-vitamin med resultatet att jag eventuellt kunde börja känna mig bättre.  För att säga det som det är, jag har aldrig varit en person som börjar ett program halvhjärtat. Jag kröp tillbaka in i bilen och min hustru körde mig till hälsokostaffären. För ungefär $8 köpte jag en burk askorbinsyrepulver. Vi körde hem och använde Klennerprotokollet för c-vitamin. Jag startade med 3 gram (strax under en tesked) c-vitamin i ett glas vatten … tio gånger per dag. Totaldosen var alltså 30 000 mg per dag.”

”Vid slutet av den första dagen hade inget förändrats. Nästa morgon tog jag mig upp från golvet själv. Det var svårt men jag gjorde det.  Min rygg och mina ben kändes fortfarande som fyllda med plågsam eld.”

”På morgonen av dag tre klädde jag på mig själv inklusive strumpor och underkläder och den natten sov jag i min egen säng för första gången på flera månader. Smärtan fanns kvar i benen och ryggen men inte lika constant irriterande som tidigare.

”På morgonen på den fjärde dagen var jag frisk. Jag klädde på mig själv för utearbete och tog motorsågen och började skära en stock, som jag hade negligerat de senaste tre månaderna, i bitar. Då min hustru hörde motorsågen kom hon springande från huset. ‘Vad håller du på med?’ ropade hon till mig över oljudet från sågen.  Jag stängde av sågen och försäkrade henne att jag var helt botad, jag hade inga smärtor och jag ville arbeta.”

”Under de följande två veckorna fortsatte jag c-vitaminprotokollet och var förundrad över mängderna c-vitamin kroppen verkade villig att ta emot. Till slut nådde jag tarmtoleransgränsen (lös mage/gaser), skar ner c-vitaminnivån med 50% och fortsatte att lägga till andra näringsämnen till min diet.”

”Fyra år senare är jag förundrad över förändringen i mitt liv då jag använde information from Doctor Yourself. Jag har botat mig själv och har kunnat hjälpa vänner, släktingar och min familj på sätt jag aldrig skulle ha trott var möjligt.”

”Ett speciellt exempel på detta är min mor. År 2006 förlorade vi far i lungcancer och en stafylokockinfektion. Samma dag far dog fick vi höra att mor hade en steg 3A tarmcancer som skulle kräva ett operativt ingrepp. Efter operationen flyttades mor till en rehabiliteringsanstalt där hon fick höra att hon skulle stanna 6-10 veckor. Genom att använda tillskott från dag ett så var mor hemma efter 18 dagar och körde bil efter en månad.”

Fall #3

År 1951 ”i ett alldeles speciellt fall” konstaterar Levy ”beskriver Klenner en femårig flicka med polio. Barnet var redan förlamat i nedre delen av båda benen i över fyra dagar! Högra benet var helt kraftlöst och det vänstra benet uppskattades var kraftlöst till 85%. Smärta observerades speciellt i knät och bäckenet. Fyra olika läkare konsulterades och gav diagnosen Polio. Förutom massage var den enda behandling som inleddes c-vitaminbehandling. Efter fyra dagar av c-vitamininjektioner rörde barnet igen båda benen men mycket långsamt och med svårighet. Klenner konstaterade att redan den första c-vitamininjektionen gav ‘definitiv respons’.  Barnet skrevs ut från sjukhuset efter fyra dagar och 1000 mg c-vitamin gavs varannan timme tillsammans med juice under sju dagars tid. Barnet vandrade omkring långsamt elva dagar efter att behandlingen påbörjats. På dag nitton kom motoriken tillbaka och inga bestående skador uppkom. C-vitamin inte endast botade detta fall av polio utan eliminerade också det som skulle ha givit flickan livslång invaliditet. För så eleganta resultat i en tid före omfattande användning av antibiotika  är man förvånad att Klenner inte fick Nobelpris för sitt arbete.

Konklusion

Det finns mängder av indikationer på att c-vitamin speciellt har en kraftig effekt på virusinfektioner (exempel Fall #1 ovan). Det finns också exempel på fall där HIV verkar ha försvunnit efter megadoser av c-vitamin … även om skolmedicinen kontrar detta med att diagnosen naturligtvis måste ha varit fel.

Är dagens läkarvetenskaps totala ointresse för c-vitamin en följd av okunskap och arrogans av den typ som gjorde att behandling av skörbjugg krävde 700 år för att accepteras av läkarvetenskapen eller är problemet helt enkelt att en enkilos påse c-vitamin i form av askorbinsyra kostar mig under 20 Euro. En billig medicin som botar ledproblem, kärlsjukdomar,  depression, ryggproblem och verkar bita på mängder av virussjukdomar är ett stort hot mot den medicinska businessen.

Om vi lyckas hålla stora befolkningsgrupper på gränsen av akut skörbjugg så garanterar vi ett kontinuerligt inflöde av patienter till sjukvårdssystemet. Människors onödiga lidande och i många fall förtidiga död har ingen betydelse i ett sammanhang där det gäller att producera vinst för ägarna. Jag har väldigft svårt att lita på att ägare som nått miljardrikedomar och inte har förstått var en vettig nivå på rikedom är (i princip svårartad girighet som sinnesjukdom).

Om vi ser på symptomen på klassisk skörbjugg och jämför detta med sjukdomarna hos vår åldrande befolkning så hittar vi en direkt korrelation. Dagens kroniska skörbjugg kräver dock årtionden för att fullt utvecklas.  Situationen förvärras av att sockerkonsumtionen har stigit ofantligt i hela den utvecklade världen. Socker och askorbinsyra är kemiskt väldigt lika och samma receptorer används för att föra båda målekylerna in i kroppens celler.  Ett överskott av socker leder till att upptaget av c-vitamin försvåras ytterligare trots att c-vitaminnivåerna i stora befolkningsgrupper är extremt låga.

Bilden visar strukturen hos c-vitamin. Jämför denna struktur med strukturen hos socker.

Molekylerna är så lika att cellerna använder samma receptorer för båda. I de flesta djur kan c-vitamin syntetiseras ur glukos i en serie på fyra syntessteg. Hos människan, aporna, marsvinen och några andra djur är synteskedjan skadad så att dessa djur måste få i sig c-vitamin via födan.

Det finns inga övertygande belägg på skador förorsakade av stora doser c-vitamin trots detta demoniseras c-vitamin (påståenden om njurskador).  Bieffekter av normala mediciner dödar årligen någon miljon människor globalt. Vilken är orsaken till att man med våld försöker hålla locket på och förhindra användning av c-vitamin … är svaret helt enkelt ekonomi?

En kommentar till fall #2

Ryggproblemet löstes genom intag av stora doser askorbinsyra d.v.s. ren c-vitamin. Personen rapporterar inte om några problem av detta. Orsaken kan ligga i den kost han åt, vad han drack o.s.v.. Min personliga uppfattning är att det lönar sig att alltid ta c-vitamin tillsammans med en något mindre dos matsoda i vatten. Resultatet blir en bubblande dryck som påminner om mineralvatten och som smakar gott.

Intag av alltför stora mängder ren askorbinsyra utan soda kan ge bl.a. ledproblem som jag uppfattar sannolikt beror på gikt d.v.s. det faller ut urinsyrekristaller på vissa leder och då kristallerna är mycket vassa så är situationen mycket smärtsam. Problemet förekommer inte om c-vitamin tas i formen av neutralt askorbat d.v.s. en blandning av soda och c-vitamin. Ledproblemet försvinner snabbt efter något glas matsoda i vatten vilket leder till att urinsyrekristallerna går i lösning till följd av att ph-värdet i kroppen sjunker något. Notera att man inte skall gå till överdrifter med matsoda eftersom matsmältningen kröver en sur omgivning … matsoda påverkar matsmältningen på ett icke önskvärt sätt. Blandningen c-vitamin och matsoda blir neutral och ger inga problem.

 

Selkävaivat ja C-vitamiinin puute

07/02/2019

Kommentar till mina läsare:
Jag skriver undantagsvis på finska eftersom jag egentligen vänder mig till en vän som kan behöva den här informationen. Artikeln behandlar varför C-vitaminbrist kan vara orsak till rygg och ledproblem samt vad man kan göra för att eliminera orsakerna till problemen.

Mihin keho tarvitsee C-vitamiinia

Noin 30% kehon painosta on kollageenia eli ”liima-aine” josta keho tekee jänteitä, osana luustoa, muodostaa nivelten liukupinnat, iho … jne. Kyseerssä on siis kehon universaalirakennusaine.

Jos artikkeli käsittelee C-vitamiin tarve niin miksi aloitan kollageenista? Syy on siinä, että kollageeni muodostuu proteiinikuitukimpuista jotka on kierrettu kolmen kuidun naruksi ja vahvistettu ”hitsaamalla” kuidut yhteen c-vitamiinilla. Tyypillisessä kuitukimpussa kuiti hitsataan joka kolmas kierros.  Kun tarkastellaan kollageenin rakenne kemiallisesti ja todetaan, että jokaisen hitsin muodostamiseksi tuhotaan yksi c-vitamiinimolekyyli niin voidaan laskea, että kollageenisynteesiin tarvitaan karkeasti yhtä paljon c-vitamiinia kuin muodostettava kollageenimäärä. Mikäli c-vitamiinia ei ole tarpeeksi niin kollageenia muodostuu edelleen mutta laatu huononee askel askeleelta kun yhä enemmän ”hitsejä” jää tekemättä.  Kun c-vitamiinin saanti vuorokaudessa putoaa 50 mg alapuolelle niin voidaan laskea, että ehkä  joka sadasviideskymmenes ”hitsi” on paikalla. Muodostunut kollageeni on nytt verrattavissa pumpulituppiin ja kun tällaista huonolaatuista kollageenia käytetään verisuonten seinämiin niin seinämä vuotaa eli alkaa tulla mustelmia ilman ”syytä”. Kollageeni on liima joka pitää hampaat kiinni alustassa suussa. Kun kollageeni on huonoa hampaat irtoavat. Kun kollageeni on huonolaatuista niin nivelpinnat eivät enää kestä rasitusta ja luu alkaa hangata suoraan luuta vastaan.  Selkärangan välityynyt vaativat hyvälaatuista kollageenia koska muuten voi muodostya pullistumia (kuva alla) jotka erittäin kivuliaasti painavat hemoja. Psyykkisesti c-vitasmiinin puute aiheuttaa vakavaa masennusta.

Yllä kuvattu oiresarja kuvaa tyypillisiä keripukin oireita mutta samalla oireita jotka ovat melko tyypillisiä nykyihmisillä jotka ovat keski-ikää vanhempia. Tiedämme esim. , että hammaslääkärit ahkerasti mittaavat ientaskut koska tästä voidaan ennakoida hampaan irtoaminen. Entäs jos suuri joukko oireita loppujen lopuksi ovat kroonisen keripukin oireita. Lääketieteessä on laitettu päivittäinen C-vitamiinitarve älyttömän pieneksi (2x keripukiraja). Asia pahenee koska tiedetään, että sokeri ja c-vitamiini kilpailevat kehossa ja suuri sokerikulutus pienentään kehon käytettävissä olevat c-vitamiinivarat. Tämä johtuu siitä, että sokerimolekyyli ja c-vitamiinimolekyyli muistuttavat toisiaan paljon … koska eläimet tuottavat c-vitamiinia sokerista. Ihmisen kohdalla on pieni ongelma. Ihmisen c-vitamiinisynteesi tarvitsee useita kemiallisia askelia ja viimeinen näistä on rikki eli Ihminen, Apinat, Marsut ja muutama laji lisää eivät pysty itse tuottamaan c-vitamiinia vaan joutuvat hankkimaan c-vitamiinia ruoasta.

Kuva:  Selkärangen välilevyn pullistuma joka painaa hermon juurta. Hyvin kivuliasta.

Miten paljon c-vitamiinia tarvitaan

Tiedetään, että jos ihmisjoukolle annetaan 60 mg c-vitamiinia päivässä niin 70% näillä ei ole keripukioireita. Kääntäen RDA varmistaa, että kolmellakymmenellä prosentilla on joitakin keripukioireita. Kysymys, miksi suositus on laitettu näin alas, vaatii erillisen artikkelin mutta olen sitä mieltä, että tällä tavalla varmistetaan jatkuva vuo uusia potilaita lääketeollisuudelle (Onko RDA raja järkevä (englanniksi)).

Jos RDA 60 mg johtaa tilanteeseen jossa huomattava osa ihmisjoukossa edelleen oireilee eli ovat keripukin partaalla niin mikä olisi järkevä taso joka pitäisi keripukioireet kunnolla loitolla? Yksi tapa on tarkastella miten paljon c-vitamiinia eläimet tuottavat. Esim. 80 kg painava vuohi tuottaa noin 15g c-vitamiinia.  Tiedetään, että luonnollisessa ympäristössä elävä gorilla syö noin viisi grammaa c-vitamiinia päivässä. Eli jos oletetaan, että me kemiallisesti toimimme kuin eläimet niin määrä tämän pohjalta voisi olla ainakin muutama gramma c-vitamiinia päivässä.

Totesin yllä, että kollageenin muodostamiseen kuluu karkeasti yhtä paljon c-vitamiinia kuin muodostunut kollageeni. En mene kemiallisiin yksityiskohtiin vaan pidetään tämä yhtenä oletuksena. Lääketieteessä on jonkunlainen ”konsensus”, että ihmiskeho uusiutuu karkeasti seitsemässä vuodessa. On selvää, että jotkut elimet uusiutuvat paljon nopeammin ja toiset hitaammin. Jos oletetaan, että seitsemän vuoden uusiutumisvauhti on karkeasti oikea niin voidaan laskea c-vitamiinitarve tästä.

Oletetaan, että keho painaa 80 kg josta kollageenia silloin on noin 24 kg (30%).

Jos keho uudistuu seitsemässä vuodessa niin pitäisi päivittäin muodostua kollageenia seuraavasti:

Päivätuotanto (kollageeni) = 24kg/(7*365pv) = 0.0093 kg/päivä.

Eli päivässä muodostuu hieman alle kymmenen grammaa kollageenia. Totesin yllä, että tarvitaan vastaava määrä c-vitamiinia hyvänlaatuisen kollageenin muodostamiseksi eli tämän karkean laskelman mukaan tarvitaan noin 9,3g c-vitamiinia päivässä. Huomaa toki, että tarve on vielä suurempi koska kehon immunijärjestelmä tarvitsee myös c-vitamiinia toimiakseen. Laskettu karkea arvio täsmää melko hyvin eläinten c-vitamiinituotantoon. Tiedetään, että osa c-vitamiinista hajoaa suolistossa ennenkuin pääsee kehoon eli voitaneen vielä nostaa tarvittava määrä. Kemian nobelin palkinnon saanut Linus Pauling, joka on pidetty maailman suurimpana kemistina, söi 18g c-vitamiinia päivässä ja perusteli tämä nimenomaan sillä, että vain osa on hyödynnettävissä … hän eli 93 vuotiaaksi.

Selän vahvistaminen, korjaaminen c-vitamiinilla

Jos selkärangan välilevyn materiaali, kollageeni, on huonolaatusta niin välilevyn kuormittaminen nostamalla, kiertämällä selkä voi aiheuttaa välilevyvaurion, pullistuman, joka vai painaa hermoa. Vaurioitunut välilevy paranee usein itsestään kunhan ei aiheuteta lisää vaurioita mutta paranemiseen voi mennä pitkä aika.

Entäs jos osasyy vaurioon olikin huonolaatuinen kollageeni joka taas oli c-vitamiinipuutoksen seuraus. Tuntu silloin selvältä, että lisäämällä c-vitamiinia niin keholle annetaan paremmat mahdollisuudet korjata vaurio koska ainakin korjaukseen käytetty aine on hyvälaatuista.

Mikä olisi päivittäinen c-vitamiinimäärä? Nähtiin yllä, että esim. vuohi tuottaa jopa 15g c-vitamiinia päivässä (kerhon paino 80 kg). Järkevää olisi silloin varmasti kokeila 4-5g ja tästä hitaasti nostaa annos. Jos alkaa tulla ripulia niin annos on noussut liian korkeaksi.

Yleinen näkemys on, että oikea c-vitamiinitaso löydetään ns. titraamalla eli nostetaan annos hitaasti kunnes alkaa tulla ripulia jonka jälkeen annos puolitetaan. Tämä on karkeasti haluttu taso. Toinen tapa on lähteä samalle tasolle kuin eläimet eli 80kg painavi henkilön päiväannos olisi silloin n. 10g.

C-vitamiini varastoituu huonosti kehoon ja ylimääräinen c-vitamiini poistuu virtsalla joka voi saada hedelmätuoksun ylimääräisestä c-vitamiinista. Koska ylimäärä poistuu virtsalla niin c-vitamiini tulisi ottaa jaettuna annoksena läpi päivän esim. aamulla, päivällä, iltäpäivällä ja illalla. Itse yritän ottaa 2,5g aamulla, 2,5g päivällä ja 2,5g illalla. Joskus voi tulla annos lisää tai pudota pois.

Missä muodossa c-vitamiini kannattaa ottaa

C-vitamiinin kemiallinen nimi on Askorbiinihappo. Pieniä määriä voidaan haluttaessa ottaa askorbiinihappona mutta yllä kuvatut usean gramman annokset ei missään nimessä tulisi ottaa raakana askorbiinihappona vaan tehdään Samariini-tyyppinen juoma sekoittamalla yksi teelusikallinen askorbiinihappoa, yksi hieman pienempi teelusikallinen ruokasoodaa vesilasiin. Tästä saadaan hyvänmakuinen kivennäisvesi joka tuo keholle noin 2,5g c-vitamiinia. Toinen vaihtoehto on käyttää 1000mg poretabletteja ja näitä voi veden kanssa ottaa 3-5 päivässä. Poretablettiin on lisätty soodaa valmiiksi.

Miten nopeasti nähdään tuloksia

Krooninen puutostila joka eiheutti esim selkä, sydän tai nivelvaivat ovat kehittyneet hitaasti vuosien yli. Nähtiin yllä miten kehon korjausmekanismin kierrosaika on noin seitsemän vuotta. Vaurioiden korjaaminen vaatinee tästä syystä melko pitkän ajan vähintään viikkoja tai kuukausia. Toisaalta tiedetään, että c-vitamiini myös toimii luonnollisena kipulääkkeenä eli oireet saattavat parantua melko nopeasti.

Itse olen vuosia syönyt noin 5-10g c-vitamiinia päivässä ja kokemukset ovat seuraavat:

  • Ei ole ollut selkävaivoja vuosiin
  • Nuoruudessa pyöräilystä tulleet polviongelmat ei ole haitanneet sen jälkeen kun olen ryhtynyt syömään paljon c-vitamiinia.
  • Hammaslääkärikäynnit ovat vähentyneet … ei näytä enää televan reikiä. Oletan, että tämä johtuu siitä, että kollageeni tarvitaan elävän hampaan huokoisten kanavien tukkimiseen ulkopinnassa. Mikäli kollageenia ei ole niin bakteerit pääsevät helposti hampaan sisälle.

Mitä kannattaa välttää

Totesin yllä, että puhdas c-vitamiini tulisi ottaa ruokasoodan kanssa jolloin c-vitamiini kemiallisesti muuttuu askorbaatiksi joka on pH mielessä neutraali. Olen kokeillut itselleni ja koiralleni puhdasta Askorbiinihappoa mutta näyttää siltä, että muutamassa päivässä alkaa tulla esim. varpaiden niveliin oireita jotka olen tulkinnut kihtin alkuoireiksi. Kihti muodostuu kun kehossa on ylimääräistä virtsahappoa yhdistettynä alhaiseen pH arvoon. Tilanne korjaantui heti ruokasoodan kanssa joka nostaa pH-arvon. Tämä voi ihan yleisestikin olla järkevä tieto ihmisille joilla on kihtia. Puoli teelusikallinen ruokasoodaa veteen ja juodaan kivennäisveden tapaan poistaa oireet muutamassa tunnissa. Toisaalta ei kannata menna soodan kanssa liiallisuuksiin koska ruoansulatus tapahtuu happamassa ympäristössä eikä haluta vaikuttaa mahan toimintaan.

Huomaa, että c-vitamiinista keho myös tuottaa virtsahappoa eli suuret c-vitamiiniannokset nostavat jonkun verran virtsahapon määrä kehossa.

Mikä on yllä oleva c-vitamiiniannoksen suhde RDA:han

Jos oletetaan, että päiväannos laitetaan kuuteen grammaan niin puhutaan annoksesta joka on noin satakertainen verrattuna RDA:han. Tämä annos on yleensä täysin ok ja keho ilmoittaa itse milloin annos on liian suuri (ripuli). Laskennallisesti tämä tarkoittaisi, että vähän enemmän kuin joka toinen ”kollageenihitsi” on paikalla eli pitäisi olla suhteellisen hyvälaatuista kollageenia.

Entäs jos syön vähän enemmän hedelmiä

Tyypillinen keskikokoinen appelsiini sisältää noin 70 mg c-vitamiinia. Jos kuuden gramman c-vitamiiniannos yritettäisiin saada appelsiineja syömälla niin tarvittaisiin:

Appelsiinejä päivässä = 6g/0.07g = 85 appelsinia päivässä.

On ihan selvää, ettei kannata edes yrittää saada isompi annos c-vitamiinia hedelmiä syömällä koska silloin elämä olisi kuin gorillan elämä jossa suuri osa päivästä menee syömiseen. On ihan eri asia, että järkevä hedelmämäärä on hyväksi. Liiallinen hedelmien määrä, esim. yllä kuvattu 85 appelsiinin syönti päivässä ja päivästä toiseen, todennäköisesti pitemmällä tähtäimellä aiheuttaisi rasvamaksan samaan tapaan kuin alkoholin suurkuluttajalle. Syy  on hedelmäsokeri (fruktoosi) joka keho käsittelee maksassa suunnilleen samalla tavalla kuin alkoholi.

Yllä olevan c-vitamiinin lisäksi voi olla hyödyllistä ottaa erilaisia B-vitamiineja (B12). Löytyy esim. poretabletteja jossa on pieniä annoksia erilaisia erilaisia B-vitamiineja. Talvella voi olla järkevää ottaa jonkun verran D, E ja mahdollisesti K-vitamiinia. Magneesiumi on aina tarpeen …

Englanninkielistä lukemista:

Selkärangan ahdistuma (stenosis).

Äggplotter, bygg själv!

05/02/2019

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:

storbit1

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

IMGP0849_mod.JPG

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.

IMGP0858_mod.JPG

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.

IMGP0857_mod.JPG

Ä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.

OneTurnInkscape

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.

IMGP0863.JPG

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.

IMGP0883.JPG

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.

IMGP0882.JPG

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.

Några källor:

Byggbeskrivningen för den här presenterade Egg Painter Mini.

Den ursprungliga EggBot skrivaren.

Mjukvara till äggskrivaren.

Byggbeskrivning i PDF.

 

 

Varför vill jag inte ha en rödgrön värld?

04/02/2019

Jag var på slutet av 1970-talet mycket positivt inställd till naturskydd och allmänt gröna idéer. Jag har också varit mycket positivt inställd till globalismen men jag uppfattar att det politiska tåget med åren har spårat ur.

Med åren har jag tagit allt mera avstånd från det rödgröna tänkandet som på slutändan verkar se mänskligheten som sin fiende. Hur många gånger har vi inte hört globala kändisar (prins Philip) utbrista”…Om jag reinkarneras skulle jag vilja återkomma som ett dödligt virus för att på detta sätt kunna göra något för att lösa överbefolkningen.” Notera att han talar om levande män, kvinnor och barn som han gärna skulle se duka under i någon lämplig dödlig sjukdom.

Ovanstående är beklagligtvis inte ett vansinnigt uttalande som har tagits ur sitt sammanhang utan en gemensam mörk ström som verkar gå genom elitens tänkande sedan början av 1900-talet. Samma tänkesätt tog sig tidigare uttryck i eugenik d.v.s. rashygien som på slutändan dödade miljoner människor. Jag tycker mig se samma tänkande d.v.s. vanligt folk och speciellt fattiga uppfattas inte ha något värde och man ser elimination av värdelösa grupper som något önskvärt. En elit bestående av en grupp vänstervridna miljardärer använder den tidigare vänstern och den gröna rörelsen som sina nyttiga idioter. Är t.ex. den svenska socialdemokratins tillbakagång en följd av att man inte längre ägnar de svaga i samhället någon tanke till följd av att de styrande politikerna ofta idag saknar egen erfarenhet av hederligt arbete?

Maurice Strong (Kanadensisk miljardär i olja) var motorn bakom grundandet av IPCC (FN:s  organisation för att studera klimatförändring) där IPCC:s mandat/uppgift definierades så att endast mänsklig påverkan på klimatet skulle studeras. Maurice strong konstaterade:

“Isn’t the only hope for the planet that the
industrialized civilizations collapse?
Isn’t it our responsibility to bring that about?”
– Maurice Strong,
founder of the UN Environment Programme

Översatt ungeför: ”Är inte planetens enda hopp att den industrialiserade civilisationen kollapsar? Är det inte vår plikt att få detta till stånd?

En stilla fråga: Hur många miljarder döda skulle detta åstadkomma? Sett ur detta perspektiv bör man väl uppfatta 1930-talets brunskjortor som visionslösa amatörer.

Vi har redan många gånger kunnat se resultatet av fanatisk ofta extremt socialistisk ideologi. De röda khmererna i Kambodja är antagligen ett exempel som de flesta lite äldre personer kommer väl ihåg.

Röda Khmererna i Kambodja.

Mera bakgrund kring de röda Khmererna.

De röda Khmerernas grundtanke var att göra om samhället till en kommunistisk utopi. Modellen togs från ett antal små självförsörjande folkgrupper. Ett av målen var också att eliminera den fördärvliga religionen (Buddism). Resultatet var över två miljoner döda.

De Röda Khmerernas framfart kan mycket väl jämföras med Stalins Sovjetunionen och Maos stora språng framåt … antalet döda från dessa experiment är betydligt större än Khmerernas men satt i relation till totalbefolkningen torde nog Khmerernas vansinnesstyre vara i en klass för sig.

Samma tänkande hittar vi på många håll:

”Utrotandet av Homo Sapiens (människan) skulle betyda överlevnad för miljoner, om inte miljarder, på jorden levande arter. Att fasa ut den mänskliga rasen  löser alla problem på jorden – sociala- och miljöproblem.”

Ingrid Newkirk grundare av PETA (Ethical treatment of Animals). Här har vi igen en person som utan att blinka framför en tanke på att eliminera över sju miljarder människor …

Vi kan se hur den gröna socialismen har flyttat fokus från att välja en specifik oskyddad grupp människor som fiende (Judar på 1930-talet) till en abstrakt fiende i form av hela mänskligheten.

Romklubben är en neomalthusiansk sammanslutning av personer från samhällets toppskikt. Malthus var en brittisk präst som lade märke till att befolkningen ökade exponentiellt medan matproduktionen ökade linjärt. Om man extrapolerar situationen in i framtiden och antar att inga förändringar sker så måste det inträffa en hungerkatastrof förr eller senare. Grundantagandet var, som vi idag kan se med facit på hand, fel. Vi ser idag att befolkningen i västvärlden skulle minska utan invandring. Vi kan inte extrapolera en tidsmässigt lokal trend tiotals eller hundratals år in i framtiden.

Romklubben grundades av italienaren Aurelio Peccei (miljonär med nära kontakter till Fiat). Romklubben (medlemmar bl.a. drottning Beatrix från Holland, Michail Gorbachev m.fl.) uppfattar att mänskligheten behöver en gemensam ”motivation”, en gemensam ”fiende” för att kunna enas om en världsregering som skulle kontrolleras av världens miljardärelit.

Jag uppfattar att det finns två grundläggande problem i elitens tänkande. Målet, en världsregering, är sannolikt OK med tanke på att det faktiskt finns problem som kräver globala lösningar. En förutsättning för en fungerande världsregering är dock att man gör förarbetet korrekt:

  • Vilka är de mekanismer som förhindrar att den världsregering man arbetar för blir en världsdiktatur?
  • Vilka är de institutioner som skall förhindra maktkoncentration på ett fåtal händer? Hur tillsätts personer i dessa institutioner?
  • Hur skall den styrande ”världsregeringen” väljas på ett rättvist och för jordens befolkning godtagbart sätt?
  • Hur skall den styrande eliten förhindras att köpa en majoritet av världsregeringens medlemmar … något man tydligen väldigt effektivt gör idag på alla nivåer.
  • Vilka är de frågor som måste lösas globalt?
  • Vilka är de frågor som måste lösas lokalt och hur skall man säkerställa att lokalsamhället inte körs över av globalt beslutsfattande.

Innan ovanstående frågor har diskuterats och accepterats av jordens befolkning är det för tidigt att skapa en världsregering.

Romklubben har kontakter till bl.a. Bilderberggruppen till vilken en stor grupp svenska och finska politiker kallats. Mötena är slutna och politiker som förväntas uppnå en synlig position i ett land kallas till möte där personen bl.a. får information om hur eliten vill att samhället skall utvecklas. Skall jag som vanlig medborgare uppfatta detta som normal politik eller är det fråga om landsförräderi?

Lars Bern har utvecklat diskussionen om (sannolikt) köpta politiker i en video som är väl värd att titta på:

 

 

Enkel temperaturlogger

08/01/2019

Jag gjorde för en tid sedan en första preliminär mätning av UHI (Urban Heat Island) d.v.s. värmenedsmutsning av tätorter. Det är självklart att meteorologiska mätstationer som ligger nära eller i tät bebyggelse bör mäta högre temperaturer än stationer som ligger ostörda på landsbygden. De lärda tvistar idag om hur stor inverkan från UHI har på globala uppskattningar av temperaturen och uppskattningarna varierar från i princip ingen alls till några tiondels grader.

Temperaturloggerns upplösning d.v.s. de minsta temperaturskillnaderna den kan detektera är 0.1 grader C.  Sensorns precision d.v.s. felet i förhållande till en välkalibrerad temperaturgivare ligger antagligen på ca. +/- 0.5 grader C.

Jag har ingen aning om hur sensorn driver med tiden och inte heller hur linjär den i verkligheten är (om jag exempelvis vet att sensorn visar rätt vi 20 grader C, hur stort är felet vid +40?). Min gissning är dock att de relativa felen vid temperatursving på några grader är mycket små d.v.s. i storleksordningen +/- 0.1 grad C.

imgp5759

Fig. 1  Den första loggerprototypen. Det 3D-utskrivna skalet är misslyckat men bättre än ingenting. Följande version kommer ur ”ugnen” efter fyra timmar då detta skrivs. Bilden visar temperaturmätning i mitt arbetsrum kväll-natt. temperaturtoppen på nästan en grad är förorsakad av min kroppsvärme.

arbetsrum20190107

Fig. 2  Mätning av temperatur i mitt arbetsrum natten mellan den 7 och 8.1.2019. Rummet är i andra våningen /därav rätt hög temperatur) och det värms endast av datorer, skrivare etc. Det är intressant att notera hur temperaturen stiger med nästan en grad då jag sitter i rummet. En människa torde producera ungefär 200W värme vilket jag uppfattar att man kan se i mätningen. Andningsluften innehåller rätt mycket fukt vilket kan ses i den röda kurvan som är relativ luftfuktighet. Grafen skapades genom att läsa in mätvärdena i LibreOffice Calc i CSV (Comma Separated Values) format. Inläsningen krävde ingen editering av datafilen.

temp_logger_base

Fig. 3  En virtuell bild av stommen till version #2 av den nya lådan till loggern i programmet Repetier-host som jag använder för utskrift. Lådan är konstruerad i programmet openscad. Processorn och skärmen är skyddade men enkelt åtkomliga. I den första versionen kom kretskortet lite för nära lådans inre vägg vilket har åtgärdats här. Likaså modifierade jag öppningarna till USB-kontakten, SD-kortet och anslutningen för signalsladden till sensorn.  I nedre hörnet finns fack för SD-kortet och Bluetooth givaren HC-05. Nära det övre hörnet finns hjälpväggar som fungerar som kraftavlastare för sensorns sladd. Normalt brukar jag behöva tre iterationer för att designen skall bli ungefär vad jag vill ha.

tloggerboxutskrift

Fig. 4  Utskrift av den nya lådan från föregående bild. 3D-skrivaren är en Geeetech I3 kopia på motsvarande Prusa I3 skrivare. Skrivaren är byggd från en byggsats och den fungerar bra. Det krävdes dock en hel del tid, kanske två veckor,  att få allt korrekt injusterat både mekaniskt och mjukvarumässigt. Fördelen med en byggsats är dock att jag inte har några som helst hämningar att fixa eventuella problem eller göra uppgraderingar.  Det här är den bästa leksak jag har gett mig på många år.

imgp5761

Fig. 5  De i temperaturloggern ingående delarna. Från vänster Arduino Mega 2560 (blå). Därefter SD-kortadapter(ljusgrön). Bluetooth adapter HC-05 (vit) och bildskärmen sedd bakifrån (röd).  I den 3D-printade lådans skruvfästen smälts mässingsgängor vilket på sikt är mycket pålitligare än att skruva direkt i plast.

En Arduino Mega som temperaturlogger

En temperaturlogger kan byggas billigt från följande komponenter:

  • Processor Arduino Mega 2560 (ca. $10 ebay)
  • Display 480×320 pixlar innehåller ofta SD-korthållare ($5-$10 ebay). Kontrollera att displayen är kompatibel med en Arduino Mega och att den inte är gjord för en Arduino Uno (SD-kortet kan vara svårt att få att fungera om kortet är för en UNO). Det lönars ig inte att använda en Arduino Uno som logger om bildskärm används … minnet räcker inte till.
  • Bluetooth adapter HC-05 ($5 på ebay)
  • Någon typ av låda för att skydda loggern jag designade en egen låda och skrev ut den med 3D-skrivare.
  • Temperatur/fuktighetsgivare DHT22 ($3 på ebay). Det finns kombinationsgivare som också mäter lufttryck. Jag byter eventuellt senare ut DHT22 givaren mot en givare som mäter temperatur, luftfuktighet och lufttryck.
  • Ett minneskort t.ex. 8 GByte (det minsta man hittar i en normal butik)
  • Två stycken 1 kohms motstånd

Utöver ovanstående behövs lödkolv, gärna en universalvoltmätare, tröd, lödtenn o.s.v. normala hobbytillbehör för elektronikhobby.

Egenskaper hos den färdiga loggern

Loggern mäter och lagrar temperatur och luftfuktighet på ett SD minneskort. Mätta data plottas i grafisk form till bildskärmen. Mätintervallat kan ställas från ca. 1s till timmar mellan mätningarna. Bildskärmen kan skalas enligt behov d.v.s. det minsta och det största värdet p skärmen kan ställas via kommandon.

Jag kommer att lägga till funktionalitet i loggern senare. Det är enkelt att lägga till mätning av andra parametrar om det behövs. Jag har för närvarande endast en temperatursensor. Tanken är att lägga till en annan sensor så att jag kan mäta utetemperaturen nära bilens tak och ca. 10 cm högre upp. Det bör vara möjligt att få en uppfattning om hur mycket värmen i bilen stör mätningarna genom att placera två termometrar på olika höjd i luftflödet.

Kontroll/styrning av loggern

Loggern skriver ut mätningar till processorns USB serieport samt till Bluetooth modulen HC-05. Via båda dessa kanaler kan man ge kommandon åt loggern.

Bäst kontrollerar man loggern via t.ex. en mobiltelefon eller en lämplig läsplatta med bluetooth.  En lämplig App för kontroll är appen ”Bluetooth Terminal” som man hittar på Google Play. Appen är gratis (det finns säkert många andra som också fungerar). Då man kopplar på strömmen till loggern och då Bluetooth är aktiv i telefonen så kommer det att dyka upp en enhet HC-05. Om det i omgivningen finns flera HC-05 enheter så känner man igen dem på deras unika id (hexadecimal sträng av bokstäver/siffror). Då anslutningen har lyckats så kan man testa förbindelsen med kommandot ”help” som visar vilka kommandon systemet känner.

Följande kommandon finns för närvarande (kommandot ”help” ger en lista över kommandon):

COMMANDS:
help      --> This help.
start     --> Start logging
stop      --> Stop logging
sdstart   --> Re-initialize SD
sdstop    --> SD write stopped
tlog      --> Print tlog.txt
tdata     --> Print tdata.txt
ls        --> List SD files
ctlog     --> Erase tlog.txt
ctdata    --> Erase tdata.txt
!         --> Comment to tlog.txt.
logint    --> Logging interval secs.
ymin      --> Set plot ymin
ymax      --> Set plot ymax
ytic      --> Set plot ytic
replot    --> Clear screen and replot

Innan man börjar logga lönar det sig att ställa in skärmen:

ymin

Säller in y-axelns minsta värde. Om vi t.ex. vet att temperaturen ute ligger på ca. +5 och vi kommer att göra en körning som kräver några timmar så kan vi sannolikt ställa in skärmen på t.ex. 0 grader C. Commandot är då ”ymin 0” utan citationsteckn.

ymax

På motsvarande sätt ställer vi in det största värdet som ryms påskärmen t.ex. 15 grader C. Kommandor är ”ymax 15”.

logint

Kommandot ställer in intervallet mellan mätningar uttryckt i sekunder. Om vi t.ex. vill logga en gång per minut så ger vi kommandot ”logint 60”.  Intervallet är inte helt exakt. Den löpande tiden d.v.s. tidpunkten för mätningen i sekunder sedan start är relativt noggrann.

replot

Kommandot ”replot” raderar skärmen och ritar ut koordinatsystemet på nytt. Räknaren som håller reda på mätningens ordningsnummer sätts till ett (1).

start

Starta loggningen med de parametrar systemet för närvarande känner (ymin, ymax och logintervall).

stop

Stoppa loggning.  Loggning kan startas på nytt med ”start”.

sdstart

SD minneskortet initialiseras t.ex. om man har tagit ur kortet och kopierat innehållet till en dator ellr om minneskortet har bytts. Samma initialisering görs då loggern startas d.v.s. det är inte nödvändigt att ge kommandot ”sdstart” då loggern startas.

sdstop

Stoppar skrivning till SD minneskortet. Det är säkrast att ge kommandor ”sdstop” innan man tar ur SD-kortet eller innan man stänger av strömmen till loggern. Om man råkar rycka ur kortet precis då loggern skriver data till minnet så kan SD minnet förstöras. På motsvarande sätt kan kortet förstöras om man stänger av strömmen medan loggern skriver till kortet.  Risken för skador på minneskortet är naturligtvis störst om loggningsintervallet är kort. Användning av ”sdstop” förhindrar skador på SD-kortet eftersom skrivning till kortet stoppas.

tlog

Lista (skriv ut) hela loggfilen. Man kan skriva kommentarer till loggfilen genom att börja en kommentar med kommandot ”!”. Den maximala längden på en rad är satt till 50 tecken.

Exempel:

! Sommarö, start

Strängen lagras som sådan i filen tlog.txt men den förses med en tidsstämpel som motsvarar tiden för mätningarna. Man kan alltså senare direkt relatera kommentaren till specifika mätningar.

tdata

Skriv ut alla mätdata i mätfilen till både USB serieporten och till Bluetooth (HC-05). Ett sätt att överföra data till en annan apparat är att lista mätdata till serieterminalen och sedan på den kontrollerande enheten kopiera data från terminalen till en fil. Användning av tdata gör att loggningen inte behöver avbrytas och man behöver inte ta ut minneskortet.

ctlog

Radera loggfilen. Allt innehåll i loggfilen försvinner.

ctdata

Radera innehållet i datafilen. Allt innehåll i datafilen försvinner.

Koppling av termometer/luftfuktighetsmätare till loggern

Sensorns signalstift kopplas till Arduino Mega A15.

Sensorns strömmatning VCC koplas till 5V bredvid Arduinons stift 22.

Sensorns jord kopplas till Arduinons jord bredvid Arduinons stift 52.

Koppling av Bluetooth HC-05

Bluetooth VCC går till 5V på Arduino Mega (bredvid VCC för temperatursensorn). Till samma stift kopplas också VCC för SD-kortet.

Bluetooth jord GND kopplas till GND på Arduino (nära A15).

Bluetooth TXD kopplas till A13.

Bluetooth RXD kopplas via spänningsdelare t.ex. så att signalen från Arduino leds till jord via två 1 kohms motstånd kopplade i serie. Signalen till Bluetooth modulen tas ut mellan motstånden. Problemet är att HC-05 RXD är gjord för 3.3V spänningsnivå medan Arduinon använder 5V nivåer. HC-05 kan fungera en tid utan spänniungsdelare men den blir inte långlivad om den kopplas direkt.

Koppling av SD-kort

SD-korthållaren bör vara av en som har inbyggd spänningsregulator och 5V tålig. Orsaken är att SD minnet är konstruerat för endast 3.3V. Ansluter man ett oskyddat SD-kort till ett 5V system så kommer minnet att förstöras snabbt (jfr. HC-05 problemet).

SD 5V kollas till Arduino 5V (kombinerat med HC-05).

SD jord (GND) kopplas till Arduino GND (kombinerat med HC-05),

SD MOSI kopplas till Arduino Mega 2560 ICSP pin 1 (MISO)

SD MOSI kopplas till Arduino Mega 2560 ICSP pin 4 (MOSI)

SD SCK kopplas till Arduino Mega 2560 ICSP pin 3 (SCK)

SD CS kopplas till Arduino Mega 2560 dig. io pin 48

LCD skärmen

LCD skärmen är en billig kinesisk skärm designad för en Arduino UNO. Skärmen har inbyggd SD-kortläsare men problemet är att SPI gränssnittets signaler i en Arduino mega ligger påannan plats (ICSP konnektorn). Jag uppfattade det inte som mödan värt att tjuvkoppla mig runt problemet så jag använder en separat SD-kortläsare.

Problemet med många billiga kinesiska skärmar är att de är totalt ”namnlösa” och det finns ofta ingen information om vilken drivkrets de använder. Drivkretsens typ avgör vilket bibliotek jag måste använda på Arduinon för att skriva till skärmen. Vill jag has en skärm som är enkel att använda för t.ex. mätändamål så vill jag inte ha en skärm som sitter som en skäld ovanpå Arduinon och samtidigt förhindrar åmst till arduinons in/ut kontakter.

Skärmen jag har använt i det här projektet använder UTFT APIN f skärmaccess. Många kinesioska skärmar använder kontrollkretsen ILI9xxx för vilken man oftast hittar drivrutiner på nätet.

Notera att skärmen inte är nödvändig för funktionen.

Om ingen skärm finns kan programmet fortfarande köras genom att kommentera bort

#define HAVESCREEN

genom att skriva // framför definitionen d.v.s:

//#define HAVESCREEN

Programmet använder då inte alls skärmen men kontroll över programmet via Bluetooth och Arduino IDE fungerar fortfarande.

Programmet i Arduino

Programmer är skrivet i Arduinos C/C++ som är standardspråket om man använder Arduino IDE. Programmet är skrivet i en form som är typisk för en mikrokontroller där det ofta helt saknas ett underliggande operativsystem. Programmet sköter alltså själv alla funktioner och det är programmerarens sak att se till att programmet aldrig hamnar i en återvändsgränd och stoppar. Programmet är i princip en oändlig slinga som upprepas på nytt och på nytt. En cykel körs på ungefär 1/10 sekund. Vid varje varv genom programslingan kontrollerar programmet om det är tid att göra en mätning, kontrollerar om det finns något nytt kommando som borde utföras.

Om det är tid att göra en mätning så mäts temperatur och luftfuktighet och mätningens nummer, tiden sedan programstart, temperatur och luftfuktighet loggas till SD-minne. Temperaturen skrivs också ut på skärmen.

Om det finns ett kommando så utförs kommandot varefter programmet väntar på att följande varv genom slingan skall starta. Långa kommandon t.ex. en utskrift av en lång datafil kan ge tidsfel d.v.s. avståndet mellan två mätningar behöver inte vara helt exakt.

Notera att indenteringarna iprogrammet har förlorats vid inklistringen  i bloggen.

Jag kommer senare att lägga ut programmet på Github som fri programvara. Tillåtelse att använda programmet fritt ges här.

// Temperature_logger
// (c) 2019 Lars Silén
// Version 1.0
//
// Runs on an Arduino Mega 2560
//
// Using a 480×320 TFT diplay will hide the ICSP connector which caries
// the HW SPI signals. The are two options going around this problem.
// The first option is th solder the signals to the ICSP allowing us to use
// the ICSP connector with the display mounted (this option is selected here).
// The other option is to use a SW SPI library driving the SD memory card.
// This option is not selected.
//
// Any free text comin in over BT is stored including clock stamp.
// This allows simple input of location.
//
#include <Arduino.h>
#include <dhtnew.h>
#include <SPI.h>
#include <SD.h> // Support library for SD memory
#include <SoftwareSerial.h>

#define HAVESCREEN

#ifdef HAVESCREEN
//################################################
// GLUE class that implements the UTFT API
// replace UTFT include and constructor statements
// remove UTFT font declaration e.g. SmallFont
//################################################

#include <UTFTGLUE.h> //use GLUE class and constructor
UTFTGLUE myGLCD(0,A2,A1,A3,A4,A0); //all dummy args

// Declare which fonts we will be using
//extern uint8_t SmallFont[]; //GLUE defines as GFXFont ref

#define ORG_X 10
#define ORG_Y 10
#define MAX_X 470
#define MAX_Y 300

#define SCALE_MINY -10.0
#define SCALE_MAXY 30.0
#define SCALE_TICY 2.5
#define CIRCLE 0
#define CIRCLE_SIZ 2
#define SQUARE 1
#define TRIANGLE 2
#define LINES 1
float miny = SCALE_MINY;
float maxy = SCALE_MAXY;
float ytic = SCALE_TICY;

#endif

#define SDavailable // We have access to a sd memory
#define REPORTINTERVAL 60*10 // For testing reporting is done ar one minute interval.
int reportinterval=REPORTINTERVAL;

// ****************************************************
// Thermo and humidity sensor
// ****************************************************

#define connectedTSens1 true
#define connectedTSens2 false

// Looks like digital IO 22-53 don’t work properly.
// Use PWM pins or A-series pins.
#define DHT22Sens1 A15
#define DHT22Sens2 A12

DHTNEW mySensor1(DHT22Sens1);
#ifdef DHT22Sens2
DHTNEW mySensor2(DHT22Sens2);
#endif

// ****************************************************
// SD-memory support
// ****************************************************
// MISO, MOSI and SCLK in ICSP header.
// CD on pin 53.

Sd2Card card;
SdVolume volume;
SdFile root;
int SDstop = false;

int measured = false;
float Temperature = -999.0;
float Humidity = -999.0;
unsigned long timeSecs = 0; // Updated at 1s intervals using interrupts this is the main clock
unsigned long timeSinceStart=0; // Time in seconds since start
unsigned long stepper_rotate=0; // How often should we rotate the tower by one movement step (one turn of the motor).

int reportCnt = 0;
boolean stringComplete = false;
String inputString = ””; // a String to hold incoming sewrial needs initialization in setup().
String sysString = ””; // Handles writing/reading data
SoftwareSerial BTSerial(A13, A14); // RX, TX

unsigned long t;
int counter=0;
int shortcnt=REPORTINTERVAL;
int isRunning = false;
unsigned long tOffs;

void setup() {
// Serial interface towards supervising computer at 9600 baud
Serial.begin(9600);
pinMode(A14,OUTPUT);
BTSerial.begin(9600);

// Set up the temperature/humidity sensor type DHT2x (AOSONG AM230x)
//pinMode(50,INPUT);
if(connectedTSens1){
mySensor1.read();
}
#ifdef DHT22Sens2
if(connectedTSens2){
mySensor2.read();
}
#endif
Serial.println(”Started the Temperature/humidity sensor”);
BTSerial.println(”Started the Temperature/humidity sensor”);

// Start the system
inputString.reserve(50);
sysString.reserve(50);

// ***********************************************
// Setup SD-memory
// ***********************************************
#define SDCS 48
//pinMode(SDCS,OUTPUT);
if (!card.init(SPI_HALF_SPEED, SDCS)) {
Serial.println(”initialization failed. Things to check:”);
Serial.println(”* is a card inserted?”);
Serial.println(”* is your wiring correct?”);
Serial.println(”* did you change the chipSelect pin to match your shield or module?”);

BTSerial.println(”initialization failed. Things to check:”);
BTSerial.println(”* is a card inserted?”);
BTSerial.println(”* is your wiring correct?”);
BTSerial.println(”* did you change the chipSelect pin to match your shield or module?”);
return;
} else {
Serial.println(”Wiring is correct and a card is present.”);
BTSerial.println(”Wiring is correct and a card is present.”);
}
SD.begin(SDCS);
if (!volume.init(card)) {
Serial.println(”Could not find FAT16/FAT32 partition.\nMake sure you’ve formatted the card”);
BTSerial.println(”Could not find FAT16/FAT32 partition.\nMake sure you’ve formatted the card”);
return;
}
if(SDstop==true){
Serial.println(”SD stopped use SDstart”);
BTSerial.println(”SD stopped use SDstart”);
}

#ifdef HAVESCREEN
// ***********************************
// Setup the LCD
// ***********************************
Serial.println(”Trying to init LCD”);
BTSerial.println(”Trying to init LCD”);
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
#endif
}

float get_temperature(int sensorNo){
switch(sensorNo){
case 1: if(connectedTSens1){
Serial.println(”mySensor1.temperature”);
BTSerial.println(”mySensor1.temperature”);
return mySensor1.temperature;
} else {
return -999.0;
}
break;
case 2: if(connectedTSens2){
Serial.println(”mySensor2.temperature”);
return mySensor2.temperature;
} else {
Serial.print(”Not connected connectedTSens2=”);Serial.println(connectedTSens2);
return -999.0;
}
break;
}
Serial.println(”Fell through no such sensor number”);
BTSerial.println(”Fell through no such sensor number”);
return -999.0;
}

unsigned long get_time_since_start(){
// Get time in seconds since start
return timeSinceStart;
}

void ck_serial(){
// ***********************************
// Handle incoming serial data
// ***********************************
// CheclUSB serial typically Arduino Serial Monitor
while (Serial.available()>0) {
// get the new byte:
char inChar = (char)Serial.read();
inputString += inChar;
// if the incoming character is a newline the command is complete
// set a flag so the main loop can
// do something about it:
if (inChar == ‘\n’) {
stringComplete = true;
//Serial.println(”Got CR”);
}
}
// Check Bluetooth connection to phone/pad
while (BTSerial.available()>0) {
// get the new byte:
char inChar = (char)BTSerial.read();
inputString += inChar;
// if the incoming character is a newline the command is come,
// set a flag so the main loop can
// do something about it:
if (inChar == ‘\n’) {
stringComplete = true;
//Serial.println(”Got CR”);
}
}
serial_cmd();
}

void writeToLog(String ipStr){
if(SDstop==true) return;

File wrf=SD.open(”tlog.txt”,FILE_WRITE);
wrf.print(counter);
wrf.print(”,”);
wrf.println(ipStr);
wrf.close();
}

void serial_cmd(){
int n=0;
float h;
float energy=0;
float price=0;
// Some very basic commands
if(stringComplete==true){
// Ensure that case doesn’t matter when entering commands.
inputString.toLowerCase();
if(inputString.startsWith(String(”#”))){
// Handle comments
// Allows us to use scripts on the PC to set parameters on the controller.
Serial.print(”# ”);
Serial.println(”inputString”);
BTSerial.print(”# ”);
BTSerial.println(”inputString”);
stringComplete=false;
return;
}
// Restart use of the SD memory card after a SD stop.
if(inputString.startsWith(String(”sdstart”))){
Serial.print(”# command=sdstart ”);
BTSerial.print(”# command=sdstart ”);
// Re-initialize the card. The card may have been replaced.
if (!card.init(SPI_HALF_SPEED, SDCS)) {
Serial.println(”initialization failed. Things to check:”);
Serial.println(”* is a card inserted?”);
Serial.println(”* is your wiring correct?”);
Serial.println(”* did you change the chipSelect pin to match your shield or module?”);
BTSerial.println(”initialization failed. Things to check:”);
BTSerial.println(”* is a card inserted?”);
BTSerial.println(”* is your wiring correct?”);
BTSerial.println(”* did you change the chipSelect pin to match your shield or module?”);
inputString=””;
return;
} else {
Serial.println(”Wiring is correct and a card is present.”);
BTSerial.println(”Wiring is correct and a card is present.”);
}
SD.begin(SDCS);
if (!volume.init(card)) {
Serial.println(”Could not find FAT16/FAT32 partition.\nMake sure you’ve formatted the card”);
BTSerial.println(”Could not find FAT16/FAT32 partition.\nMake sure you’ve formatted the card”);
return;
}
SDstop = false;
inputString=””;
stringComplete=false;
return;
}
// Secure removal of the SD memory card.
if(inputString.startsWith(String(”sdstop”))){
Serial.print(”# command=sdstop”);
BTSerial.print(”# command=sdstart ”);
SDstop=true;
inputString=””;
stringComplete=false;
return;
}
// Start logging
if(inputString.startsWith(String(”start”))){
Serial.println(”# command=start”);
BTSerial.println(”# command=start”);
isRunning=true;
tOffs=millis()/1000;
stringComplete=false;
inputString=””;
return;
}
// Stop logging
if(inputString.startsWith(String(”stop”))){
Serial.println(”# command=stop”);
BTSerial.println(”# command=stop”);
isRunning=false;
stringComplete=false;
inputString=””;
return;
}
if(inputString.startsWith(String(”ymin”))){
Serial.print(”# command=ymin value=”);
BTSerial.print(”# command=ymin value=”);
#ifdef HAVESCREEN
miny=inputString.substring(4).toFloat();
Serial.println(miny);
BTSerial.println(miny);
#else
Serial.println(”Error: No screen defined”);
BTSerial.println(”Error: No screen defined”);
#endif
stringComplete=false;
inputString=””;
return;
}
if(inputString.startsWith(String(”ymax”))){
Serial.print(”# command=ymax value=”);
BTSerial.print(”# command=ymax value=”);
#ifdef HAVESCREEN
maxy=inputString.substring(4).toFloat();
Serial.println(maxy);
BTSerial.println(maxy);
#else
Serial.println(”Error: No screen defined”);
BTSerial.println(”Error: No screen defined”);
#endif
stringComplete=false;
inputString=””;
return;
}
if(inputString.startsWith(String(”ytic”))){
Serial.print(”# command=ytic value=”);
BTSerial.print(”# command=ytic value=”);
#ifdef HAVESCREEN
ytic=inputString.substring(4).toFloat();
Serial.println(ytic);
BTSerial.println(ytic);
#else
Serial.println(”Error: No screen defined”);
BTSerial.println(”Error: No screen defined”);
#endif
stringComplete=false;
inputString=””;
return;
}
if(inputString.startsWith(String(”logint”))){
Serial.print(”# command=logint value=”);
BTSerial.print(”# command=logint value=”);
reportinterval=inputString.substring(6).toInt();
Serial.println(reportinterval);
BTSerial.println(reportinterval);
reportinterval=10*reportinterval;
stringComplete=false;
inputString=””;
return;
}
if(inputString.startsWith(String(”replot”))){
Serial.println(”# command=replot”);
BTSerial.println(”# command=replot”);
#ifdef HAVESCREEN
setup_graph_screen();
#else
Serial.println(”Error: No screen defined”);
BTSerial.println(”Error: No screen defined”);
#endif
counter=1;
stringComplete=false;
inputString=””;
return;
}
if(inputString.startsWith(String(”tlog”))){
Serial.println(”# command=tlog”);
BTSerial.println(”# command=tlog”);
#ifdef SDavailable
dumpTLog();
#else
Serial.println(”SD card not available”);
BTSerial.println(”SD card not available”);
#endif
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”tdata”))){
Serial.println(”# command=tdata”);
BTSerial.println(”# command=tdata”);
#ifdef SDavailable
dumpTData();
#else
Serial.println(”SD card not available”);
BTSerial.println(”SD card not available”);
//BTSerial.println(”SD card not available”);
#endif
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”ls”))){
Serial.print(”# command=ls: ”);
BTSerial.print(”# command=ls: ”);
File root = SD.open(”/”);
printDirectory(root,0);
root.close();
//root.openRoot(volume);
// list all files in the card with date and size
//root.ls(LS_R | LS_DATE | LS_SIZE);
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”ctlog”))){
Serial.print(”# command=ctlog”);
BTSerial.print(”# command=ctlog”);
clearTLog();
Serial.println(”tlog.txt cleared (erased)”);
BTSerial.println(”tlog.txt cleared (erased)”);
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”!”))){
Serial.print(”# command=”);
Serial.println(inputString);
BTSerial.print(”# command=”);
BTSerial.println(inputString);
#ifndef SDavailable
return;
#endif
t = millis()/1000;

File wrf=SD.open(”tlog.txt”,FILE_WRITE);
wrf.print(counter);wrf.print(”,”);
wrf.print(t);wrf.print(”, ”);
wrf.println(inputString);
wrf.close();
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”ctlog”))){
Serial.print(”# command=ctlog”);
BTSerial.println(”# command=ctlog”);
clearTLog();
Serial.println(”tlog.txt file erased”);
BTSerial.println(”tlog.txt file erased”);
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”ctdata”))){
Serial.println(”# command=ctdata”);
clearTData();
Serial.println(”tdata.txt file erased”);
BTSerial.println(”tdata.txt file erased”);
inputString = ””;
stringComplete=false;
return;
}
if(inputString.startsWith(String(”help”))){
Serial.println(””);
Serial.println(”COMMANDS:”);
Serial.println(”help –> This help.”);
Serial.println(”start –> Start logging”);
Serial.println(”stop –> Stop logging”);
Serial.println(”sdstart –> Re-initialize SD”);
Serial.println(”sdstop –> SD write stopped”);
Serial.println(”tlog –> Print tlog.txt”);
Serial.println(”tdata –> Print tdata.txt”);
Serial.println(”ls –> List SD files”);
Serial.println(”ctlog –> Erase tlog.txt”);
Serial.println(”ctdata –> Erase tdata.txt”);
Serial.println(”! –> Comment to tlog.txt.”);
Serial.println(”logint –> Logging interval secs.”);
Serial.println(”ymin –> Set plot ymin”);
Serial.println(”ymax –> Set plot ymax”);
Serial.println(”ytic –> Set plot ytic”);
Serial.println(”replot –> Clear screen and replot”);
Serial.println(””);

BTSerial.println(”COMMANDS:”);
BTSerial.println(”help –> This help.”);
BTSerial.println(”start –> Start logging”);
BTSerial.println(”stop –> Stop logging”);
BTSerial.println(”sdstart –> Re-initialize SD”);
BTSerial.println(”sdstop –> SD write stopped”);
BTSerial.println(”tlog –> Print tlog.txt”);
BTSerial.println(”tdata –> Print tdata.txt”);
BTSerial.println(”ls –> List SD files”);
BTSerial.println(”ctlog –> Erase tlog.txt”);
BTSerial.println(”ctdata –> Erase tdata.txt”);
BTSerial.println(”! –> Comment to tlog.txt.”);
BTSerial.println(”logint –> Log interval secs.”);
BTSerial.println(”ymin –> Set plot ymin”);
BTSerial.println(”ymax –> Set plot ymax”);
BTSerial.println(”ytic –> Set plot ytic”);
BTSerial.println(”replot –> Clear screen and replot”);
inputString = ””;
stringComplete=false;
return;
}
// Any comman that isn’t recognized is assumed to be a comme that is loged
// into the tlog.txt logfile.
Serial.print(”inputString”);
Serial.println(inputString);
writeToLog(inputString);
inputString = ””;
stringComplete=false;
return;
}
return; // Never reached
}

void report_serial(){
// Write as comma separated values for easy import to a spread sheet program

Serial.print(”Time,”); Serial.print(t); Serial.print(”, ”);
BTSerial.print(”Time,”); BTSerial.print((timeSecs/3600.0)); BTSerial.print(”, ”);
if(connectedTSens1){
Serial.print(”Temp1, ”); Serial.print(mySensor1.temperature); Serial.print(”, ”);
Serial.print(”Hum1, ”); Serial.print(mySensor1.humidity); Serial.print(”\n”);
BTSerial.print(”Temp1, ”); Serial.print(mySensor1.temperature); Serial.print(”, ”);
BTSerial.print(”Hum1, ”); Serial.print(mySensor1.humidity); Serial.print(”\n”);
}
//if(connectedTSens2){
// Serial.print(”Temp2, ”); Serial.print(mySensor2.temperature); Serial.print(”, ”);
// Serial.print(”Hum2, ”); Serial.print(mySensor2.humidity); Serial.print(”\n”);
//}
}

// ********************************************
// SD related functions
// ********************************************

void printDirectory(File dir, int numTabs) {
while (true) {

File entry = dir.openNextFile();
if (! entry) {
// no more files
break;
}
for (uint8_t i = 0; i < numTabs; i++) {
// Repaced ‘\t’ with ‘ ‘ to save screen space
Serial.print(‘ ‘);
BTSerial.print(‘ ‘);
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println(”/”);
BTSerial.println(”/”);
printDirectory(entry, numTabs + 1);
} else {
// files have sizes, directories do not
Serial.print(”\t\t”);
Serial.println(entry.size(), DEC);
BTSerial.print(”\t\t”);
BTSerial.println(entry.size(), DEC);
}
entry.close();
}
}

void dumpTLog(){
// Dump the logfile to the external computer
char c;
#ifndef SDavailable
Serial.println(”Error: No SD memory available”);
BTSerial.println(”Error: No SD memory available”);
return;
#endif
File rdf = SD.open(”tlog.txt”,FILE_READ);
if (rdf){
while (rdf.available()) {
c=rdf.read();
Serial.write(c);
BTSerial.write(c);
}
rdf.close();
} else {
Serial.println(”Error: Could not open tlog.txt”);
BTSerial.println(”Error: Could not open tlog.txt”);
}
}

void clearTLog(){
#ifndef SDavailable
Serial.println(”Error: No SD memory available”);
BTSerial.println(”Error: No SD memory available”);
return;
#endif
SD.remove(”tlog.txt”);
}

void dumpTData(){
// Dump the logfile to the external computer
char c;
#ifndef SDavailable
Serial.println(”Error: No SD memory available”);
BTSerial.println(”Error: No SD memory available”);
return;
#endif
File rdf = SD.open(”tdata.txt”,FILE_READ);
if (rdf){
while (rdf.available()) {
c=rdf.read();
Serial.write(c);
BTSerial.write(c);
}
rdf.close();
} else {
Serial.println(”Error: Could not open usrlog.txt”);
BTSerial.println(”Error: Could not open usrlog.txt”);
}
}

void clearTData(){
#ifndef SDavailable
Serial.println(”Error: No SD memory available”);
BTSerial.println(”Error: No SD memory available”);
return;
#endif
SD.remove(”tdata.txt”);
}

#ifdef HAVESCREEN
int cy(int y){
// Convert y into screen coordinate sy)
int v=0;
v = MAX_Y – y;
if(v<0){
v = ORG_Y;
return v;
} else if(v>MAX_Y){
v= MAX_Y;
return v;
}
return v;
}

int cx(int x){
// Dummy conversion of x-coordinate to screen coordinate
int v=0;
v = x+ORG_X;
if(v<ORG_X){
return ORG_X;
} else if(v>MAX_X){
return MAX_X;
}
return v;
}

void draw_axisX(){
// Draw x-axis
myGLCD.drawLine(cx(0), cy(0), cx(MAX_X), cy(0));
}

void draw_axisY(){
// Draw y-axis
myGLCD.drawLine(cx(0), cy(0), cx(0), cy(MAX_Y-10));
}

int cnvYfloatToInt(float y){
int intY;
//intY = MAX_Y*(y-SCALE_MINY)/(SCALE_MAXY-SCALE_MINY);
intY = MAX_Y*(y-miny)/(maxy-miny);
//Serial.print(”y=”);
//Serial.println(y);
//Serial.print(”Conv intY=”);
//Serial.println(intY);
return intY;
}

void ticX(int dx){
// Starts from x=0
// Draw x-ticks
myGLCD.setBackColor(0, 0, 0);
for (int i=0; i<460; i+=dx){
myGLCD.drawLine(cx(i), cy(0), cx(i), cy(10));
sysString=String(i);
myGLCD.print(sysString, i+5, cy(15));
}
}

void ticY(float dy,int ltype){
float ypos;
int intY;
int i;
//for (int i=0; i<MAX_Y; i+=dy) myGLCD.drawLine(cx(0), cy(i),cx(10), cy(i));
ypos = miny;
while(ypos < maxy){
intY = cnvYfloatToInt(ypos);
myGLCD.drawLine(cx(0), cy(intY),cx(10), cy(intY));
if(ltype==LINES){
myGLCD.setBackColor(0, 0, 0);
for(i=10; i<469; i=i+10){
myGLCD.drawLine(cx(i), cy(intY),cx(i+3), cy(intY));
}
}
sysString=String(ypos);
myGLCD.print(sysString, 15, cy(intY+9));
ypos = ypos + dy;
}
}

void setup_graph_screen(){
myGLCD.clrScr();
myGLCD.setColor(255, 0, 0);
myGLCD.print(”* Temperature logger V1.0 *”, 30, 20);
// Draw a background
myGLCD.setColor(255, 0, 0);
myGLCD.fillRect(0, 0, 479, 13);
myGLCD.setColor(64, 64, 64);
myGLCD.fillRect(0, 306, 479, 319);
myGLCD.setColor(255, 255, 255);
myGLCD.setBackColor(255, 0, 0);
draw_axisX();
ticX(60);
draw_axisY();
ticY(ytic,LINES);
}

void plot_point(int x, float flY, int symb){
int y;
//Serial.print(”Initial float Y=”);
//Serial.println(flY);
y = cnvYfloatToInt(flY);
//Serial.print(”Converted intY=”);
//Serial.println(y);
switch(symb){
case CIRCLE: myGLCD.drawCircle(cx(x), cy(y), CIRCLE_SIZ);
break;
}
}
#endif

void store_data_SD(){
if(SDstop==true) return;
File wrf=SD.open(”tdata.txt”,FILE_WRITE);
wrf.print(t-tOffs);
wrf.print(”,”);
wrf.print(counter);
wrf.print(”, T , ”);
wrf.print(mySensor1.temperature);
wrf.print(”, h , ”);
wrf.println(mySensor1.humidity);
wrf.close();
}

// ********************************************************************************************
// MAIN PROGRAM
// We run, very roughly one loop per second.
// Notice that variables defined within the loop are local to loop() and they
// are initialized when a new loop starts. To preserve data between loops variables have
// to be declared outside the loop().
// ********************************************************************************************

void loop() {
// ******************************************************
// Main loop for actual work
// ******************************************************
ck_serial();

if (counter==0){
#ifdef HAVESCREEN
setup_graph_screen();
#endif
counter=1;
}
shortcnt–;
if((shortcnt<=0) & isRunning==true){
mySensor1.read(); // Read Temperature and Humidity sensor #1
t = millis()/1000; // Seconds since start
Serial.print(t-tOffs);
Serial.print(” , ”);
Serial.print(counter);
Serial.print(” , T , ”);
Serial.print(mySensor1.temperature);
Serial.print(” ,h, ”);
Serial.println(mySensor1.humidity);
BTSerial.print(t-tOffs);
BTSerial.print(”,”);
BTSerial.print(counter);
BTSerial.print(” , T , ”);
BTSerial.print(mySensor1.temperature);
BTSerial.print(” , h , ”);
BTSerial.println(mySensor1.humidity);
shortcnt = reportinterval;
#ifdef HAVESCREEN
plot_point(counter,mySensor1.temperature,CIRCLE);
#endif
store_data_SD();
counter++;
}

delay(100);
}

Historisk datateknik

24/12/2018

Mina första kontakter med datateknik var på 1960-talet då min far lånade hem en Olivetti Programma 101 ”dator” eller kanske bättre programmerbar (bords) räknemaskin. Datorn var stor som en modern resväska men den var programmerbar i 100 steg dock så att varje variabel förbrukade ett programsteg.
Olivetti_programma_101

Pappa programmerade maskinen till att bl.a. skriva ut lyftdata för olika vingprofiler. Ungdomarna i familjen (däribland jag) var intresserade av modellflyg.

Följande steg för mig var Science of Cambridge Mk14  som var en 8-bitars dator med 256 minnesplatser. Program kunde lagras på kassettband men man måste alltid börja med att knacka in ett laddprogram i hexadecimal form. Jag hade inbillat mig att jag skulle ha kunnat expandera maskinen till att bli den programmerbara funktionsräknare jag egentligen önskade mig. Resultatet blev att jag lärde mig programmering i assembler men så att jag själv översatte koden till binär (hexadecimal) form.

Några år senare jobbade jag i Tavastehus på ”Ammattikoulujen Opettajaopisto” som fungerade i anslutning till en teknisk skola. Man hade en Eclipse minidator som tidsdelat användes bl.a. till undervisning i programmering (Fortran).  Min uppgift var. bl.a. att skriva enkla undervisningsprogram. Jag märkte snabbt att det lönade sig att använda en fristående mikrodator som körde CP/M operativsystemet i stället för att dela minidatorn. Eclipse minidatorn hade en kapacitet som var en bråkdel (kanske 1/1000) av kapaciteten hos en modern PC och samma maskin användes samtidigt av tjugo elever till att kompilera Fortran. Resultatet var naturligtvis att Eclipsen under skoltid var fruktansvärt trög … man kunde vänta i flera sekunder på att en knapptryckning skulle noteras. Den lilla CP/M maskinen hade endast en användare (jag) så den var underbar att använda. En persondator innan den egentliga persondatorn (IBM PC) ens var uppfunnen.

Jag råkade för en kort tid sedan på nätet stöta på en artikel om emulering av CP/M maskiner med hjälp av Arduino processorer. Den mest extrema vartianten jag har sett är då en Arduino Nano, dock med stöd av extern hårdvara, har använts till att köra CP/M. En enklare variant, då processorn är mycket mera kraftfull, är att emulera CP/M med hjälp av en Arduino Due som är ett ARM-baserat processorkort som antagligen är några hundra gånger snabbare än den ursprungliga Intel 8080 processorn.

Arduino_Due_CPM_system.png

Mitt emulerade CP/M system med hårdskiva till höger. Skivenheten är ett 4G SD-kort som är så litet att man inte hittar sådana i butikerna längre. På kortet finns katalogerna A, B, D, D, E som motsvarar forntidens 8 tums skivminnen. Skillnaden är att mina skivstationer A, B  … har en nästan obegränsad kapacitet. De första 8 tums ”floppyna” hade en kapacitet på kanske 150 000 tecken. Min extrema SD-hårdskiva har en kapacitet som är 25000 gånger större än en forntida 8-tums floppyenhet. En floppy hade en så liten kapacitet att man normalt körde t.ex. en kompilator från en skiva och hade texteditorn och programmet som kompilerades på en annan skiva.

Man kan köra CP/M i normal hastighet på kortet. Processorn har så mycket RAM minne att det finns nästan 64kByte minne ledigt för program … ett sagolikt stort minne!  Maskinen är helt användbar bl.a. till textbehandling (Wordstar) trots att en modern PC har ett minne som är ungefär 125 000 ggr större!

CP_m_2.2_Arduino_Due

Bilden ovan visar hur jag kör CP/M i textterminal GtkTerm. Det dök egentligen upp endast två poblem.

Det första problemet var hur det var tänkt att det simulerade skivsystemet med skivenheterna A:, B:, C: osv skulle konfigureras för att maskinen skulle hitta systemfilen och starta. Jag blev tvungen att lägga till några kommentarer tll emulatorns uppstartsrutin för att se varför systemet inte först ville starta., därför finns kommentaren ”Looking for: CPM22.BIN. Jag visste helt enkelt inte om problemet var SD-kortet eller platsen där systemet var lagrat i förhållande till övriga CP/M rutiner.

Det andra problemet var trivialare … att hitta ett lämpligt terminalemulatorprogram för linux som skulle gå att använda direkt utan läsande av någon bruksanvisning.   Att hitta ett terminalemulatorprogram var egentligen det storsta problemet med att få igång CP/M systemet på riktigt. Arduinons utvecklingsmiljö har något de kallar ”Serial Monitor” d.v.s ett enkelt program som kan  skicka kommandon till Arduinon och skriva ut den text som kommer tillbaka från kortet. Monitorn visade nog att jag hade fått CP/M startat men det gick inte att i praktiken köra något eftersom monitorn inte motsvarade en riktig gammaldags intelligent terminal. För detta ändamål behövs det en terminalemulator som klarar av att tolka bl.a. kontrolltecken som CP/M systemet skickar till terminalen.

Det behövdes en aning debuggning av SD-kortet som används i stället för skivminne, därav min kommentar vid uppstart ”Looking for: CPM22.bin”.

MBASIC_1985-1986.png

Bilden visar hur systemet kör Microsoft MBASIC från 1986 i en CP/M emulator som körs i en Arduino Due. Arduino Due har följande specifikationer:

Processor 32-bitars ARM.

Flash programminne 512 kB

RAM-minne 96 kB

Klockfrekvens 84 MHz

Detta kan jämföras med orginalets processor Intel 8080 som körde på 2 MHz men så att en instruktion typiskt behövde mellan 4 och 8 klockcykler. Arduinon kör alltså ungefär 100 ggr snabbare vilket gör att den klarar av att emulera en Intel 8080 processor i full hastighet.

Det är intressant att jämföra CP/M maskinen ovan med kapaciteten hos en typisk persondator av idag.

Programminne RAM är 25 000-50 000 ggr större än hos en CP/M maskin.

Skivutrymmet på en modern dator är 20 000 000 ggr större än hos ett typiskt CP/M system med en skivenhet.

Processorn är idag ungefär 4000 ggr snabbare med en ordlängd d.v.s. storleken på de datapaket datorn behandlar är 8 ggr större.

 

NGO eller hur staten betalar för åsikter

18/12/2018

I George Orwells bok 1984 lär vi oss att vi skall tolka det politiska fikonspråket precis tvärtom mot vad man egentligen säger. Språket förvrängs kontinuerligt, avsiktligt, för att grumla till debatt kring känsliga frågor ”… vi avser ju inte det du säger.”

Politiska lögner kan idag eventuellt lättare avslöjas än tidigare eftersom det finns informationskanaler som inte kontrolleras av makthavarna. Att man inte kan lita på officiell information är ett välkänt faktum. T.ex. Bismark konstaterade ”tro inte på någonting innan det officiellt har förnekats.”

Vi kan testa hur vi skall utnyttja ovanstående:

Vi kan på nationell nivå och på internationell nivå se vilken roll en mängd NGO:s (Non Governmental Organisations, icke statliga organisationer). Via media serveras vi bilden att dessa NGOn representarer den vanliga medelsvensson. Om vi använder Bismarks eller 1984 läsning så torde resultatet bli:

Bismarks läsning:

Namnet ”Non Governmental Organisation” börjar med nekningsordet ”Non” d.v.s. ”icke”. Hur finansieras dessa icke statliga stororganisationer?

Svar #1:  Via statliga pengar som samtidigt styr vilka åsikter organisationen har. Personer med fel åsikt fryses ut (se video nedan).  NGO:n fungerar alltså som statliga strategiers gummistämpel d.v.s. man kan peka på stöd från befolkningens sida eftersom det är fråga om en NGO.

Svar #2: Vissa NGO:n finansieras av superrika oligarkkretsar för att driva specifika frågor utan att beställarens namn syns. Ett exempel på detta är George Soros stöd till mängder av NGO:n.  Då man konstaterar att pengarna ges för ett gott ändamål utan krav på specifika genkänster kan man antagligen applicera Bismarks tänkande på detta.

En intressant sidofråga som kan vara relevant är varifrån Orwells boks namn ”1984” har tagits. George Orwell själv tvekade mellan The Last Man in Europe och 1984. Följande fråga blir naturligtvis varifrån årtalet 1984 kommer? Det har framförts idén att titeln 1984 skulle ha skapats utgående från att 1984 skulle vara hundraårsdagen för grundandet av The Fabian Society i Storbrittannien.

Några länkar:

The Fabian Society

Notera hur man syntetiserar  socialism + kapitalistm –> Den tredje vägen.

Var hittar vi den tredje vägen? Den Italienska fascismen.

År 1954 grundades Bilderberg gruppen som har nära kopplingar till Fabianisterna. I Bilderbergmötena, som är slutna tillställningar utan yttre insyn, har mängder av finska politiker deltagit. Kan vi lita på att dessa politiker har landets  bästa som mål?

Notera hur ledande politiker ur båda grupperna representerar världens absoluta ekonomiska elit. Kan man faktiskt lita på att världens socialistoligarker faktiskt har hela världens bästa framför ögonen?

 

 


Pointman's

A lagrange point in life

THE HOCKEY SCHTICK

Lars Silén: Reflex och Spegling

NoTricksZone

Lars Silén: Reflex och Spegling

Big Picture News, Informed Analysis

This blog is written by Canadian journalist Donna Laframboise. Posts appear Monday & Wednesday.

JoNova

Lars Silén: Reflex och Spegling

Climate Audit

by Steve McIntyre

Musings from the Chiefio

Techno bits and mind pleasers

Bishop Hill

Lars Silén: Reflex och Spegling

Watts Up With That?

The world's most viewed site on global warming and climate change

TED Blog

The TED Blog shares interesting news about TED, TED Talks video, the TED Prize and more.

Larsil2009's Blog

Lars Silén: Reflex och Spegling

%d bloggare gillar detta: