Yun Temboo e display tft lcd ufficiale arduino

Ciao a tutti, vi chiedo aiuto perchè sono un paio di giorni che non riesco a risolvere una cosa.
Sto cercando di incastrare il codice per ricevere la timeline di twitter (copiato da temboo) con lo sketch di esempio TFTDisplayText in modo di visualizzare i tweet sullo schermettino.
Sul monitor seriale tutto funziona bene, a parte che non capisco come far partire la scrittura dei tweet a monitor chiuso.
Ecco lo scetch:

 /*
  ReadATweet

  Demonstrates retrieving the most recent Tweet from a user's home timeline 
  using the Temboo Arduino Yun SDK.
  
  This example code is in the public domain.
*/
#include <TFT.h>  // Arduino LCD library
#include <SPI.h>

#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information
#define cs   7
#define dc   0
#define rst  1
TFT TFTscreen = TFT(cs, dc, rst);
/*** SUBSTITUTE YOUR VALUES BELOW: ***/

// Note that for additional security and reusability, you could
// use #define statements to specify these values in a .h file.
const String TWITTER_ACCESS_TOKEN = "xxxxxxxxx";
const String TWITTER_ACCESS_TOKEN_SECRET = "xxxxxxx";
const String TWITTER_CONSUMER_KEY = "xxxxxxx";
const String TWITTER_CONSUMER_SECRET = "ixxxxxxxxxx";

int numRuns = 1;   // execution count, so this doesn't run forever
int maxRuns = 10;   // the max number of times the Twitter HomeTimeline Choreo should run


void setup() {
  Serial.begin(9600);
  TFTscreen.begin();
  
   TFTscreen.background(0, 0, 0);
   
       // set the font color
  TFTscreen.stroke(255, 255, 255);
   TFTscreen.setTextSize(1);
  // print the sensor value
  TFTscreen.text("Twitter Lcd Test", 0, 0);
   TFTscreen.setTextSize(2);

  // For debugging, wait until a serial console is connected.
  delay(4000);
  while(!Serial);
  Bridge.begin();

}
void loop()
{
  // while we haven't reached the max number of runs...
  if (numRuns <= maxRuns) {
    Serial.println("Running ReadATweet - Run #" + String(numRuns++));
    
    TembooChoreo HomeTimelineChoreo;

    // invoke the Temboo client.
    // NOTE that the client must be reinvoked, and repopulated with
    // appropriate arguments, each time its run() method is called.
    HomeTimelineChoreo.begin();
    
    // set Temboo account credentials
    HomeTimelineChoreo.setAccountName(TEMBOO_ACCOUNT);
    HomeTimelineChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
    HomeTimelineChoreo.setAppKey(TEMBOO_APP_KEY);

    // tell the Temboo client which Choreo to run (Twitter > Timelines > HomeTimeline)
    HomeTimelineChoreo.setChoreo("/Library/Twitter/Timelines/HomeTimeline");
    
    
    // set the required choreo inputs
    // see https://www.temboo.com/library/Library/Twitter/Timelines/HomeTimeline/
    // for complete details about the inputs for this Choreo

    HomeTimelineChoreo.addInput("Count", "1"); // the max number of Tweets to return from each request
    HomeTimelineChoreo.addInput("AccessToken", TWITTER_ACCESS_TOKEN);
    HomeTimelineChoreo.addInput("AccessTokenSecret", TWITTER_ACCESS_TOKEN_SECRET);
    HomeTimelineChoreo.addInput("ConsumerKey", TWITTER_CONSUMER_KEY);    
    HomeTimelineChoreo.addInput("ConsumerSecret", TWITTER_CONSUMER_SECRET);

    // next, we'll define two output filters that let us specify the 
    // elements of the response from Twitter that we want to receive.
    // see the examples at http://www.temboo.com/arduino
    // for more on using output filters
   
    // we want the text of the tweet
    HomeTimelineChoreo.addOutputFilter("tweet", "/[1]/text", "Response");
    
    // and the name of the author
    HomeTimelineChoreo.addOutputFilter("author", "/[1]/user/screen_name", "Response");


    // tell the Process to run and wait for the results. The 
    // return code will tell us whether the Temboo client 
    // was able to send our request to the Temboo servers
    unsigned int returnCode = HomeTimelineChoreo.run();
    
   // a response code of 0 means success; print the API response
    if(returnCode == 0) {
      
      String author; // a String to hold the tweet author's name
      String tweet; // a String to hold the text of the tweet


      // choreo outputs are returned as key/value pairs, delimited with 
      // newlines and record/field terminator characters, for example:
      // Name1\n\x1F
      // Value1\n\x1E
      // Name2\n\x1F
      // Value2\n\x1E      
      
      // see the examples at http://www.temboo.com/arduino for more details
      // we can read this format into separate variables, as follows:
      
      while(HomeTimelineChoreo.available()) {
        // read the name of the output item
        String name = HomeTimelineChoreo.readStringUntil('\x1F');
        name.trim();

        // read the value of the output item
        String data = HomeTimelineChoreo.readStringUntil('\x1E');
        data.trim();

        // assign the value to the appropriate String
        if (name == "tweet") {
          tweet = data;
        } else if (name == "author") {
          author = data;
        }
      }
     
      Serial.println("@" + author + " - " + tweet);
 
 TFTscreen.background(0, 0, 0);
     
  // set the font color
  TFTscreen.stroke(255, 255, 255);
  // print the sensor value
  TFTscreen.text("tweet:", 0, 20);
  
   } else {
      // there was an error
      // print the raw output from the choreo
      while(HomeTimelineChoreo.available()) {
        char c = HomeTimelineChoreo.read();
        Serial.print(c);
      }
    }

    HomeTimelineChoreo.close();

  }

  Serial.println("Waiting...");
  delay(90000); // wait 90 seconds between HomeTimeline calls
}

Praticamente lo schermo scrive bene la parte che è nel void setup, anche se rimane per pochi attimi, ma non scrive la parte che sta nel loop che io per ora ho semplificato in solo “tweet:” ma che in futuro dovrebbe scrivere la stringa ("@" + author + " - " + tweet) come nel monitor seriale.

Spero che ci sia qualcuno che mi aiuta a capire dove sbaglio.

:slight_smile:

niente niente? :(

il fatto e' che sta yun non sta avendo successo, l'hanno presa in pochi qui sul forum :)

consiglierei cmq di togliere dal codice le tue chiavi segrete dell'account twitter

per le key c'hai ragione. grazie, ho sistemato...

per quanto riguarda il mio problema non credo dipenda dalla yun ma da come ho impostato il codice per la scrittura sull'lcd. Diciamo che con sketch semplici ce la faccio bene a scrivere, è il loop di questo programma che mi sta facendo impazzire. Essenzialmente sono io che sono una frana... :)

Testato: il fatto e' che sta yun non sta avendo successo, l'hanno presa in pochi qui sul forum :)

Generalmente uno compra quel che gli serve, io non acquisto una cosa giusto per averla ;)

A me attira per il discorso linux, per fare esperienza, ma anche la rasp andrebbe bene per fare esperienza. Secondo te con la yun si fa esperienza linux ? Secondo me no perché mica mettiamo mano a quella sezione ?

Se vuoi fare esperienza Linux, prendi VirtualBox (gratuito, multipiattaforma) e creati una macchina virtuale con dentro Linux. Poi prendi un libro (anche PDF) sul sistema Linux, apri un terminale e cominci a "spippolare" ;)

Sulle schede embedded non ci si fanno le ossa, perché se si sputt....a il sistema, ti tocca prendere e rimettere l'ISO del sistema sulla schedina. ;)

Ho sempre un ubuntu in multiboot, sono arrivato ad avere win 7, XP, leopardo, ubuntu. Con il nuovo PC quadcore ed 8GB di RAM, che è cmq un PC standard ormai, vado di virtualbox. Intendevo proprio l altra faccia, la sezione embedded. Cioè pensare ad un programmino lato unix embedded, oltre al Fw del micro, lo si può fare su yun ? Credo nasca per sfruttare solo le cose integrate da loro, oppure esiste una SDK yun ? Si possono fare semplici interfaccia grafiche lato linux yun ?

Sulla Yun mi pare che forniscano una lib in Python per l’accesso alle funzioni della parte Linux embedded quindi puoi usare questo programma per scrivere il tuo software lato Atheros. Le interfacce le puoi scrivere, ma considera che devi installare anche eventuali librerie. E poi dove le visualizzi? Mica la Yun ha un’uscita video.

scusa mi sono spiegato male, intendo ad esempio un interfaccia da passare poi come pagine internet, un server dove mettere dei pulsanti, dei display di miusra, quello che bene o male si fa gia’ su 328 o mega pero’ lato unix. Tipo un webserver che si appoggia per lo spazio necessario ai file alla usb su una semplice pendrive.

per il discorso applicazioni scritte effettivamentenon essendoci uscita video sembra un po’ inutile, forse epro’ come servizi, bho, credo sia sempre utile poter scrivere un applicativo e poterlo buttare dentro

Sicuramente sì, ma non posso aiutarti perché non conosco la Yun. Ti servirà un web server "vero" tipo Apache che configurato risponderà alle chiamate esterne spedendo le pagine della tua cartella html pubblica. Lì metterai quel che ti serve. Servirà anche un linguaggio lato server per poter creare una pagina dinamica ed interattiva. Ed anche qui mi fermo che non è il mio campo ;)

ok, cmq e' un campo che prima o poi devo esplorare, per ora non ho tempo, aspetto di trovare una yun a 20euro e poi se ne riparla :)