...

ANS Forth programmeercursus

ANS Forth programmeercursus door Albert Nijhof Het ANSI (American National Standard Institute) heeft in 1994 een nieuwe standaard voor Forth gedefiniëerd: ANS-Forth. Het is een vervolg op de reeks: Fig-Forth, de 79-Standaard en Forth-83. ANS Forth is eigenlijk een uitbreiding van Forth-83. Sinds kort is het ook een ISO standaard. De Forth-gg omarmt deze standaard en brengt geen software meer uit voor de oudere Forth-versies. Een paar bladzijden uit de cursus Zie ook: Losse artikelen uit deel C van de cursus De programmeercursus is voor beginners, maar is ook handig als opfrisser voor hen die gewend zijn aan oudere standaarden. De kompakt geschreven cursus is bedoeld om 'achter de computer' gevolgd te worden. De schrijver gaat er van uit dat basisbegrippen zoals byte, bit en RAM bekend zijn. Voor vragen over de cursus: Albert Nijhof ANS Forth programmeercursus voor starters en ter opfrissing € 15

12 juni 2020

...

Tingeltangel

Tingeltangel De Tingeltangel is een computergestuurde vibrafoon met metalen buisjes die wordt bestuurd vanuit Forth. De Forth IG heeft twee tingeltangels: één met koperen buisjes en één met aluminium buisjes. Beide worden aangestuurd vanuit de parallelle poort via een Bamboe-interface of een vergelijkbare schakeling, die serieel naar parallel om kan zetten. Sinds de negentiger jaren is dit een publiekstrekker op beurzen en bijeenkomsten. De muziekstukken worden gespecificeerd in een speciale taal, MANX. De eerste versie door Marcel Hendrix, kon weliswaar meerstemmige stukken specificeren, maar de aansturing van de metallofoons liet te wensen over en vereiste meerdere computers. Latere uitbreidingen hadden vooral betrekking op midi en deze MANX werd voornamelijk onderhouden en uitgebreid met betrekking tot midi synthesizers. De hardware aansturing maakte op een kromme manier gebruik van midi, om de relais van de metallofoon's 60 milliseconden te activeren. Het programma is herschreven door Albert van der Horst in 2003, waarbij een echte real time aansturing is gemaakt. Na tien jaar konden stukken voor beide tingeltangels samen weer gespeeld worden. Meerdere instrumenten worden tegelijk vanuit een enkele parallele poort aangestuurd, tot maximaal 6. Een instrument kan ook meerdere partijen van een zelfde stuk spelen, en sowieso zijn de instrumenten polyphoon, m.a.w. accoorden zijn mogelijk. Hiermee is ook de aansturingstaal manx herzien, en manx2 genoemd. Sindsdien is ook een orgel toegevoegd. De aansturing van de hardware hiervoor is totaal anders, maar stukken kunnen op alle instrumenten, alsook de interne luidspreker gespeeld worden met dezelfde partituur. Uiteraard speelt het orgel articulaties, die bij een metallophoon genegeerd worden. De software draait op 32 en 64 bits ciforths, zoals voor Intel Linux en ARM, en ook op MS-Windows voorzover toegang tot de parallele poort mogelijk is, bijvoorbeeld Windows XP.

12 juni 2020

...

Geesink Sumorobot

Geesink, een sumorobot door Paul Wiegmans Geesink is een mobiele robot, sumorobot die op de HCC-dagen in 1998 de helaas weinige aanwezige tegenstanders allemaal uit de ring heeft verwijderd. Geesink is te zien op de MPEG film over de HCC-dagen op C!T-ROM nr 18, waar hij in gevecht is met een Fisher Technik robot. Het bouwen van Geesink is voortgekomen uit mijn interesse in elektronica, de 8051 microcontroller en de programmeertaal Forth. Geesink is deels gebaseerd op mijn ervaringen met het bouwen van mijn vorige en eerste robot Mobo. Geesink is een autonoom bewegende mobiele robot. Dat houdt in dat het voertuig zijn eigen krachtbron aan boord heeft, en zijn eigen intelligentie, die bestaat uit een microcontroler met software die de robot zelfstandig laat bepalen hoe het beweegt, in welke richting en met welke snelheid. De robot legt doelbewust gedrag aan de dag dankzij een aantal sensoren, die de robot informatie geven over de omgevingswereld waarin hij zich verkeert, en die het de robot mogelijk maken om beslissingen te maken op basis van deze informatie. De robot bestaat uit drie delen of niveaus: Fysiek: het houten platform waarop de wielen, sensoren, en printplaten zijn gemonteerd. Elektrisch: een elektronisch systeem, bestaand uit een microprocessor, sensors, motoren en een krachtbron. Logisch/functioneel: een incrementele Forth compiler met een intelligent besturingsprogramma. Robosumo Geesink is een mobiele robot, die speciaal is ontworpen het robot-sumo te spelen. Robot-sumo of Robosumo is een tweekamp tussen twee mobiele robots op een rond platform, waarbij het de bedoeling is dat een robot dat ander probeert uit de ring te schuiven. De robot wint, die het eerst de andere robot de ring afduwt of die het langst de tweekamp uithoudt zonder zelf van de ring afgeduwd te worden. Voor een simpel sumorobot kunnen een aantal doelen worden gesteld die het probeert uit te voeren om een westrijd te winnen: Een sumorobot detecteert de rand van de ring en blijft daarbinnen (obstakel-vermijdend) Een sumorobot detecteert de tegenstander en richt zich daarop (obstakel-opzoekend) De reglementen voor Robosumo stellen eisen aan de dimensies van de robot. De robot mag maximaal 20 cm bij 20 cm groot zijn, en mag maximaal 1 kg zwaar zijn. Geesink voldoet aan deze eisen: hij is 19,5 cm bij 19,5 cm en heeft een gewicht van 980 gr. Foto's van Geesink (voor, zij, achter) Platform Het platform voor Geesink werd eerst van plexiglas gebouwd. Toen bleek dat dit materiaal slecht te bewerken was, is het platform opnieuw gebouwd van houten hobbyplaat en latten. Het platform bestaat uit een vierkante basisplaat van fijn multiplex. De motoren en de motorbatterij zijn aan de onderkant gemonteerd, terwijl de processorprint en de interfaceprint aan de bovenkant zijn gemonteerd. Alle verbindingen zijn M3 bouten en moeren. De voorkant en achterkant heeft een houten balkje gemonteerd waarop elk 2 bumpers gemonteerd zijn met drukschakelaars. De batterij voor het elektronische systeem ligt los tussen de basisplaat en de processorprint. Bumpers heb ik gemonteerd met behulp van folietoetsen, die met behulp van een hete lijm gemonteerd aan de bumperbalk aan de voor en achterkant. Elektrisch systeem Het elektrische systeem bevat alle componenten voor het controller-systeem, de sensors en de motoren. De microcontroller bevindt zich op een processorprint, welke een F+-bord is met een 80C535 processor. Dit microcontrollersysteem draait zelfstandig. Daarboven is een interfaceprint gemonteerd verbonden met de processorprint via enkele connectors. De interfaceprint bevat elektronica voor niveauaanpassing en aansluiting voor elke individuele sensor, enkele LEDs en de aansluitingen voor de schakelaars, de twee batterijen, en motoren. Het elektrisch systeem wordt gevoed uit twee batterijen. De motoren en LEDs hebben een eigen krachtbron met 4 NiCad cellen, onafhankelijk en gescheiden van het elektrische deel met de microprocessor en alle sensors, om de beinvloeding van stoorpulsen opgewekt door de motoren op de werking van de sensors te minimaliseren. Het deel met de microcontroller en sensors wordt gevoed uit twee 4,5 V platte batterijen. De processorprint is een zelf ontwikkeld F+ bord, met een 80C535 processor, 32 KB RAM, en 32 KB ROM met daarin de taal Forth, een I2C realtime clock, en een lithium batterij voor backup van de RAM. De 80C535 processor is een algemene 8-bit processor compatibel met de alom bekende 8051 met 36 digitale in/uitgangen waarvan 8 ook bruikbaar zijn als analoge ingang van de ADC met 8 of 10-bit resolutie. De lithium batterij bewaart het programma gedurende 1 jaar in de RAM, en maakt het mogelijk dat het systeem bij het aanschakelen automatisch begint met het uitvoeren van de routines in RAM. Aandrijving De motoren zijn servomotoren, die zo zijn gemodificeerd dat ze volledig rond kunnen draaien. Deze motoren zijn uiterst klein, en hebben geen grote krachtstroomelektronica nodig. De servomotoren worden aangestuurd met een pulswijdte gemoduleerd (PBM) signaal op TTL-spanningsniveaus en kunnen rechtstreeks aan de 80C535 microcontroller verbonden worden. Met het pulsbreedte gemoduleerd signaal kan de snelheid en draairichting traploos geregeld worden. De minieme motortjes erin worden vertraagd door middel van een interne tandwielenkast, en het askoppel neemt daarbij fors toe. Dit is ideaal voor Robosumo waar de motoren flink wat kracht moeten leveren. Het nadeel is dat de snelheid niet zo erg hoog is. De sensoren geven Geesink informatie over de omgevings en zijn rechtstreeks verbonden met de interfaceprint. Er zijn 13 sensors: 4 paren bumperschakelaars; 2 op de voorbumper en 2 op de achterbumper. 4 infrarode obstakeldetectors voor korte afstand, met IS471; voor, achter, links en rechts. 1 infrarode obstakeldetectors voor lange afstand met een GP2D02; 4 End-Of-World detectors; type CNY70 infrarode optocouplers die de rand van de Sumoring detecteren. Op de sensorprint zijn bovendien nog aansluitingen voor 1 speaker, 1 infrarood sensor, 3 LEDs, 4 extra schakelaars, 2 extra servomotoren en 4 ADC kanelen voor het meten van de batterijspanningen en de motorstromen. Op de hoekpunten van het platform zijn aan de onderkant de EndOfWorld detectoren gemonteerd die de rand van de ring detecteren. Dit zijn optocouplers van het type CNY70. Hierin zit een aktieve IR-LED en een IR-transistor. Wanneer de witte ringrand onder een sensors verschijnt wordt het gereflecteerd infrarode licht van de IR-LED opgevangen door de IR-transistor en de intenisteit ervan gemeten op een ADC-kanaal. De IR-LED wordt aan en uitgeschakeld en het verschil tussen de reflecties wordt gemeten. Dit geeft een betrouwbare mate van reflectiviteit ("witheid") van de ondergrond ongeacht de hoeveelheid van omgevingslicht. Deze methode werkte goed, maar pas wanneer direct zonlicht op de ring onder de sensors viel (zoals in het clubhuis in Gouda wel eens gebeurde) dan raakte Geesink toch enigszins in de war. Aan de voorkant, achterkant en beide zijkanten zijn nabijheidsdetectors gemonteerd van type IS471. Deze aktieve sensors geven een digitaal signaal dat aktief wordt wanneer een object binnen ongeveer 15 cm in de straal komt. De LEDs worden gevoed uit de motorspanning. Software De software van Geesink zorgt dat de robot reageert op de omgeving en dat de robot intelligent beweegt. Het besturingsprogramma van Geesink is grotendeels geschreven in Forth, en assembler is gebruikt voor de tijdkritische delen, zoals de servosturing die helemaal op basis van software plaatsvindt. De Forth in EPROM is 8051-ANS-Forth dat is ontwikkeld door de HCC Forth g.g. door o.a. Willem Ouwerkerk. Forth is een krachtige redelijk makkelijk te leren taal dat heel geschikt is voor microcontrollers. Het maakt het mogelijk om interactief te programmeren en dit verkort de ontwikkeltijd aanzienlijk. Een programma wordt tijdens het downloaden gecompileerd in RAM en kan direkt worden uitgetest. Fouten in de software kunnen worden hersteld, door de RAM helemaal of gedeeltelijk te wissen en een nieuwere versie van de software te downloaden. Sommige aanpassingen aan de software kunnen met behulp van een terminal rechtstreeks gedaan worden op de prompt van het microcontrollersysteem, variabelen kunnen bekeken of gewijzigd worden en de routines geherdefinieerd. Dit verkort het testen en foutzoeken enorm. De doelen van Geesink zijn dezelfde als iedere Sumorobot. Het softwareprogramma van Geesink zorgt daarom dat Geesink die doelen kan bereiken. Om een sumowedstrijd te winnen heeft een sumorobot grofweg de volgende doelen. De robot moet de tegenstander opzoeken; De robot moet de tegenstander uit de ring werken; De robot moet in de ring blijven en niet zelf over de rand te rijden. De robot moet in de ring blijven en niet door de tegenstander uit de ring geduwd worden. Het software van Geesink is gebaseerd op de Subsumption Architecture van MIT professor Rodney Brooks. Subsumption Architecture is een methode is evan uitgaat dat een robot complex intelligent gedrag aan de dag kan leggen, door middel van het implementeren van een aantal gedragingen ("behaviors") die elk voor zich erg eenvoudig zijn en slechts reageren op prikkels van de buitenwereld. Deze gedragingen vechten als het ware om belangrijkheid (prioriteit) en zijn feitelijk kleine parallel uitgevoerde controlesystemen. Er wordt geen lange termijn planning gedaan. De strategie voor een sumorobot kan dus vereenvoudigd worden van het proberen te bereiken van een ingewikkeld doel (het winnen van robosumo) tot een aantal zeer eenvoudige deeltaken en het programmeren van een aantal zeer simpele routines die elk afzonderlijk proberen elk zijn eigen simpele deeltaak te verwezenlijken. De software van Geesink is uitgesplitst in deze deelprogrammas of gedragsprogrammas: Randvinder: detecteert de rand van de ring en onderneemt aktie om binnen de ring te blijven. Dit onderbreekt Botser. Botser: detecteert een botsing met de tegenstander en onderneemt aktie om Geesink tegen de tegenstander op te rijden. Botser heeft voorrang boven Proxer. Proxer: detecteert de tegenstander op korte afstand en onderneemt aktie om Geesink naar die richting te sturen. Proxer heeft voorrang boven Zoeker. Zoeker: detecteert de tegenstander op lange afstand en onderneemt aktie om Geesink naar die richting te sturen. Zoeker heeft voorrang boven Crazyivan. Crazyivan: draait Geesink eens in de zoveel tijd om zijn as, om de vast-gemonteerde langeafstandssensors te kans te geven om de tegenstander op te pikken (en zo de kans geeft aan deelprogramma Zoeker om prioriteit te krijgen). Crazyivan heeft voorrang boven Kruiser. Kruiser: stuurt Geesink met lage snelheid vooruit en laat Geesink eens in de zoveel tijd een bocht nemen. Dit gedrag geeft zijn commando altijd af aan de actuatoren (aandrijfmotoren) van Geesink, zolang niet tenminste een ander gedrag aktief wordt. De gedragingen zijn verbonden aan elkaar in een netwerk. Sensoren geven signalen aan gedragingen waardoor informatie over de buitenwereld verwerkt kan worden. Een gedraging kan aktief worden wanneer het een bepaald signaal krijgt van de sensoren. Gedragingen geven hun signaal af aan actuatoren waardoor de robot beweegt en aktie kan ondernemen in de wereld, bijvoorbeeld via aandrijfmotoren of een robothand. Gedragingen kunnen ook signalen aan elkaar geven. Een gedraging kan ook een gedraging van een lager niveau of lagere prioriteit onderdrukken. Het afgegeven signaal van de gedraging van lagere prioriteit raakt dat verloren. Alleen de dominante gedraging geeft zijn signaal aan de actuatoren. Deze gedragingen zijn feitelijk deelprogrammas die allemaal tegelijk (parallel) uitgevoerd worden. Wanneer er geen multitasking mogelijk is, dan kunnen deze gedragingen geprogrammeerd worden als zogenaamde finite state machines (FSM). Omdat het besturingssysteem van Geesink (80C535-ANS-Forth) niet multitasking is, zijn de gedragingen in Geesink allemaal geprogrammeerd als FSM. Een FSM is een abstracte controlestructuur die gezien kan worden als een verzameling toestanden. De FSM kan met een toegevoerd signaal van een toestand naar een andere worden gebracht. Dynamisch reageren op omgeving Het is erg belangrijk voor een sumorobot dat het op ieder moment de rand van het strijdtoneel kan detecteren, zelfs als zit het in een commandoreeks voor het ontwijken van een obstakel. Het gebruik van gedragingen en het schijnbaar parallel uitvoeren daarvan in Geesink zorgt ervoor dat Geesink op elk moment zijn sensors blijft uitlezen en dynamisch blijft reageren op zijn omgeving. Omdat alle gedragingen parallel uitgevoerd worden, is Geesink op geen enkel moment blind voor zijn sensors, want op geen enkel moment raakt het programma in een hardgecodeerde wachtlus, zoals bijvoorbeeld in het commando "ga achteruit, wacht 2 seconden, ga linksom, wacht 1 seconde, ga vooruit" omdat deze zijn geprogrammeerd in een FSM die continu test of de tijd verstreken is. Deze FSM wordt als het ware parallel uitgevoerd tegelijk met de andere FSMs en dit maakt het mogelijk dat tijdens reeks commandos toch alle sensors uitgelezen worden. Dit maakt het mogelijk dat Geesink een zeer scherp reageert op veranderingen in de omgeving, met name een tegenstander-sumorobot. Het prioriteitenschema liggen vast. De motoren krijgen het commando van de gedraging die aktief is en voorrang krijgt. Gedraging Kruiser is altijd aktief en geeft zijn commando altijd af aan de motoren. Pas wanneer Crazyivan aktief is, geeft Crazyivan zijn commando aan de motoren; om te draaien. Wanneer een van de sensoren een signaal geeft dan wordt een van de andere gedragingen aktief en geeft die gedraging zijn commando aan de motoren. De gedraging met de hoogste prioriteit is Randvinder, omdat de EndOfWorld-sensors het belangrijkst zijn, waarop Geesink altijd moet reageren. Daarom heeft Randvinder de hoogste prioriteit. Hoewel de prioriteiten vastliggen, is het niet te zeggen welke gedraging op een moment dominant is. Welke gedraging dominent is, is helemaal afhankelijk van de signalen van de sensors.

12 juni 2020

...

Ushi

Ushi 23 maart 2005: door de Ushi werkgroep De Ushi is, alweer een, nabouwbare robot. Het uitgangspunt bij het bouwen van Ushi was om zoveel mogelijk gangbare materialen te gebruiken, zoals servomotoren, een microcontroller en standaard electronicacomponenten. De software voor Ushi is ontwikkeld voor AVR microcontrollers van Atmel draaiend onder AVR ByteForth. Waar is Ushi voor bedoeld? Ushi is bedoeld om hardware te leren besturen, aan de hand van spelletjes. Natuurlijk speelt voor ons (Byte)Forth daar een grote rol in. Het competitie element moet voor een extra stimulans zorgen. Het gaat niet om het winnen op zich, maar om elkaar de kneepjes van het programmeren bij te brengen. Elke Ushi wordt met ongeveer dezelfde hardware opgebouwd. Voor de prestaties van Ushi ligt daardoor het accent op de software. Een lijstje: Spelenderwijs de programmeertaal (Byte)Forth leren. Leren om een (intelligente) robot te besturen. Alleen of in competitie spelletjes spelen. Knutselen met hard- en software. Als leuke starterkit om AVR en/of 8051 processoren te leren kennen. Experimenten met software zoals draadloze communicate, kunstmatig leven, etc. Wat bieden we aan? Een printenset met gedrukte bouwbeschrijving of een compleet bouwpakket met alle onderdelen voor het opbouwen van wat we noemen een basis Ushi. Natuurlijk heeft de club ook de geschikte Forth compiler's voor gebruik met Ushi en zijn er ook veel printen en microcontrollers bij ons te koop. Testsoftware voor alle onderdelen van Ushi en een voorbeeld als autonome robot kunnen hier gedownload worden. Natuurlijk kun je via het internet en op bijeenkomsten ondersteuning van ons krijgen. Processor Ushi is getest met de AT89C2051, de AT90S2313 en de AT90S4433 maar er zijn opsteekprintjes verkrijgbaar voor de ATmega8, ATmega16 en het ATS-bord met de 80C535. Programmeertaal AVR ByteForth is zeer geschikt voor Ushi, omdat je daarmee de AVR's via een simpel 6-aderig kabeltje naar de printerpoort eenvoudig en snel kunt programmeren. De AT89C2051 moet in een externe programmer om geprogrammeerd te worden en het ATS-bord eist een hogere voedingsspanning om goed te kunnen werken. Onze produkten Ushi werkboek: ushiboek.pdf 3.5 Mb   early Ushi source files: ushi.zip 17 Kb   Ushi source files voor AT90S2313: ushi.zip 19 Kb  

12 juni 2020

...

Flash Programmer

In december 2001 verscheen in Elektuur een beschrijving met print van een single board computer met een Atmel 89s8252. Hierbij hoort een softwarepakket om te programmeren in assembler en BASIC dat door Elektuur ter beschikking wordt gesteld. Helaas vallen daarmee Linux-gebruikers uit de boot omdat deze software voor MS-Windows bestemd is. Leden van de HCC Forth gg hebben nu een flashprogramma geschreven waarmee althans programma's vanuit Linux in het board geladen kunnen worden. U kunt dit programma gratis downloaden.   Download de pdf Flash Programmer(42 KB) software     Flash Programmer voor Elektuur Single Board Computer Albert van der Horst In december 2001 verscheen in Elektuur een beschrijving met print van een single board computer met een Atmel 89s8252. Hierbij hoort een softwarepakket om te programmeren in assembler en BASIC dat door Elektuur ter beschikking wordt gesteld. Helaas vallen daarmee Linux-gebruikers uit de boot omdat deze software voor MS-Windows bestemd is. Leden van de HCC Forth gg hebben nu een flashprogramma geschreven waarmee althans programma's vanuit Linux in het board geladen kunnen worden.   Gebruiksaanwijzing Allereerst moet U de zip pdf file  elflash.zip(42 KB) downloaden en uitpakken met unzip. U heeft dan de files isp-el.frt : de source isp-el : het programma isp-el.1 : de man page. COPYING : copyright. flash1.bin : test programma flash.bas : basic test programma .minirc.dfl : configuratie file voor minicom Het gebruik van het programma is simpel : Verbind het Elektuurboard met een rechtdoor D9-kabel van COM2 naar connector K2 op het board. (Voor details zie het Elektuurartikel.) Geef het commando (als user root) isp-el <bestandsnaam> Afhankelijk van de extensie .bin of .hex wordt het bestand als binaire file of Intel-hex geinterpreteerd. Het is niet gewenst om telkens in te loggen als root en dat is ook niet nodig als U het programma officieel installeert. Dit kan door commando's te laten voorafgaan door sudo waarbij U tijdelijk root-bevoegdheid krijgt als U het juiste wachtwoord invoert. Dat gaat als volgt: kopieer het programma naar een directory in het PATH , bijvoorbeeld : sudo cp isp-el /usr/bin maak het programma setuid root : sudo chown root /usr/bin/isp-el sudo chmod +s /usr/bin/isp-el kopieer het man-bestand isp-el.1 naar een directory in het MANPATH , bijvoorbeeld : sudo cp isp-el.1 /usr/man/man1 De gebruiksaanwijzing leest u met man ./isp-el of na installatie gewoon met man isp-el De source wordt meegeleverd. Dit is namelijk een Open Source programma met een GPL copyright. Zie voor detail de file COPYING. De source heeft U echter voor normaal gebruik niet nodig. Het geeft U wel de mogelijkheid fouten uit het programma te halen en uitbreidingen te maken. Als U het verbeterde programma verspreidt, en ALLEEN DAN, bent U verplicht ook de verbeterde source mee te verspreiden. Verder zijn er geen beperkingen, ook niet voor commercieel gebruik, of het opnemen van het programma in distributies. Een simpele test kan gedaan worden met het door Elektuur meegeleverde programmaatje flash1.bin dat voor het gemak hier ook bij zit. Het is het gemakkelijkst als U een LED aansluit op pin 2 van K4 met een weerstand van 1 K naar de plus (op K5). Na het laden van flash1.bin moet deze LED knipperen. Met een voltmeter gaat het ook wel, maar dan kunt U beter pin 7 nemen.   Extra faciliteiten De optie -r kan gebruikt worden om het board te resetten. Indien gewenst kan de seriële poort worden opgegeven met de optie -c (als COM1 of COM2), bijvoorbeeld -c 1 voor COM1. Met de optie -a geef je het adres van de seriële poort als adres, bijvoorbeeld -a 3E8 (let op: gebruik hoofdletters voor het hex adres!) Dit programma is beter geschikt dan het met Elektuur geleverde programma om moeilijkheden met hardware en aansluitingen het hoofd te bieden: De -t optie helpt U bij het line voor lijn controleren van de uitvoer naar het board. Het detecteert een niet aangesloten board. Het heeft een ingebouwde verify; het geeft altijd een foutmelding als het flashen mislukt. Het is bestand tegen soft errors. Een incidentele schrijffout wordt gecorrigeerd. Vooral de ingebouwde verify is prettig. Het betekent dat het programma er gegarandeerd in staat, als U geen foutmeldingen krijgt. Dit programma is geschreven in Forth. Dat wil zeggen dat U alles wat dit programma kan, en meer, ook interactief kunt uitvoeren. Hiervoor moet U een Forth omgeving opstarten (wel met root privilege) en de meegeleverde source inladen. De Forth omgeving (ciforth) waar dit programma voor geschreven is, kunt U downloaden via de ciforth pagina Er zijn commando's voor het wissen van de flash EPROM, voor het verifiëren, voor het teruglezen en in een file zetten van de flash EPROM etc. In de source kunt U zien wat elk commando doet. Enige Forth kennis is dan wel gewenst.   Gebruik van BASIC De door Elektuur meegeleverde BASIC (basic52.bin) kan natuurlijk ook geüpload worden in het board. Maar dan? Het blijkt dat het minicom programma dat in de meeste distributies zit, gebruikt kan worden om met de BASIC te communiceren en BASIC programma's naar het board versturen. minicom vertoont veel gelijkenis met het aloude procomm en ik vind het prettig te gebruiken. Een werkende configuratie file is meegeleverd. Deze dient naar Uw home directory gekopieerd te worden en wordt dan automatisch gelezen. Na opstarten van minicom kan het zijn dat er nog geen contact is. Reset het Elektuur board en stuur spaties. Soms moet U het nog eens proberen. Het opsturen van BASIC files moet - uiteraard - met een ASCII upload. Nu kunt U flash.bas uploaden. Als U de LED heeft aangesloten moet die nu ook weer knipperen. Anders kunt U weer een volt meter gebruiken, maar nu is de pin 2 van K4 het beste om het goed te zien. Helaas is de help file van BASIC52 (AH-BASIC-HLP) niet te begrijpen voor Linux. Overigens kunnen ook niet alle Windows versies er mee overweg, in ieder geval niet het aloude Windows 3.11.

12 juni 2020

Actueel

'Meld je aan voor de nieuwsbrief' van HCC!forth

'Abonneer je nu op de nieuwsbrief en blijf op de hoogte van onze activiteiten!'

Aanmelden