dec 302018
 

DIY Ideetje? – Digitale Fotolijst

Ik loop al langer met de volgende gedachte:

Is het mogelijk om met (een combi van een Arduino en) een Raspberry Pi een device met mannetje SDcard-connector te maken dat in een SDCard slot gestopt kan worden en dat via een RSS feed [Wifi/Internet] foto’s kan ophalen en naar de SDcard-connector kan doorsturen?

Op die manier zou je een Digitaal Fotolijstje kunnen maken dat foto’s of digitale tekeningen (GIF o.i.d.) van het web ophaalt. Digitale foto-lijstjes hebben vaak wel een mogelijkheid om er een SDkaartje in te steken.

Is er iemand die me op weg kan helpen? (Website, blogpost, etc.)

dec 222018
 

Ik vond ergens een eenvoudige manier om forth te benchmarken. de in de vorige post beschreven GGD berekening is daar een prima hulpmiddel bij.

De benchmark bestaat uit de berekening van de GGD voor alle combinaties van getallen tussen 0 en n.

: benchmark ( n -- )  
dup  
0 do  
dup 0 do  
j i ggd drop  
loop  
loop  
drop  
;  

Het resultaat voor de getallen tussen 0 en 200:
amforth: 8 sec.
dec 222018
 

Om tijdens testen van forth code even te gluren naar de inhoud en diepte van de stack kan je zelf het volgende in amForth maken:

variable maxdepth-.s \ definieer een variabele
#50 maxdepth-.s !    \ >> Van bovenaf geteld maximaal aantal te tonen stack items

: .s ( -- ) \ toont  en de bovenste stack items
   ." <" depth 0 .r ." > " \ print aantal items
   depth 0 max maxdepth-.s @ min 
   dup 0 ?DO 
     dup i - pick .
   LOOP
   drop
  ;

Als het ‘word’ .s wordt aangeroepen resulteert dat in een regel met:
a) de diepte van de stack tussen ‘< >’, gevolgd door de daadwerkelijke items op de stack. De laatste is het bovenste item.

De inhoud van de stack wordt niet beïnvloed.

Uiteraard kan je -zoals met (bijan) alle words in forth- het word .s ook weer in nieuwe words opnemen.

dec 192018
 

Hoe bereken je de Grootste Gemene Deler (GGD) in Forth?

Dat doe je zo:

: ggd ( a b -- ggd )
begin
dup
while
swap over mod
repeat
drop
;

Zet nu twee getallen op de stack en laat ggd het werk doen. 

Na afloop staat de GGD op de stack.

nov 292018
 

Was ik eerst bezig met Raspberry Pi (hardware) in combinatie met Forth (programmeertaal), nu ben ik overgestapt naar Arduino en Forth.

Waarom?

a) De Arduino is een microcontroller die apparaten met enen en nullen of analoge signalen aanstuurt. Daardoor werk je ‘dichter op de hardware’.

b) Forth is een programmeeromgeving waarmee je heel dicht bij de hardware kan komen.

Het lijkt als het ware dus alsof ze beide voor elkaar gemaakt zijn.

Voor de Arduino maak ik gebruik van AmForth.

AmForth runs completely on the controller. It does not need additional hardware. It makes no restrictions for hardware extensions that can be connected to the controller. The default command prompt is in a serial terminal.