Inhoudsopgave:

Robot Brain: bouw een computer met één bord in een avond - Ajarnpa
Robot Brain: bouw een computer met één bord in een avond - Ajarnpa

Video: Robot Brain: bouw een computer met één bord in een avond - Ajarnpa

Video: Robot Brain: bouw een computer met één bord in een avond - Ajarnpa
Video: Сара Бергбрайтер: Почему я создаю роботов размером с рисовое зёрнышко 2024, Mei
Anonim
Robot Brain: bouw een computer met één bord in een avond
Robot Brain: bouw een computer met één bord in een avond

Heeft u onvoldoende geheugen op uw Picaxe of Arduino? Maar een pc is overkill voor het werk? Kijk eens naar deze open source computer met één bord die kan worden geprogrammeerd in talen als C, Basic, Forth, Pascal of Fortran. Dit bord maakt gebruik van goedkope IC's en maakt bewust gebruik van grote chips, zodat het gemakkelijk te solderen is. Het maakt gebruik van een besturingssysteem met de naam CPM dat draait op een Z80, dat populair was in de late jaren zeventig tot midden jaren tachtig. Hierdoor is er minimaal een gigabyte aan software beschikbaar waaronder programmeertalen, spreadsheetprogramma's en tekstverwerkers. CPM is een op tekst gebaseerd besturingssysteem en is een eenvoudige versie van DOS. Dit bord is perfect als je dat zeer complexe robot- of domoticasysteem bouwt en steeds merkt dat computers met één chip, zoals foto's, arduino's en atmegas, gewoon niet de geheugen. Moderne technologie betekent dat harde schijven en floppydrives op enkele geheugenchips kunnen bestaan, en computers die vroeger een driefasige voeding nodig hadden, kunnen nu worden geëmuleerd op een bord dat wordt gevoed door batterijen. Over de hele wereld worden een aantal N8VEM-kaarten gebouwd door een groep vriendelijke enthousiastelingen https://groups.google.com.au/group/n8vemBoards zijn een open source-ontwerp en u kunt uw eigen ontwerp maken of er een kopen van een liefhebber in de VS tegen kostprijs ($ 20). Eproms kunnen voorgeprogrammeerd worden gekocht of u kunt uw eigen programma's programmeren. Laten we er een samenstellen en kijken wat het kan doen …

Stap 1: Word lid van de Google-groep

Word lid van de Google-groep
Word lid van de Google-groep

Je kunt door de groep bladeren https://groups.google.com.au/group/n8vem, maar als je een verzoek stuurt om lid te worden van de groep, kun je bijdragen aan de discussie. Er is een bibliotheek met bestanden en veel afbeeldingen van werkborden. Ik heb een paar weken geleden een bericht naar de groep gestuurd en gevraagd om lid te worden. Ik bestelde een bord en het kwam een week later aan, wat vrij snel is van de VS naar Australië. Ik heb niet veel van de onderdelen, dus ik heb de lijst met onderdelen uit hier https://n8vem.googlegroups.com/web/TestPrototype_BOM_PART-LIST.lst?gda=6DMrhVQAAABRoI8ydU505jGCwGWcAnRLVYTZaCdyJias028kLbDjM7mHeIlRNZNuWyWm5kKNAJr2D8gD3ctlIYKczaAghgqdUwk_6Qi3BU8HCN0q6OYwM6JXPqrFQS5SIfKND7QsaYYQuite een paar winkels hebben de onderdelen, waaronder Digikey, Jameco en Futurlec. Alle logica-chips zijn gespecificeerd als LS-onderdelen. LS is een beetje ouderwets en de chips gebruiken meer kracht en worden warm. Ik heb alle LS-chips vervangen door het modernere HCT-assortiment. HCT's zijn direct compatibel, maar verbruiken veel minder stroom. Evenzo ging ik voor een CMOS Z80, een CMOS UART (16C550) en een CMOS input/output-chip (82C55). Het bord arriveerde ongeveer tegelijkertijd met de onderdelen en het was tijd om te beginnen met solderen.

Stap 2: Soldeer het bord

Soldeer het bord
Soldeer het bord

Solderen was vrij eenvoudig en was in anderhalf uur gedaan. Ik besloot de grote chips in een socket te steken en de kleinere chips er direct in te solderen. Het grootste probleem was dat alle chippinnen een beetje werden gebogen zodat ze in het bord pasten. Er is een real-time klokchip die ik niet nodig had, dus die heb ik weggelaten. Het kan later worden toegevoegd. Ik heb ook een DC-stekker op mijn bord en een 5V-regelaar geplaatst. Dit bord is zo efficiënt dat het niet eens een koellichaam op de regelaar nodig heeft. Ik heb het van een 9V-muurwrat gehaald. De eprom heeft een label over het venster, anders kan het worden gewist als het in de zon gaat. Het schema is hier https://n8vem.googlegroups.com/web/Printing+TestPrototype- sch.pdf?gda=MaRhCFMAAABRoI8ydU505jGCwGWcAnRLnTJP08ZxIX8TVeSmRPYsxGLTiGlLa5mMzgNTsMYdvKCD3Kr1rUv-XML38vqpBkuybcVT3VtYGKLco-Ql-8AzCdU moet dit bord echt begrijpen Maar ik vond het nuttig om te vergelijken met mijn eerste computer die 8 RAM-chips had om 64K te krijgen. Dit bord heeft een halve meg op een enkele chip. De CPU is een Z80. De Z80 kwam van de 8080-chip en de 8080 bracht ook de 8086, 80286 tot 80586 voort, die de pentium werd genoemd omdat het octrooibureau zei dat je geen nummers kon patenteren. De 8080 machinecode-instructies in een Z80 bestaan nog steeds in moderne pc's.

Stap 3: Programmeer de Eprom

Programmeer de Eprom
Programmeer de Eprom

Als je geen eprom wilt programmeren, kun je er altijd een kopen die voorgeprogrammeerd is als je het bord krijgt. Maar ik dacht dat ik geprogrammeerde eproms in sommige andere projecten zou kunnen gebruiken, dus kreeg ik een programmeur en een gum. Deze kosten vroeger duizenden. Maar ik haalde de programmer op voor $34 inclusief verzendkosten (zoek naar eprom programmer op ebay), en de gum was $25 inclusief verzendkosten. De programmeur wordt geleverd met zijn eigen software en als je hem het chipnummer vertelt, krijg je een beeld van hoe je de chip moet plaatsen en alle schakelaars moet instellen. De eproms zijn leeg, maar ik heb er een geprogrammeerd, deze vervolgens 5 minuten gewist en opnieuw geprogrammeerd, gewoon om te controleren of alles werkte. De volledige rom-afbeelding staat hier https://n8vem.googlegroups.com/web/ROMIMAGE.zip?gda =5RkX1kEAAABRoI8ydU505jGCwGWcAnRLTpwShSoH8O7HvxGhdHl1lXeXmbZQXujx0V3ulhJIKNrhtrFcBixfottYTQUy-Muj7WbB0sVAO2xNgtm1PE2xNgtm1PE2xNgtm1PE2xNgtm1PE2xNgtm1PE2 Het is een beetje zoals je XP-installatieschijf, behalve dat deze in een chip gaat. Pak het bestand uit, start de programmer, laad het.bin-bestand en programmeer de chip. U kunt de gegevens teruglezen om te controleren of deze zijn doorgekomen. Het enige nadeel van deze programmer is dat hij een parallelle poort nodig heeft. Sommige nieuwere pc's hebben geen parallelle poort. Ik heb zelf een verlengkabel voor parallelle poorten gebouwd, zodat ik niet steeds achter de pc hoefde te reiken. Het bestaat uit een IDC D25-stekker, een IDC D25-bus en 2 meter lintkabel. Gebruik een bankschroef om de stekker op de connector te drukken. De door mij gekochte willem programmer toont niet alle instellingen die nodig zijn om een eprom van 1 megabyte te programmeren. Aan de linkerkant van de chip bij de onderkant moet een jumper worden verplaatst. De instellingen staan echter in de handleiding, een bestand genaamd Willem PCB5.0 Manual.html in de handleiding sectie. Dit heeft veel meer details over de instellingen.

Stap 4: Sluit een seriële kabel aan

Een seriële kabel aansluiten
Een seriële kabel aansluiten

Als je teruggaat naar stap 2 zie je de seriële kabel in de afbeelding. Dit bestaat uit drie delen: 1) Mijn verlengsnoer dat uit de achterkant van de pc komt. Dit is de regenboogkabel. Ik heb het op dezelfde manier gebouwd als de verlengkabel van de programmeerkabel, behalve dat deze een D9 IDC-stekker en -aansluiting gebruikt. Het is erg handig om niet de hele tijd achter de computer te hoeven reiken. Het verlengsnoer heeft een vrouwtje aan het ene uiteinde en een mannetje aan het andere.2) Een nulmodem. Dit is een vrouw-naar-vrouw verbinding. Ik heb het circuit van hier https://www.beyondlogic.org/serial/serial.htm (een beetje naar beneden scrollen). In wezen voegt een nulmodem pin 7 en 8 toe, sluit hij aan op pinnen 1, 4, 6 en verwisselt pinnen 2 en 3 om. De 9-pins verbinding wordt dan een 3-draads verbinding - massa, verzend gegevens en ontvang gegevens. Het vereenvoudigt soort RS232.3) Een 10-pins header op het bord naar een D9 mannelijke connector. Meer hierover op de volgende pagina. Op het schema wordt de mannelijke D9 aan de linkerkant aangesloten op de pc. De nulmodem is een female naar female aansluiting met de aansluitingen in de stekkers. Ik had dit alles met veel minder stekkers kunnen aansluiten, maar ik zal de nulmodem in andere projecten gebruiken.

Stap 5: Sluit de seriële header aan

Sluit de seriële header aan
Sluit de seriële header aan

De header op het bord is ontworpen om naar een IDC 9-wegs lintkabel te gaan en vervolgens naar een D9-stekker. De enige truc is dat de 10-weg header is ontworpen om 10-weg lintkabel te nemen. Als u een 9-polige kabel gebruikt, is er een opening voor de ontbrekende draad. Ik heb een close-up gemaakt om dit te verduidelijken. Als je het goed aansluit, gaat pin 1 op het bord naar pin1 op de D9. Pin 5 op de D9 moet worden aangesloten op aarde op het bord. Als die twee zijn aangesloten, is de rest van de draden ook in orde.

Draad 1 bevindt zich aan de linkerkant van beide aanzichten van de lintkabel. U kunt desgewenst lintkabel met kleuren gebruiken. Het rommelige spul op de IDC-stekker is smeltlijm. Waarschijnlijk niet nodig, maar het maakt de zaak een beetje sterker.

Stap 6: sommige software downloaden

Sommige software downloaden
Sommige software downloaden

We hebben wat software op het bord nodig en voordat we programma's kunnen downloaden, hebben we een modemprogramma nodig. We gaan xmodem gebruiken, een standaard die al jaren bestaat. Xmodem bestaat als een CPM-programma en het bestaat in vele vormen op pc-programma's, zoals hyperterminal. Dus we kunnen dit gebruiken om te communiceren tussen de oude en nieuwe technologie. Laten we pak de hex-bestand van xmodem van hier: https://n8vem.googlegroups.com/web/xm50_LB1.zip?gda=O2tYn0EAAABRoI8ydU505jGCwGWcAnRL1RQ8Aj5bHZQJ6hxcf7VyVbwBih-m421sIN3Oibiyd_vhtrFcBixfottYTQUy-Muj7WbB0sVAO2Hmgtm1PE2xNgUnzip en je zal twee bestanden. Je hebt degene nodig die eindigt op.hex. Nu moeten we dit naar het bestuur sturen. Je hebt een terminalprogramma nodig dat een monitor en een toetsenbord emuleert voor deze single board computer. Windows heeft er een genaamd hyperterminal die zich meestal verbergt in de map start/programma's/accessoires. Of u kunt hyperterminal privé gebruiken. Of Teraterm. Of absoluuttelnet. Of een op dos gebaseerd programma genaamd conex. Er zijn veel terminalprogramma's in de buurt, want dit was hoe u inbelde op internet voordat u breedband gebruikte. Laten we hyperterminal opstarten. Het geeft je drie schermen en je moet alle instellingen correct hebben! Als je dit eenmaal hebt ingevoerd, kun je deze sessie opslaan en zal het een klein bestand maken dat eindigt op.ht. Als je vervolgens op dat bestand klikt (sleep het naar het bureaublad zodat je het later kunt vinden), zal het hyperterminal starten met alle de juiste instellingen. Eerste scherm=naam van de verbinding. Noem het SBC en kies een icoon. Tweede scherm. Stel de com-poort in. Mijn computer is standaard ingesteld op COM2 op het instellingenscherm en moet worden gewijzigd in COM1. Ga je gang en ga naar COM1. Derde scherm. Baudrates etc. Stel de bits per seconde in op 9600. 8 Databits. Pariteit met Geen. Stop bits op 1. En Flow control op Geen. U hoeft waarschijnlijk alleen bits per seconde en Flow Control te wijzigen. Nu krijgt u het terminalscherm te zien. Sluit het bord aan op de seriële poort en zet het aan en je zou een welkomstbericht moeten krijgen. Zo niet, ga dan naar de Google-groep en vraag om hulp. Nu is het tijd om met het bestuur te praten!

Stap 7: Xmodem downloaden

Xmodem downloaden
Xmodem downloaden

Als u de RAM-chip met batterijondersteuning hebt gekocht, hoeft u dit maar één keer te doen. Anderen werken er inderdaad aan om dit op de eprom-chip te zetten, dus het kan zijn dat u dit in de zeer nabije toekomst helemaal niet meer hoeft te doen. Typ h. achter de > prompt

Typ niets anders. Typ geen Enter. Slechts een enkele h, kleine of hoofdletters. De cursor gaat één regel omlaag, maar er gebeurt verder niets. Klik nu bovenaan het hyperterminal programma op het menu Transfer. Klik op Tekstbestand verzenden. Gebruik in Bestandsnaam bladeren om de hex-kopie van xmodem te vinden die u hebt gedownload. Het heet XM50LB1. HEX. Mogelijk moet u de standaardzoekopdracht voor *.txt wijzigen in *.hex om het te vinden. Klik op ok, en veel cijfers zullen ongeveer 30 seconden over het scherm gaan. Wacht tot ze stoppen. Druk vervolgens nogmaals op de letter c, opnieuw zonder enter. Wacht 2 seconden en u bent in CPM met een A>-prompt. Typ nu het volgende en druk op enter: Save 40 b:xm.com Typ nu B: en enter, om over te schakelen naar drive B en je krijgt een B> prompt. Typ nu DIR en voer in om de bestanden weer te geven. Er zijn drie stations op deze computer, A, B en F. U kunt zien wat er op elke computer staat door de stationsletter te typen, dan een dubbele punt, dan enter en dan DIR. De afbeelding toont een screenshot.

Stap 8: Pak wat software

Pak wat software
Pak wat software

Er is veel CPM-software beschikbaar. Bijv.https://www.loomcom.com/cpm/cpm_cdrom/https://www.gaby.de/ecpmlink.htmMaar laten we iets eenvoudigs proberen. Laten we Basic een paar getallen laten toevoegen en het antwoord afdrukken. Hiervoor hebben we een kopie van Basic nodig. Er zijn veel exemplaren beschikbaar, maar laten we een beetje afgaan en praten over de Altair-simulator. Dit kleine programma is een volledige emulatie van een CPM-machine die op een pc draait. Het heeft een grote softwarebibliotheek, handig verpakt in schijfgroottes, en het werkt veel sneller dan een echte CPM-computer, wat erg handig is bij het compileren. De simulator is hier: https://www.schorn.ch/cpm/intro.phpDownload de software, en download minimaal de CPM2.2 schijfkopie, en ongeveer halverwege de pagina, de Basisafbeelding. Zet ze allemaal in dezelfde map. Terwijl je daar bent, bekijk dan alle andere talen zoals C Cobal, Fortran, Pascal. Als u het programma AltairZ80.exe uitvoert, krijgt u een dos-venster. Als je het bestand basic.dsk hebt gedownload, dan kun je dit uitvoeren met het commandoDo basic In de simulator. Dan DIR om de bestanden weer te geven (die zich op station A: en B:) bevinden. We willen MBASIC en het zit in het A-station. Om dit naar een pc-directory te kopiëren, typt u W MBASIC. COM en dit zal het bestand opslaan in de map waarin het altair-programma zich bevindt. U kunt het omgekeerde doen met het R-commando dat bestanden van de pc naar de altair-simulatorschijven overbrengt. Inderdaad, als je met CPM wilt spelen, is dit een geweldige manier om het te doen zonder iets te hoeven bouwen of kopen. Als je bestanden op de virtuele schijf wilt opslaan, verlaat je de altaarsimulator met een ctrlE (controletoets en E). Dit wordt afgesloten en opgeslagen. Als u geen wijzigingen wilt opslaan, sluit u gewoon het venster met de X in de rechterbovenhoek.

Stap 9: Verplaats het bestand MBASIC. COM naar het bord

Verplaats het bestand MBASIC. COM naar het bord
Verplaats het bestand MBASIC. COM naar het bord

Laten we Basic op het bord zetten.

Ga in de hyperterminal-sessie naar station B: en typ XM R MBASIC. COM en voer vervolgens in. Hierdoor wordt het xmodem-programma gestart en blijft het daar wachten tot er een bestand arriveert. Ga nu naar het hyperterminal-menu en klik op Overdragen en vervolgens op Bestand verzenden. Blader naar het bestand MBASIC. COM. Selecteer Xmodem in de protocolsectie. In hyperterminal is het de derde down. Klik op verzenden en na een paar seconden zal het bestand wel gaan. Het duurt ongeveer een minuut. Als het werkt, zou u de B>-prompt moeten krijgen. Typ DIR om te controleren of het er is. (Negeer alle B> onderaan het scherm - ik druk per ongeluk een paar keer op de enter-toets)

Stap 10: Basis uitvoeren en een programma schrijven

Basis uitvoeren en een programma schrijven
Basis uitvoeren en een programma schrijven

Nu kunnen we Basic op het bord draaien en een klein programma schrijven. Bijvoorbeeld mbasic10 A=2020 B=3030 C=A+B40 print "Het antwoord is: ";CRUNSave "MYPROG", ANu hebben we een werkende computer.

Stap 11: Een programma samenstellen

Een programma samenstellen
Een programma samenstellen

Als je echt zin hebt, kun je een programma samenstellen. Dit levert een.com op (het equivalent van een.exe op een pc). Com-bestanden kunnen als onafhankelijke programma's worden uitgevoerd en kunnen zelfs zo worden ingesteld dat ze automatisch worden uitgevoerd wanneer het bord wordt gestart. Nu kan het bord functioneren als een standalone controller, zonder dat het ooit op een pc hoeft te worden aangesloten. Het N8VEM-bord kan programma's op het bord compileren, of u kunt de altair-simulator gebruiken. Dat laatste is sneller, maar dat maakt niet uit. Als je programma's wilt compileren, dan heb je het volgende nodig: MBASIC. COM, BRUN. COM L80. COM BCLOAD, BASLIB. REL EN BASCOM. COMC is een beetje anders, maar ik denk dat het nog steeds de L80-linker gebruikt. Zie de schermafbeelding voor het schrijven en compileren en uitvoeren van een programma. En houd ons in de gaten, want binnenkort zullen er harde schijven zijn, een mini LCD-scherm, een scherm dat gebruik maakt van een oude vga-monitor https://www.tvterminal.de/index.html#english met toetsenbordinterface, een flashstation en invoer en uitgangsborden!

Aanbevolen: