PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Github - wie kann ich Download machen?



Andi#87
26.02.2022, 09:54
Hallo,

in vielen Projekten erfolgt ein Verweis der Downloadmöglichkeit auf die www von GitHub. Ich habe hier ein Projekt, aber es gelingt mir nicht, den Code und Library usw. als File zu downloaden. Allenfalls kann ich es auf der GitHub-www als Text anzeigen lassen. Aber wenn ich dessen Kopie in mein Arduino-Programmfenster kopiere, kommen Fehlermeldungen ohne Ende (stray 302, 342 usw...). Kann mir bitte von Euch jemand helfen und mir sagen, wie ich die Files direkt von GitHub downloaden kann?

https://github.com/adafruit/Adafruit_Learning_System_Guides/tree/main/Tiny_Music_Visualizer

(Es geht um den dort enthaltenen Ordner "piccolo", in welchem u.a. der Arduino-Code und die Library enthalten sind.)



Andi

oberallgeier
26.02.2022, 10:47
.. Code und Library usw. als File zu downloaden .. Ordner "piccolo" ..Grüß Dich Andi.
Also a) ich hatte von Github bis heute noch nix gedownloadet, b) ich bin kein arduino-er. Aber bei mir funzt der Download - zumindest sieht der erhaltene Text ziemlich gut nach einem ordentlichen Programmfile aus.
Vorgehensweise:
1) Ich hab Deinen Link angepickt.
2) Dort habe ich in der Zeile

35757 den Link : Corrected licenses, added license files
...angepickt. Es öffnet sich ne Site bei der in einer der ersten Zeilen steht
..." .. Corrected licenses, added license files ..", darunter
...ne Zeile ".. Showing 35 changed files with 785 additions and 25 deletions ..".

3) Dort gehe ich (NUR beispielsweise) zum dritten Kasten : "Adafruit_DS2413/DS2413/DS2413.ino".
...RECHTS OBEN in dem Kasten steht dieses Drei-Punkte-Zeichen : ··· .
...Das klicke ich an > es kommt ein Flyout in dem oben die Zeile
...Show comments steht .....- - mit einem Häkchen davor. Darunter steht
...IM FLYOUT die Zeile
...View file .........- - die picke ich an.
...Schon kommt ne Zeile mit
...".. evaherrada Corrected licenses, added license files ..".
...In einem Kasten drunter steht rechts [ Raw | Blame]. Picke auf Raw.
...Üblicherweise picke ich rechts und danach auf "In einem neuen Tab öffnen" (ich hab den Firefox)
...und schon habe ich in dem Fenster dies stehen:
// SPDX-FileCopyrightText: 2014 Bill Earl for Adafruit Industries
//
// SPDX-License-Identifier: MIT

#include <OneWire.h>

#define DS2413_ONEWIRE_PIN (8)

#define DS2413_FAMILY_ID 0x3A
#define DS2413_ACCESS_READ 0xF5
#define DS2413_ACCESS_WRITE 0x5A
#define DS2413_ACK_SUCCESS 0xAA
#define DS2413_ACK_ERROR 0xFF

OneWire oneWire(DS2413_ONEWIRE_PIN);
uint8_t address[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };

void printBytes(uint8_t* addr, uint8_t count, bool newline=0)
{
for (uint8_t i = 0; i < count; i++)
{
Serial.print(addr[i]>>4, HEX);
Serial.print(addr[i]&0x0f, HEX);
Serial.print(" ");
}
if (newline)
{
Serial.println();
}
}

byte read(void)
{
bool ok = false;
uint8_t results;

oneWire.reset();
oneWire.select(address);
oneWire.write(DS2413_ACCESS_READ);

results = oneWire.read(); /* Get the register results */
ok = (!results & 0x0F) == (results >> 4); /* Compare nibbles */
results &= 0x0F; /* Clear inverted values */

oneWire.reset();

// return ok ? results : -1;
return results;
}

bool write(uint8_t state)
{
uint8_t ack = 0;

/* Top six bits must '1' */
state |= 0xFC;

oneWire.reset();
oneWire.select(address);
oneWire.write(DS2413_ACCESS_WRITE);
oneWire.write(state);
oneWire.write(~state); /* Invert data and resend */
ack = oneWire.read(); /* 0xAA=success, 0xFF=failure */
if (ack == DS2413_ACK_SUCCESS)
{
oneWire.read(); /* Read the status byte */
}
oneWire.reset();

return (ack == DS2413_ACK_SUCCESS ? true : false);
}

void setup(void)
{
Serial.begin(9600);

Serial.println(F("Looking for a DS2413 on the bus"));

/* Try to find a device on the bus */
oneWire.reset_search();
delay(250);
if (!oneWire.search(address))
{
printBytes(address, 8);
Serial.println(F("No device found on the bus!"));
oneWire.reset_search();
while(1);
}

/* Check the CRC in the device address */
if (OneWire::crc8(address, 7) != address[7])
{
Serial.println(F("Invalid CRC!"));
while(1);
}

/* Make sure we have a DS2413 */
if (address[0] != DS2413_FAMILY_ID)
{
printBytes(address, 8);
Serial.println(F(" is not a DS2413!"));
while(1);
}

Serial.print(F("Found a DS2413: "));
printBytes(address, 8);
Serial.println(F(""));
}

void loop(void)
{
/* Read */
/*
uint8_t state = read();
if (state == -1)
Serial.println(F("Failed reading the DS2413"));
else
Serial.println(state, BIN);
*/

/* Write */
bool ok = false;
ok = write(0x3);
if (!ok) Serial.println(F("Wire failed"));
delay(1000);
ok = write(0x0);
if (!ok) Serial.println(F("Wire failed"));
delay(1000);
}


Und das sieht doch ziemlich verdächtig nach compilierbarem Quelltext aus. Ob es eine einfachere Methode gibt, insbes. für ein komplettes Projekt, weiß ich nicht.

Klappt das dann bei Dir ?

Andi#87
26.02.2022, 11:12
Danke für Deine umfangreiche Antwort und Mühe. So, wie Du es beschreibst, habe ich es auch gemacht. Aber wenn ich dieses kopierte Text-File dann in das Arduino-Programmfenster kopiere und auf speichern bzw. überprüfen klicke, kommen Fehlermeldungen ohne Ende. Google sagt dazu, dass möglicherweise beim Kopieren im Code enthaltene Zeichen umgedeutet werden. Nur entdecke ich im Code solche Zeichen nicht. Auch die automatischen Reparatur-Funktionen, die Arduino unter "Werkzeuge" anbietet, haben nicht geholfen.
Üblicherweise lassen sich Codes (.ino) und Bibliotheken (.h) als Programm-Files downloaden und entsprechend installieren. Im erwähnten Fall klappt es aber nicht.
Allerdings hab ich jetzt testweise Deinen Code hier kopiert, und der ist ohne Fehler. Leider ist das nicht der Code, den ich meinte. Wo da nun das Problem sitzt, muss ich rausfinden. Ich versuch's weiter.

Danke :-)
Andi

Andree-HB
26.02.2022, 12:05
Kann mir bitte von Euch jemand helfen und mir sagen, wie ich die Files direkt von GitHub downloaden kann?

Du musst ein Verzeichnis zurückspringen und dann das gesamte Paket downloaden:
https://github.com/adafruit/Adafruit_Learning_System_Guides

Code -> Download ZIP

....dann kannst Du Dir aus dem Zipfile die benötigten Sachen rauskopieren

Es werden in der Piccolo.ino aber ja auch andere Librarys benötigt/eingebunden, z.B.
#include <Adafruit_GFX.h>
#include <Adafruit_LEDBackpack.h>

Andi#87
26.02.2022, 12:49
...wobei Deine erwähnten Libraries über die Arduino-Funktion "Bibliotheken verwalten" ganz "offiziell" gefunden werden, hingegen die im speziellen Programmcode notwendigen Libraries (ffft) vermutlich nur hier auf Github vorhanden sind. Zumindest werden diese in der Arduino-Verwaltung beim Suchen nicht aufgeführt.
Danke für Deinen Hinweis. Ja, das hat funktioniert und in dem gesamten umfangreichen Paket (ZIP) sind dann auch alle Files entsprechend vorhanden.
Vielen Dank für Deine und Eure Hilfe!

Ergänzung:
Kann Bibliothek und Code nun fehlerfrei installieren und auf den Arduino übertragen. Es funktioniert. Aber irgendwie nicht so, wie in der Anleitung dargestellt...
Weiter forschen...

;-)


Andi